Skip to content

Commit b490c66

Browse files
committed
force owners permissions
1 parent c2eba41 commit b490c66

7 files changed

Lines changed: 38 additions & 299 deletions

File tree

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [6.3] - 2025-09-08
6+
7+
- Fix set permissions on root user
8+
- Force all permissions to owners
9+
510
## [6.2] - 2025-09-08
611

712
- Fix circuit breaker error message in broadcast pause reason

config/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"github.com/spf13/viper"
1111
)
1212

13-
const VERSION = "6.2"
13+
const VERSION = "6.3"
1414

1515
type Config struct {
1616
Server ServerConfig

examples/service_layer_permissions.md

Lines changed: 0 additions & 271 deletions
This file was deleted.

internal/domain/workspace.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,16 @@ const (
3636
PermissionTypeWrite PermissionType = "write"
3737
)
3838

39+
var FullPermissions = UserPermissions{
40+
PermissionResourceContacts: ResourcePermissions{Read: true, Write: true},
41+
PermissionResourceLists: ResourcePermissions{Read: true, Write: true},
42+
PermissionResourceTemplates: ResourcePermissions{Read: true, Write: true},
43+
PermissionResourceBroadcasts: ResourcePermissions{Read: true, Write: true},
44+
PermissionResourceTransactional: ResourcePermissions{Read: true, Write: true},
45+
PermissionResourceWorkspace: ResourcePermissions{Read: true, Write: true},
46+
PermissionResourceMessageHistory: ResourcePermissions{Read: true, Write: true},
47+
}
48+
3949
// ResourcePermissions defines read/write permissions for a specific resource
4050
type ResourcePermissions struct {
4151
Read bool `json:"read"`

internal/repository/workspace_postgres.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -329,15 +329,16 @@ func (r *workspaceRepository) DeleteDatabase(ctx context.Context, workspaceID st
329329

330330
func (r *workspaceRepository) AddUserToWorkspace(ctx context.Context, userWorkspace *domain.UserWorkspace) error {
331331
query := `
332-
INSERT INTO user_workspaces (user_id, workspace_id, role, created_at, updated_at)
333-
VALUES ($1, $2, $3, $4, $5)
332+
INSERT INTO user_workspaces (user_id, workspace_id, role, permissions, created_at, updated_at)
333+
VALUES ($1, $2, $3, $4, $5, $6)
334334
ON CONFLICT (user_id, workspace_id) DO UPDATE
335-
SET role = $3, updated_at = $5
335+
SET role = $3, permissions = $4, updated_at = $6
336336
`
337337
_, err := r.systemDB.ExecContext(ctx, query,
338338
userWorkspace.UserID,
339339
userWorkspace.WorkspaceID,
340340
userWorkspace.Role,
341+
userWorkspace.Permissions,
341342
userWorkspace.CreatedAt,
342343
userWorkspace.UpdatedAt,
343344
)
@@ -514,7 +515,7 @@ func (r *workspaceRepository) GetInvitationByEmail(ctx context.Context, workspac
514515
// GetWorkspaceInvitations retrieves all workspace invitations for a specific workspace
515516
func (r *workspaceRepository) GetWorkspaceInvitations(ctx context.Context, workspaceID string) ([]*domain.WorkspaceInvitation, error) {
516517
query := `
517-
SELECT id, workspace_id, inviter_id, email, expires_at, created_at, updated_at
518+
SELECT id, workspace_id, inviter_id, email, permissions, expires_at, created_at, updated_at
518519
FROM workspace_invitations
519520
WHERE workspace_id = $1
520521
ORDER BY created_at DESC
@@ -533,6 +534,7 @@ func (r *workspaceRepository) GetWorkspaceInvitations(ctx context.Context, works
533534
&invitation.WorkspaceID,
534535
&invitation.InviterID,
535536
&invitation.Email,
537+
&invitation.Permissions,
536538
&invitation.ExpiresAt,
537539
&invitation.CreatedAt,
538540
&invitation.UpdatedAt,

internal/repository/workspace_users_operations_test.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ func TestWorkspaceRepository_AddUserToWorkspace(t *testing.T) {
2828
UserID: "user123",
2929
WorkspaceID: "workspace123",
3030
Role: "member",
31+
Permissions: domain.FullPermissions,
3132
}
3233

3334
// Test success case
@@ -36,6 +37,7 @@ func TestWorkspaceRepository_AddUserToWorkspace(t *testing.T) {
3637
userWorkspace.UserID,
3738
userWorkspace.WorkspaceID,
3839
userWorkspace.Role,
40+
userWorkspace.Permissions,
3941
sqlmock.AnyArg(), // created_at
4042
sqlmock.AnyArg(), // updated_at
4143
).
@@ -50,8 +52,9 @@ func TestWorkspaceRepository_AddUserToWorkspace(t *testing.T) {
5052
userWorkspace.UserID,
5153
userWorkspace.WorkspaceID,
5254
userWorkspace.Role,
53-
sqlmock.AnyArg(),
54-
sqlmock.AnyArg(),
55+
userWorkspace.Permissions,
56+
sqlmock.AnyArg(), // created_at
57+
sqlmock.AnyArg(), // updated_at
5558
).
5659
WillReturnError(fmt.Errorf("database error"))
5760

0 commit comments

Comments
 (0)