upd(system): add Permissions API
This commit is contained in:
@@ -679,95 +679,5 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Permissions",
|
||||
"parameters": {},
|
||||
"entrypoint": "permissions",
|
||||
"path": "/permissions",
|
||||
"authentication": [
|
||||
"Client ID",
|
||||
"Session ID"
|
||||
],
|
||||
"struct": [
|
||||
{
|
||||
"imports": [
|
||||
"github.com/crusttech/crust/internal/rules"
|
||||
]
|
||||
}
|
||||
],
|
||||
"apis": [
|
||||
{
|
||||
"name": "list",
|
||||
"path": "/",
|
||||
"method": "GET",
|
||||
"title": "List default permissions",
|
||||
"parameters": {}
|
||||
},
|
||||
{
|
||||
"name": "get",
|
||||
"path": "/{teamID}",
|
||||
"method": "GET",
|
||||
"title": "Retrieve current permission settings",
|
||||
"parameters": {
|
||||
"path": [
|
||||
{
|
||||
"name": "teamID",
|
||||
"type": "uint64",
|
||||
"required": true,
|
||||
"title": "Team ID"
|
||||
}
|
||||
],
|
||||
"get": [
|
||||
{
|
||||
"name": "resource",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"title": "Permissions resource"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "set",
|
||||
"path": "/{teamID}",
|
||||
"method": "POST",
|
||||
"title": "Update permission settings",
|
||||
"parameters": {
|
||||
"path": [
|
||||
{
|
||||
"name": "teamID",
|
||||
"type": "uint64",
|
||||
"required": true,
|
||||
"title": "Team ID"
|
||||
}
|
||||
],
|
||||
"post": [
|
||||
{
|
||||
"name": "permissions",
|
||||
"type": "[]rules.Rules",
|
||||
"required": true,
|
||||
"title": "List of rules to set"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "scopes",
|
||||
"path": "/scopes/{scope}",
|
||||
"method": "GET",
|
||||
"title": "List resources for given scope",
|
||||
"parameters": {
|
||||
"path": [
|
||||
{
|
||||
"name": "scope",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"title": "Scope"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
+119
-44
@@ -160,10 +160,10 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Teams",
|
||||
"description": "An organisation may have many teams. Teams may have many channels available. Access to channels may be shared between teams.",
|
||||
"path": "/teams",
|
||||
"entrypoint": "team",
|
||||
"title": "Roles",
|
||||
"description": "An organisation may have many roles. Roles may have many channels available. Access to channels may be shared between roles.",
|
||||
"path": "/roles",
|
||||
"entrypoint": "role",
|
||||
"authentication": [
|
||||
"Client ID",
|
||||
"Session ID"
|
||||
@@ -172,7 +172,7 @@
|
||||
{
|
||||
"name": "list",
|
||||
"method": "GET",
|
||||
"title": "List teams",
|
||||
"title": "List roles",
|
||||
"path": "/",
|
||||
"parameters": {
|
||||
"get": [
|
||||
@@ -188,7 +188,7 @@
|
||||
{
|
||||
"name": "create",
|
||||
"method": "POST",
|
||||
"title": "Update team details",
|
||||
"title": "Update role details",
|
||||
"path": "/",
|
||||
"parameters": {
|
||||
"post": [
|
||||
@@ -196,13 +196,13 @@
|
||||
"type": "string",
|
||||
"name": "name",
|
||||
"required": true,
|
||||
"title": "Name of Team"
|
||||
"title": "Name of Role"
|
||||
},
|
||||
{
|
||||
"type": "[]uint64",
|
||||
"name": "members",
|
||||
"required": false,
|
||||
"title": "Team member IDs"
|
||||
"title": "Role member IDs"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -210,15 +210,15 @@
|
||||
{
|
||||
"name": "update",
|
||||
"method": "PUT",
|
||||
"title": "Update team details",
|
||||
"path": "/{teamID}",
|
||||
"title": "Update role details",
|
||||
"path": "/{roleID}",
|
||||
"parameters": {
|
||||
"path": [
|
||||
{
|
||||
"type": "uint64",
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Team ID"
|
||||
"title": "Role ID"
|
||||
}
|
||||
],
|
||||
"post": [
|
||||
@@ -226,13 +226,13 @@
|
||||
"type": "string",
|
||||
"name": "name",
|
||||
"required": false,
|
||||
"title": "Name of Team"
|
||||
"title": "Name of Role"
|
||||
},
|
||||
{
|
||||
"type": "[]uint64",
|
||||
"name": "members",
|
||||
"required": false,
|
||||
"title": "Team member IDs"
|
||||
"title": "Role member IDs"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -240,15 +240,15 @@
|
||||
{
|
||||
"name": "read",
|
||||
"method": "GET",
|
||||
"title": "Read team details and memberships",
|
||||
"path": "/{teamID}",
|
||||
"title": "Read role details and memberships",
|
||||
"path": "/{roleID}",
|
||||
"parameters": {
|
||||
"path": [
|
||||
{
|
||||
"type": "uint64",
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Team ID"
|
||||
"title": "Role ID"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -256,15 +256,15 @@
|
||||
{
|
||||
"name": "remove",
|
||||
"method": "DELETE",
|
||||
"title": "Remove team",
|
||||
"path": "/{teamID}",
|
||||
"title": "Remove role",
|
||||
"path": "/{roleID}",
|
||||
"parameters": {
|
||||
"path": [
|
||||
{
|
||||
"type": "uint64",
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Team ID"
|
||||
"title": "Role ID"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -272,15 +272,15 @@
|
||||
{
|
||||
"name": "archive",
|
||||
"method": "POST",
|
||||
"title": "Archive team",
|
||||
"path": "/{teamID}/archive",
|
||||
"title": "Archive role",
|
||||
"path": "/{roleID}/archive",
|
||||
"parameters": {
|
||||
"path": [
|
||||
{
|
||||
"type": "uint64",
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Team ID"
|
||||
"title": "Role ID"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -288,15 +288,15 @@
|
||||
{
|
||||
"name": "move",
|
||||
"method": "POST",
|
||||
"title": "Move team to different organisation",
|
||||
"path": "/{teamID}/move",
|
||||
"title": "Move role to different organisation",
|
||||
"path": "/{roleID}/move",
|
||||
"parameters": {
|
||||
"path": [
|
||||
{
|
||||
"type": "uint64",
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Team ID"
|
||||
"title": "Role ID"
|
||||
}
|
||||
],
|
||||
"post": [
|
||||
@@ -304,7 +304,7 @@
|
||||
"type": "uint64",
|
||||
"name": "organisationID",
|
||||
"required": true,
|
||||
"title": "Team ID"
|
||||
"title": "Role ID"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -312,15 +312,15 @@
|
||||
{
|
||||
"name": "merge",
|
||||
"method": "POST",
|
||||
"title": "Merge one team into another",
|
||||
"path": "/{teamID}/merge",
|
||||
"title": "Merge one role into another",
|
||||
"path": "/{roleID}/merge",
|
||||
"parameters": {
|
||||
"path": [
|
||||
{
|
||||
"type": "uint64",
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Source Team ID"
|
||||
"title": "Source Role ID"
|
||||
}
|
||||
],
|
||||
"post": [
|
||||
@@ -328,7 +328,7 @@
|
||||
"type": "uint64",
|
||||
"name": "destination",
|
||||
"required": true,
|
||||
"title": "Destination Team ID"
|
||||
"title": "Destination Role ID"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -336,15 +336,15 @@
|
||||
{
|
||||
"name": "memberAdd",
|
||||
"method": "POST",
|
||||
"title": "Add member to a team",
|
||||
"path": "/{teamID}/memberAdd",
|
||||
"title": "Add member to a role",
|
||||
"path": "/{roleID}/memberAdd",
|
||||
"parameters": {
|
||||
"path": [
|
||||
{
|
||||
"type": "uint64",
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Source Team ID"
|
||||
"title": "Source Role ID"
|
||||
}
|
||||
],
|
||||
"post": [
|
||||
@@ -360,15 +360,15 @@
|
||||
{
|
||||
"name": "memberRemove",
|
||||
"method": "POST",
|
||||
"title": "Remove member from a team",
|
||||
"path": "/{teamID}/memberRemove",
|
||||
"title": "Remove member from a role",
|
||||
"path": "/{roleID}/memberRemove",
|
||||
"parameters": {
|
||||
"path": [
|
||||
{
|
||||
"type": "uint64",
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Source Team ID"
|
||||
"title": "Source Role ID"
|
||||
}
|
||||
],
|
||||
"post": [
|
||||
@@ -561,5 +561,80 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Permissions",
|
||||
"parameters": {},
|
||||
"entrypoint": "permissions",
|
||||
"path": "/permissions",
|
||||
"authentication": [
|
||||
"Client ID",
|
||||
"Session ID"
|
||||
],
|
||||
"struct": [
|
||||
{
|
||||
"imports": [
|
||||
"github.com/crusttech/crust/internal/rules"
|
||||
]
|
||||
}
|
||||
],
|
||||
"apis": [
|
||||
{
|
||||
"name": "get",
|
||||
"path": "/{roleID}/rules",
|
||||
"method": "GET",
|
||||
"title": "Retrieve role permissions",
|
||||
"parameters": {
|
||||
"path": [
|
||||
{
|
||||
"name": "roleID",
|
||||
"type": "uint64",
|
||||
"required": true,
|
||||
"title": "Role ID"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "delete",
|
||||
"path": "/{roleID}/rules",
|
||||
"method": "DELETE",
|
||||
"title": "Remove all defined role permissions",
|
||||
"parameters": {
|
||||
"path": [
|
||||
{
|
||||
"name": "roleID",
|
||||
"type": "uint64",
|
||||
"required": true,
|
||||
"title": "Role ID"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "update",
|
||||
"path": "/{roleID}/rules",
|
||||
"method": "PATCH",
|
||||
"title": "Update permission settings",
|
||||
"parameters": {
|
||||
"path": [
|
||||
{
|
||||
"name": "roleID",
|
||||
"type": "uint64",
|
||||
"required": true,
|
||||
"title": "Role ID"
|
||||
}
|
||||
],
|
||||
"post": [
|
||||
{
|
||||
"name": "permissions",
|
||||
"type": "[]rules.Rule",
|
||||
"required": true,
|
||||
"title": "List of permissions to set"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -16,48 +16,49 @@
|
||||
],
|
||||
"Path": "/permissions",
|
||||
"APIs": [
|
||||
{
|
||||
"Name": "list",
|
||||
"Method": "GET",
|
||||
"Title": "List default permissions",
|
||||
"Path": "/",
|
||||
"Parameters": {}
|
||||
},
|
||||
{
|
||||
"Name": "get",
|
||||
"Method": "GET",
|
||||
"Title": "Retrieve current permission settings",
|
||||
"Path": "/{teamID}",
|
||||
"Title": "Retrieve role permissions",
|
||||
"Path": "/{roleID}/rules",
|
||||
"Parameters": {
|
||||
"get": [
|
||||
{
|
||||
"name": "resource",
|
||||
"required": true,
|
||||
"title": "Permissions resource",
|
||||
"type": "string"
|
||||
}
|
||||
],
|
||||
"path": [
|
||||
{
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Team ID",
|
||||
"title": "Role ID",
|
||||
"type": "uint64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"Name": "set",
|
||||
"Method": "POST",
|
||||
"Title": "Update permission settings",
|
||||
"Path": "/{teamID}",
|
||||
"Name": "delete",
|
||||
"Method": "DELETE",
|
||||
"Title": "Remove all defined role permissions",
|
||||
"Path": "/{roleID}/rules",
|
||||
"Parameters": {
|
||||
"path": [
|
||||
{
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Team ID",
|
||||
"title": "Role ID",
|
||||
"type": "uint64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"Name": "update",
|
||||
"Method": "PATCH",
|
||||
"Title": "Update permission settings",
|
||||
"Path": "/{roleID}/rules",
|
||||
"Parameters": {
|
||||
"path": [
|
||||
{
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Role ID",
|
||||
"type": "uint64"
|
||||
}
|
||||
],
|
||||
@@ -65,24 +66,8 @@
|
||||
{
|
||||
"name": "permissions",
|
||||
"required": true,
|
||||
"title": "List of rules to set",
|
||||
"type": "[]rules.Rules"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"Name": "scopes",
|
||||
"Method": "GET",
|
||||
"Title": "List resources for given scope",
|
||||
"Path": "/scopes/{scope}",
|
||||
"Parameters": {
|
||||
"path": [
|
||||
{
|
||||
"name": "scope",
|
||||
"required": true,
|
||||
"title": "Scope",
|
||||
"type": "string"
|
||||
"title": "List of permissions to set",
|
||||
"type": "[]rules.Rule"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"Title": "Teams",
|
||||
"Description": "An organisation may have many teams. Teams may have many channels available. Access to channels may be shared between teams.",
|
||||
"Interface": "Team",
|
||||
"Title": "Roles",
|
||||
"Description": "An organisation may have many roles. Roles may have many channels available. Access to channels may be shared between roles.",
|
||||
"Interface": "Role",
|
||||
"Struct": null,
|
||||
"Parameters": null,
|
||||
"Protocol": "",
|
||||
@@ -9,12 +9,12 @@
|
||||
"Client ID",
|
||||
"Session ID"
|
||||
],
|
||||
"Path": "/teams",
|
||||
"Path": "/roles",
|
||||
"APIs": [
|
||||
{
|
||||
"Name": "list",
|
||||
"Method": "GET",
|
||||
"Title": "List teams",
|
||||
"Title": "List roles",
|
||||
"Path": "/",
|
||||
"Parameters": {
|
||||
"get": [
|
||||
@@ -30,20 +30,20 @@
|
||||
{
|
||||
"Name": "create",
|
||||
"Method": "POST",
|
||||
"Title": "Update team details",
|
||||
"Title": "Update role details",
|
||||
"Path": "/",
|
||||
"Parameters": {
|
||||
"post": [
|
||||
{
|
||||
"name": "name",
|
||||
"required": true,
|
||||
"title": "Name of Team",
|
||||
"title": "Name of Role",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "members",
|
||||
"required": false,
|
||||
"title": "Team member IDs",
|
||||
"title": "Role member IDs",
|
||||
"type": "[]uint64"
|
||||
}
|
||||
]
|
||||
@@ -52,14 +52,14 @@
|
||||
{
|
||||
"Name": "update",
|
||||
"Method": "PUT",
|
||||
"Title": "Update team details",
|
||||
"Path": "/{teamID}",
|
||||
"Title": "Update role details",
|
||||
"Path": "/{roleID}",
|
||||
"Parameters": {
|
||||
"path": [
|
||||
{
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Team ID",
|
||||
"title": "Role ID",
|
||||
"type": "uint64"
|
||||
}
|
||||
],
|
||||
@@ -67,13 +67,13 @@
|
||||
{
|
||||
"name": "name",
|
||||
"required": false,
|
||||
"title": "Name of Team",
|
||||
"title": "Name of Role",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "members",
|
||||
"required": false,
|
||||
"title": "Team member IDs",
|
||||
"title": "Role member IDs",
|
||||
"type": "[]uint64"
|
||||
}
|
||||
]
|
||||
@@ -82,14 +82,14 @@
|
||||
{
|
||||
"Name": "read",
|
||||
"Method": "GET",
|
||||
"Title": "Read team details and memberships",
|
||||
"Path": "/{teamID}",
|
||||
"Title": "Read role details and memberships",
|
||||
"Path": "/{roleID}",
|
||||
"Parameters": {
|
||||
"path": [
|
||||
{
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Team ID",
|
||||
"title": "Role ID",
|
||||
"type": "uint64"
|
||||
}
|
||||
]
|
||||
@@ -98,14 +98,14 @@
|
||||
{
|
||||
"Name": "remove",
|
||||
"Method": "DELETE",
|
||||
"Title": "Remove team",
|
||||
"Path": "/{teamID}",
|
||||
"Title": "Remove role",
|
||||
"Path": "/{roleID}",
|
||||
"Parameters": {
|
||||
"path": [
|
||||
{
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Team ID",
|
||||
"title": "Role ID",
|
||||
"type": "uint64"
|
||||
}
|
||||
]
|
||||
@@ -114,14 +114,14 @@
|
||||
{
|
||||
"Name": "archive",
|
||||
"Method": "POST",
|
||||
"Title": "Archive team",
|
||||
"Path": "/{teamID}/archive",
|
||||
"Title": "Archive role",
|
||||
"Path": "/{roleID}/archive",
|
||||
"Parameters": {
|
||||
"path": [
|
||||
{
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Team ID",
|
||||
"title": "Role ID",
|
||||
"type": "uint64"
|
||||
}
|
||||
]
|
||||
@@ -130,14 +130,14 @@
|
||||
{
|
||||
"Name": "move",
|
||||
"Method": "POST",
|
||||
"Title": "Move team to different organisation",
|
||||
"Path": "/{teamID}/move",
|
||||
"Title": "Move role to different organisation",
|
||||
"Path": "/{roleID}/move",
|
||||
"Parameters": {
|
||||
"path": [
|
||||
{
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Team ID",
|
||||
"title": "Role ID",
|
||||
"type": "uint64"
|
||||
}
|
||||
],
|
||||
@@ -145,7 +145,7 @@
|
||||
{
|
||||
"name": "organisationID",
|
||||
"required": true,
|
||||
"title": "Team ID",
|
||||
"title": "Role ID",
|
||||
"type": "uint64"
|
||||
}
|
||||
]
|
||||
@@ -154,14 +154,14 @@
|
||||
{
|
||||
"Name": "merge",
|
||||
"Method": "POST",
|
||||
"Title": "Merge one team into another",
|
||||
"Path": "/{teamID}/merge",
|
||||
"Title": "Merge one role into another",
|
||||
"Path": "/{roleID}/merge",
|
||||
"Parameters": {
|
||||
"path": [
|
||||
{
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Source Team ID",
|
||||
"title": "Source Role ID",
|
||||
"type": "uint64"
|
||||
}
|
||||
],
|
||||
@@ -169,7 +169,7 @@
|
||||
{
|
||||
"name": "destination",
|
||||
"required": true,
|
||||
"title": "Destination Team ID",
|
||||
"title": "Destination Role ID",
|
||||
"type": "uint64"
|
||||
}
|
||||
]
|
||||
@@ -178,14 +178,14 @@
|
||||
{
|
||||
"Name": "memberAdd",
|
||||
"Method": "POST",
|
||||
"Title": "Add member to a team",
|
||||
"Path": "/{teamID}/memberAdd",
|
||||
"Title": "Add member to a role",
|
||||
"Path": "/{roleID}/memberAdd",
|
||||
"Parameters": {
|
||||
"path": [
|
||||
{
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Source Team ID",
|
||||
"title": "Source Role ID",
|
||||
"type": "uint64"
|
||||
}
|
||||
],
|
||||
@@ -202,14 +202,14 @@
|
||||
{
|
||||
"Name": "memberRemove",
|
||||
"Method": "POST",
|
||||
"Title": "Remove member from a team",
|
||||
"Path": "/{teamID}/memberRemove",
|
||||
"Title": "Remove member from a role",
|
||||
"Path": "/{roleID}/memberRemove",
|
||||
"Parameters": {
|
||||
"path": [
|
||||
{
|
||||
"name": "teamID",
|
||||
"name": "roleID",
|
||||
"required": true,
|
||||
"title": "Source Team ID",
|
||||
"title": "Source Role ID",
|
||||
"type": "uint64"
|
||||
}
|
||||
],
|
||||
Reference in New Issue
Block a user