diff --git a/backend/src/Socialize.Api/Modules/Identity/Contracts/KnownRoles.cs b/backend/src/Socialize.Api/Modules/Identity/Contracts/KnownRoles.cs index 578bbaa..17dc47d 100644 --- a/backend/src/Socialize.Api/Modules/Identity/Contracts/KnownRoles.cs +++ b/backend/src/Socialize.Api/Modules/Identity/Contracts/KnownRoles.cs @@ -2,10 +2,10 @@ public static class KnownRoles { - public const string Administrator = nameof(Administrator); - public const string Manager = nameof(Manager); - public const string Client = nameof(Client); - public const string Provider = nameof(Provider); - public const string WorkspaceMember = nameof(WorkspaceMember); - public const string Developer = nameof(Developer); + public const string Administrator = "administrator"; + public const string Manager = "manager"; + public const string Client = "client"; + public const string Provider = "provider"; + public const string WorkspaceMember = "workspace-member"; + public const string Developer = "developer"; } diff --git a/backend/src/Socialize.Api/Modules/Workspaces/Data/WorkspaceInviteStatuses.cs b/backend/src/Socialize.Api/Modules/Workspaces/Data/WorkspaceInviteStatuses.cs new file mode 100644 index 0000000..0011f6d --- /dev/null +++ b/backend/src/Socialize.Api/Modules/Workspaces/Data/WorkspaceInviteStatuses.cs @@ -0,0 +1,6 @@ +namespace Socialize.Api.Modules.Workspaces.Data; + +public static class WorkspaceInviteStatuses +{ + public const string Pending = "Pending"; +} diff --git a/backend/src/Socialize.Api/Modules/Workspaces/Handlers/CreateWorkspaceInvite.cs b/backend/src/Socialize.Api/Modules/Workspaces/Handlers/CreateWorkspaceInvite.cs index 6046d1a..e3c9c9d 100644 --- a/backend/src/Socialize.Api/Modules/Workspaces/Handlers/CreateWorkspaceInvite.cs +++ b/backend/src/Socialize.Api/Modules/Workspaces/Handlers/CreateWorkspaceInvite.cs @@ -24,7 +24,7 @@ public class CreateWorkspaceInviteRequestValidator public CreateWorkspaceInviteRequestValidator() { RuleFor(x => x.Email).NotEmpty().MaximumLength(256).EmailAddress(); - RuleFor(x => x.Role).NotEmpty().Must(role => AllowedRoles.Contains(role)); + RuleFor(x => x.Role).NotEmpty().Must(role => AllowedRoles.Contains(role)).WithMessage("A valid role should be specified"); } } @@ -65,7 +65,7 @@ public class CreateWorkspaceInviteHandler( bool duplicateInvite = await dbContext.WorkspaceInvites.AnyAsync( invite => invite.WorkspaceId == workspaceId && invite.Email == normalizedEmail && - invite.Status == "Pending", + invite.Status == WorkspaceInviteStatuses.Pending, ct); if (duplicateInvite) @@ -81,7 +81,7 @@ public class CreateWorkspaceInviteHandler( WorkspaceId = workspaceId, Email = normalizedEmail, Role = normalizedRole, - Status = "Pending", + Status = WorkspaceInviteStatuses.Pending, InvitedByUserId = User.GetUserId(), CreatedAt = DateTimeOffset.UtcNow, }; diff --git a/frontend/src/features/workspaces/views/WorkspaceSettingsView.vue b/frontend/src/features/workspaces/views/WorkspaceSettingsView.vue index cb6394c..1bf5dbc 100644 --- a/frontend/src/features/workspaces/views/WorkspaceSettingsView.vue +++ b/frontend/src/features/workspaces/views/WorkspaceSettingsView.vue @@ -29,7 +29,7 @@ const inviteForm = reactive({ email: '', - role: 'workspaceMember', + role: 'workspace-member', }); const pendingInvites = computed(() => @@ -161,7 +161,7 @@ }); inviteForm.email = ''; - inviteForm.role = 'workspaceMember'; + inviteForm.role = 'workspace-member'; } catch (error) { console.error('Failed to invite workspace member:', error); } @@ -330,7 +330,7 @@