feat(admin): split role permissions for each section

This commit is contained in:
2026-03-25 16:44:45 +02:00
parent b139c4988c
commit 6174bed49a
25 changed files with 1152 additions and 113 deletions

View File

@@ -7445,6 +7445,11 @@
"default": false,
"description": "Can access admin tools"
},
"canManageUsers": {
"type": "boolean",
"default": false,
"description": "Can manage users"
},
"canEditRoles": {
"type": "boolean",
"default": false,
@@ -7454,6 +7459,11 @@
"type": "boolean",
"default": false,
"description": "Can edit categories"
},
"canEditBbcodes": {
"type": "boolean",
"default": false,
"description": "Can edit BBCodes"
}
}
}
@@ -7689,6 +7699,12 @@
"default": null,
"description": "Can access admin tools"
},
"canManageUsers": {
"type": "boolean",
"nullable": true,
"default": null,
"description": "Can manage users"
},
"canEditRoles": {
"type": "boolean",
"nullable": true,
@@ -7700,6 +7716,12 @@
"nullable": true,
"default": null,
"description": "Can edit categories"
},
"canEditBbcodes": {
"type": "boolean",
"nullable": true,
"default": null,
"description": "Can edit BBCodes"
}
}
}
@@ -12383,6 +12405,297 @@
}
}
},
"/ocs/v2.php/apps/forum/api/server-admin/roles": {
"get": {
"operationId": "server_admin-get-roles",
"summary": "Get all available roles (for server admin panel)",
"description": "This endpoint requires admin access",
"tags": [
"server_admin"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
"required": true,
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Roles list returned",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"roles"
],
"properties": {
"roles": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": {
"type": "object"
}
}
}
}
}
}
}
}
}
}
}
},
"401": {
"description": "Current user is not logged in",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {}
}
}
}
}
}
}
},
"403": {
"description": "Logged in account must be an admin",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/forum/api/server-admin/users/{userId}/roles": {
"post": {
"operationId": "server_admin-assign-role",
"summary": "Assign a role to a user (from server admin panel)",
"description": "This endpoint requires admin access",
"tags": [
"server_admin"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"roleId"
],
"properties": {
"roleId": {
"type": "integer",
"format": "int64",
"description": "The role ID to assign"
}
}
}
}
}
},
"parameters": [
{
"name": "userId",
"in": "path",
"description": "The user ID",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
"required": true,
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Role assigned successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"success",
"message"
],
"properties": {
"success": {
"type": "boolean"
},
"message": {
"type": "string"
}
}
}
}
}
}
}
}
}
},
"401": {
"description": "Current user is not logged in",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {}
}
}
}
}
}
}
},
"403": {
"description": "Logged in account must be an admin",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/forum/api/server-admin/repair-seeds": {
"post": {
"operationId": "server_admin-repair-seeds",