feat: more role backend and admin/writer roles additions and adjustments

This commit is contained in:
Florian Sylvain committed 2026-10-26 18:15:26 +01:00
1 parent 8c6c6456da
commit de142f6c5f
131 files changed
+2663 -435

No files matched your search

+10 -8
View File
@@ -19,6 +19,7 @@ const (
purgeAdminId uint32 = 11
purgeEditorId uint32 = 12
purgeUnverifiedId uint32 = 13
purgeNoRoleId uint32 = 14
fingerprintLength = 64
internalError = "Internal server error\n"
)
@@ -98,6 +99,7 @@ func newPurgeEnv(t *testing.T) *mediaEnv {
env.users.users[purgeOwnerId] = user.User{ID: purgeOwnerId, Username: "owner", IsVerified: true, Role: user.RoleOwner}
env.users.users[purgeAdminId] = user.User{ID: purgeAdminId, Username: "admin", IsVerified: true, Role: user.RoleAdmin}
env.users.users[purgeEditorId] = user.User{ID: purgeEditorId, Username: "editor", IsVerified: true, Role: user.Role("editor")}
env.users.users[purgeNoRoleId] = user.User{ID: purgeNoRoleId, Username: "norole", IsVerified: true}
env.users.users[purgeUnverifiedId] = user.User{ID: purgeUnverifiedId, Username: "unverified", IsVerified: false, Role: user.RoleOwner}
return env
}
@@ -157,14 +159,14 @@ func TestPurgeRoutesRefuseCallersThatAreNotAllowed(t *testing.T) {
{http.MethodPost, "/v1/media/purge", 0, "no cookie", 401, ""},
{http.MethodGet, "/v1/media/purge-settings", mediaStaleUserId, "a stale token_version cookie", 401, apperr.UnauthorizedErrorMessage},
{http.MethodGet, "/v1/media/purge-settings", purgeUnverifiedId, "cookie of an unverified owner", 403, apperr.VerificationRequiredErrorMessage},
{http.MethodGet, "/v1/media/purge-settings", purgeEditorId, "editor", 403, apperr.OwnerOrAdminRequiredErrorMessage},
{http.MethodPatch, "/v1/media/purge-settings", purgeEditorId, "editor", 403, apperr.OwnerOrAdminRequiredErrorMessage},
{http.MethodGet, "/v1/media/purge-preview", purgeEditorId, "editor", 403, apperr.OwnerOrAdminRequiredErrorMessage},
{http.MethodPost, "/v1/media/purge", purgeEditorId, "editor", 403, apperr.OwnerOrAdminRequiredErrorMessage},
{http.MethodGet, "/v1/media/purge-settings", mediaVerifiedUserId, "empty role", 403, apperr.OwnerOrAdminRequiredErrorMessage},
{http.MethodPatch, "/v1/media/purge-settings", mediaVerifiedUserId, "empty role", 403, apperr.OwnerOrAdminRequiredErrorMessage},
{http.MethodGet, "/v1/media/purge-preview", mediaVerifiedUserId, "empty role", 403, apperr.OwnerOrAdminRequiredErrorMessage},
{http.MethodPost, "/v1/media/purge", mediaVerifiedUserId, "empty role", 403, apperr.OwnerOrAdminRequiredErrorMessage},
{http.MethodGet, "/v1/media/purge-settings", purgeEditorId, "editor", 403, apperr.MissingPermissionErrorMessage},
{http.MethodPatch, "/v1/media/purge-settings", purgeEditorId, "editor", 403, apperr.MissingPermissionErrorMessage},
{http.MethodGet, "/v1/media/purge-preview", purgeEditorId, "editor", 403, apperr.MissingPermissionErrorMessage},
{http.MethodPost, "/v1/media/purge", purgeEditorId, "editor", 403, apperr.MissingPermissionErrorMessage},
{http.MethodGet, "/v1/media/purge-settings", purgeNoRoleId, "empty role", 403, apperr.MissingPermissionErrorMessage},
{http.MethodPatch, "/v1/media/purge-settings", purgeNoRoleId, "empty role", 403, apperr.MissingPermissionErrorMessage},
{http.MethodGet, "/v1/media/purge-preview", purgeNoRoleId, "empty role", 403, apperr.MissingPermissionErrorMessage},
{http.MethodPost, "/v1/media/purge", purgeNoRoleId, "empty role", 403, apperr.MissingPermissionErrorMessage},
}
for _, example := range examples {