Add permissions templates
This commit is contained in:
11
package-lock.json
generated
11
package-lock.json
generated
@@ -19,6 +19,7 @@
|
|||||||
"react": "^18.0.0",
|
"react": "^18.0.0",
|
||||||
"react-dom": "^18.0.0",
|
"react-dom": "^18.0.0",
|
||||||
"react-router-dom": "^6.0.0",
|
"react-router-dom": "^6.0.0",
|
||||||
|
"strapi-v5-plugin-populate-deep": "^4.0.5",
|
||||||
"styled-components": "^6.0.0"
|
"styled-components": "^6.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -20598,6 +20599,16 @@
|
|||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/strapi-v5-plugin-populate-deep": {
|
||||||
|
"version": "4.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/strapi-v5-plugin-populate-deep/-/strapi-v5-plugin-populate-deep-4.0.5.tgz",
|
||||||
|
"integrity": "sha512-se5WE8rWxVx+BX904tESoZsRJYJg7VtGWZNeNGhirJGhuUJV5UgAP38Jiq5kPdyT3rASiwfCJxvXgMAfTh3Y5A==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.0.0 <=22.x.x",
|
||||||
|
"npm": ">=6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/stream-browserify": {
|
"node_modules/stream-browserify": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
"react": "^18.0.0",
|
"react": "^18.0.0",
|
||||||
"react-dom": "^18.0.0",
|
"react-dom": "^18.0.0",
|
||||||
"react-router-dom": "^6.0.0",
|
"react-router-dom": "^6.0.0",
|
||||||
|
"strapi-v5-plugin-populate-deep": "^4.0.5",
|
||||||
"styled-components": "^6.0.0"
|
"styled-components": "^6.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@@ -67,6 +67,11 @@
|
|||||||
"relation": "oneToMany",
|
"relation": "oneToMany",
|
||||||
"target": "api::event.event",
|
"target": "api::event.event",
|
||||||
"mappedBy": "choral"
|
"mappedBy": "choral"
|
||||||
|
},
|
||||||
|
"permissions_templates": {
|
||||||
|
"type": "relation",
|
||||||
|
"relation": "oneToMany",
|
||||||
|
"target": "api::permissions-template.permissions-template"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"kind": "collectionType",
|
||||||
|
"collectionName": "permissions_templates",
|
||||||
|
"info": {
|
||||||
|
"singularName": "permissions-template",
|
||||||
|
"pluralName": "permissions-templates",
|
||||||
|
"displayName": "PermissionsTemplate"
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"draftAndPublish": false
|
||||||
|
},
|
||||||
|
"pluginOptions": {},
|
||||||
|
"attributes": {
|
||||||
|
"key": {
|
||||||
|
"type": "uid"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"permissions": {
|
||||||
|
"type": "component",
|
||||||
|
"repeatable": true,
|
||||||
|
"component": "user.permissions"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* permissions-template controller
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi'
|
||||||
|
|
||||||
|
export default factories.createCoreController('api::permissions-template.permissions-template');
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* permissions-template router
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi';
|
||||||
|
|
||||||
|
export default factories.createCoreRouter('api::permissions-template.permissions-template');
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* permissions-template service
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi';
|
||||||
|
|
||||||
|
export default factories.createCoreService('api::permissions-template.permissions-template');
|
||||||
29
src/components/user/permissions.json
Normal file
29
src/components/user/permissions.json
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"collectionName": "components_user_permissions",
|
||||||
|
"info": {
|
||||||
|
"displayName": "permissions",
|
||||||
|
"icon": "key"
|
||||||
|
},
|
||||||
|
"options": {},
|
||||||
|
"attributes": {
|
||||||
|
"module": {
|
||||||
|
"type": "enumeration",
|
||||||
|
"enum": [
|
||||||
|
"information",
|
||||||
|
"chat",
|
||||||
|
"board",
|
||||||
|
"calendar",
|
||||||
|
"users"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"active": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"read": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"write": {
|
||||||
|
"type": "boolean"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
28
types/generated/components.d.ts
vendored
28
types/generated/components.d.ts
vendored
@@ -1,3 +1,25 @@
|
|||||||
/*
|
import type { Schema, Struct } from '@strapi/strapi';
|
||||||
* The app doesn't have any components yet.
|
|
||||||
*/
|
export interface UserPermissions extends Struct.ComponentSchema {
|
||||||
|
collectionName: 'components_user_permissions';
|
||||||
|
info: {
|
||||||
|
displayName: 'permissions';
|
||||||
|
icon: 'key';
|
||||||
|
};
|
||||||
|
attributes: {
|
||||||
|
active: Schema.Attribute.Boolean;
|
||||||
|
module: Schema.Attribute.Enumeration<
|
||||||
|
['information', 'chat', 'board', 'calendar', 'users']
|
||||||
|
>;
|
||||||
|
read: Schema.Attribute.Boolean;
|
||||||
|
write: Schema.Attribute.Boolean;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module '@strapi/strapi' {
|
||||||
|
export module Public {
|
||||||
|
export interface ComponentSchemas {
|
||||||
|
'user.permissions': UserPermissions;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
37
types/generated/contentTypes.d.ts
vendored
37
types/generated/contentTypes.d.ts
vendored
@@ -511,6 +511,10 @@ export interface ApiChoralChoral extends Struct.CollectionTypeSchema {
|
|||||||
'oneToOne',
|
'oneToOne',
|
||||||
'plugin::users-permissions.user'
|
'plugin::users-permissions.user'
|
||||||
>;
|
>;
|
||||||
|
permissions_templates: Schema.Attribute.Relation<
|
||||||
|
'oneToMany',
|
||||||
|
'api::permissions-template.permissions-template'
|
||||||
|
>;
|
||||||
postal: Schema.Attribute.Integer;
|
postal: Schema.Attribute.Integer;
|
||||||
publishedAt: Schema.Attribute.DateTime;
|
publishedAt: Schema.Attribute.DateTime;
|
||||||
updatedAt: Schema.Attribute.DateTime;
|
updatedAt: Schema.Attribute.DateTime;
|
||||||
@@ -553,6 +557,38 @@ export interface ApiEventEvent extends Struct.CollectionTypeSchema {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface ApiPermissionsTemplatePermissionsTemplate
|
||||||
|
extends Struct.CollectionTypeSchema {
|
||||||
|
collectionName: 'permissions_templates';
|
||||||
|
info: {
|
||||||
|
displayName: 'PermissionsTemplate';
|
||||||
|
pluralName: 'permissions-templates';
|
||||||
|
singularName: 'permissions-template';
|
||||||
|
};
|
||||||
|
options: {
|
||||||
|
draftAndPublish: false;
|
||||||
|
};
|
||||||
|
attributes: {
|
||||||
|
createdAt: Schema.Attribute.DateTime;
|
||||||
|
createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
description: Schema.Attribute.String;
|
||||||
|
key: Schema.Attribute.UID;
|
||||||
|
locale: Schema.Attribute.String & Schema.Attribute.Private;
|
||||||
|
localizations: Schema.Attribute.Relation<
|
||||||
|
'oneToMany',
|
||||||
|
'api::permissions-template.permissions-template'
|
||||||
|
> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
permissions: Schema.Attribute.Component<'user.permissions', true>;
|
||||||
|
publishedAt: Schema.Attribute.DateTime;
|
||||||
|
title: Schema.Attribute.String;
|
||||||
|
updatedAt: Schema.Attribute.DateTime;
|
||||||
|
updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export interface PluginContentReleasesRelease
|
export interface PluginContentReleasesRelease
|
||||||
extends Struct.CollectionTypeSchema {
|
extends Struct.CollectionTypeSchema {
|
||||||
collectionName: 'strapi_releases';
|
collectionName: 'strapi_releases';
|
||||||
@@ -1089,6 +1125,7 @@ declare module '@strapi/strapi' {
|
|||||||
'api::board.board': ApiBoardBoard;
|
'api::board.board': ApiBoardBoard;
|
||||||
'api::choral.choral': ApiChoralChoral;
|
'api::choral.choral': ApiChoralChoral;
|
||||||
'api::event.event': ApiEventEvent;
|
'api::event.event': ApiEventEvent;
|
||||||
|
'api::permissions-template.permissions-template': ApiPermissionsTemplatePermissionsTemplate;
|
||||||
'plugin::content-releases.release': PluginContentReleasesRelease;
|
'plugin::content-releases.release': PluginContentReleasesRelease;
|
||||||
'plugin::content-releases.release-action': PluginContentReleasesReleaseAction;
|
'plugin::content-releases.release-action': PluginContentReleasesReleaseAction;
|
||||||
'plugin::i18n.locale': PluginI18NLocale;
|
'plugin::i18n.locale': PluginI18NLocale;
|
||||||
|
|||||||
Reference in New Issue
Block a user