Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion backend/src/database/seeds/database-seeder.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,9 @@ export class DatabaseSeederService {
await this.rolesRepository.save(role);
this.logger.info(` ✓ Created role: ${role.name}`);
} else {
this.logger.info(` ⊙ Role already exists: ${roleData.name}`);
existingRole.permissions = roleData.permissions ?? {};
await this.rolesRepository.save(existingRole);
this.logger.info(` ✓ Updated permissions for role: ${roleData.name}`);
Comment on lines +96 to +98
}
}
}
Expand Down
72 changes: 17 additions & 55 deletions backend/src/database/seeds/roles.seed.ts
Original file line number Diff line number Diff line change
@@ -1,84 +1,46 @@
import { Role } from '../../modules/roles/role.entity';
import { OrgPermission } from '../../modules/permissions/permissions.constants';

export const defaultRoles: Partial<Role>[] = [
{
name: 'Owner',
description:
'Full access to organization. Can delete organization and manage all settings.',
permissions: {
// Organization management
canDeleteOrganization: true,
canEditOrganization: true,
canViewOrganization: true,

// User management
canInviteUsers: true,
canRemoveUsers: true,
canEditUserRoles: true,
canViewUsers: true,

// Role management
canCreateRoles: true,
canEditRoles: true,
canDeleteRoles: true,
canViewRoles: true,

// Settings
canManageSettings: true,
canViewSettings: true,
[OrgPermission.CAN_VIEW_ORG_INVENTORY]: true,
[OrgPermission.CAN_EDIT_ORG_INVENTORY]: true,
[OrgPermission.CAN_ADMIN_ORG_INVENTORY]: true,
[OrgPermission.CAN_VIEW_MEMBER_SHARED_ITEMS]: true,
},
},
{
name: 'Admin',
description: 'Administrative access. Can manage users and settings.',
permissions: {
// Organization management
canEditOrganization: true,
canViewOrganization: true,

// User management
canInviteUsers: true,
canRemoveUsers: true,
canEditUserRoles: true,
canViewUsers: true,

// Role management
canViewRoles: true,

// Settings
canManageSettings: true,
canViewSettings: true,
[OrgPermission.CAN_VIEW_ORG_INVENTORY]: true,
[OrgPermission.CAN_EDIT_ORG_INVENTORY]: true,
[OrgPermission.CAN_ADMIN_ORG_INVENTORY]: true,
[OrgPermission.CAN_VIEW_MEMBER_SHARED_ITEMS]: true,
},
},
{
name: 'Member',
description: 'Standard member access. Can view and participate.',
permissions: {
// Organization management
canViewOrganization: true,

// User management
canViewUsers: true,

// Role management
canViewRoles: true,

// Settings
canViewSettings: true,
[OrgPermission.CAN_VIEW_ORG_INVENTORY]: true,
[OrgPermission.CAN_EDIT_ORG_INVENTORY]: false,
[OrgPermission.CAN_ADMIN_ORG_INVENTORY]: false,
[OrgPermission.CAN_VIEW_MEMBER_SHARED_ITEMS]: true,
},
},
{
name: 'Viewer',
description: 'Read-only access. Can only view information.',
permissions: {
// Organization management
canViewOrganization: true,

// User management
canViewUsers: true,

// Settings
canViewSettings: true,
[OrgPermission.CAN_VIEW_ORG_INVENTORY]: true,
[OrgPermission.CAN_EDIT_ORG_INVENTORY]: false,
[OrgPermission.CAN_ADMIN_ORG_INVENTORY]: false,
[OrgPermission.CAN_VIEW_MEMBER_SHARED_ITEMS]: false,
},
},
];
Comment on lines 4 to 46
Loading