mirror of
https://github.com/directus/directus.git
synced 2026-02-15 12:35:12 -05:00
52 lines
1014 B
TypeScript
52 lines
1014 B
TypeScript
import { defineModule } from '@directus/shared/utils';
|
|
import Collection from './routes/collection.vue';
|
|
import Item from './routes/item.vue';
|
|
|
|
export default defineModule({
|
|
id: 'users',
|
|
name: '$t:user_directory',
|
|
icon: 'people_alt',
|
|
routes: [
|
|
{
|
|
name: 'users-collection',
|
|
path: '',
|
|
component: Collection,
|
|
},
|
|
{
|
|
name: 'users-item',
|
|
path: ':primaryKey',
|
|
component: Item,
|
|
props: true,
|
|
},
|
|
{
|
|
path: 'roles',
|
|
redirect: '/users',
|
|
},
|
|
{
|
|
name: 'roles-collection',
|
|
path: 'roles/:role',
|
|
component: Collection,
|
|
props: true,
|
|
},
|
|
{
|
|
name: 'roles-item-add',
|
|
path: 'roles/:role/+',
|
|
component: Item,
|
|
props: (route) => ({
|
|
primaryKey: '+',
|
|
role: route.params.role,
|
|
}),
|
|
},
|
|
],
|
|
preRegisterCheck(user, permissions) {
|
|
const admin = user.role.admin_access;
|
|
if (admin) return true;
|
|
|
|
const permission = permissions.find(
|
|
(permission) => permission.collection === 'directus_users' && permission.action === 'read'
|
|
);
|
|
|
|
return !!permission;
|
|
},
|
|
});
|