Rename roles.admin to roles.admin_access

Closes #142
This commit is contained in:
rijkvanzanten
2020-09-18 12:16:09 -04:00
parent 52540e60a3
commit aa014542a4
14 changed files with 55 additions and 32 deletions

View File

@@ -1,7 +1,14 @@
<template>
<v-list nav>
<template v-if="customNavItems && customNavItems.length > 0">
<v-detail :active="group.accordion === 'always_open' || undefined" :disabled="group.accordion === 'always_open'" :start-open="group.accordion === 'start_open'" :label="group.name" :key="group.name" v-for="(group, index) in customNavItems">
<v-detail
:active="group.accordion === 'always_open' || undefined"
:disabled="group.accordion === 'always_open'"
:start-open="group.accordion === 'start_open'"
:label="group.name"
:key="group.name"
v-for="group in customNavItems"
>
<v-list-item :exact="exact" v-for="navItem in group.items" :key="navItem.to" :to="navItem.to">
<v-list-item-icon><v-icon :name="navItem.icon" /></v-list-item-icon>
<v-list-item-content>{{ navItem.name }}</v-list-item-content>
@@ -50,7 +57,7 @@ export default defineComponent({
const presetsStore = usePresetsStore();
const { customNavItems, navItems } = useNavigation();
const userStore = useUserStore();
const isAdmin = computed(() => userStore.state.currentUser?.role.admin === true);
const isAdmin = computed(() => userStore.state.currentUser?.role.admin_access === true);
const bookmarks = computed(() => {
return orderBy(

View File

@@ -217,7 +217,11 @@
</drawer-detail>
<layout-drawer-detail @input="layout = $event" :value="layout" />
<portal-target name="drawer" />
<export-drawer-detail :layout-query="layoutQuery" :search-query="searchQuery" :collection="currentCollection" />
<export-drawer-detail
:layout-query="layoutQuery"
:search-query="searchQuery"
:collection="currentCollection"
/>
</template>
<v-dialog v-if="deleteError" active>
@@ -509,7 +513,7 @@ export default defineComponent({
function usePermissions() {
const batchEditAllowed = computed(() => {
const admin = userStore.state?.currentUser?.role.admin === true;
const admin = userStore.state?.currentUser?.role.admin_access === true;
if (admin) return true;
const updatePermissions = permissionsStore.state.permissions.find(
@@ -520,7 +524,7 @@ export default defineComponent({
const batchArchiveAllowed = computed(() => {
if (!currentCollection.value?.meta?.archive_field) return false;
const admin = userStore.state?.currentUser?.role.admin === true;
const admin = userStore.state?.currentUser?.role.admin_access === true;
if (admin) return true;
const updatePermissions = permissionsStore.state.permissions.find(
@@ -533,7 +537,7 @@ export default defineComponent({
});
const batchDeleteAllowed = computed(() => {
const admin = userStore.state?.currentUser?.role.admin === true;
const admin = userStore.state?.currentUser?.role.admin_access === true;
if (admin) return true;
const deletePermissions = permissionsStore.state.permissions.find(
@@ -543,7 +547,7 @@ export default defineComponent({
});
const createAllowed = computed(() => {
const admin = userStore.state?.currentUser?.role.admin === true;
const admin = userStore.state?.currentUser?.role.admin_access === true;
if (admin) return true;
const createPermissions = permissionsStore.state.permissions.find(

View File

@@ -75,7 +75,7 @@ export default defineComponent({
const { navItems } = useNavigation();
const isAdmin = computed(() => userStore.state.currentUser?.role.admin === true);
const isAdmin = computed(() => userStore.state.currentUser?.role.admin_access === true);
return {
tableHeaders,

View File

@@ -55,7 +55,7 @@ export default defineModule(({ i18n }) => ({
],
order: 15,
preRegisterCheck(user, permissions) {
const admin = user.role.admin;
const admin = user.role.admin_access;
if (admin) return true;
const permission = permissions.find(

View File

@@ -86,8 +86,8 @@ export default defineModule(({ i18n }) => ({
components: {
add: SettingsNewRole,
},
}
]
},
],
},
{
path: '/roles/public',
@@ -145,7 +145,7 @@ export default defineModule(({ i18n }) => ({
},
],
preRegisterCheck: (user) => {
return user.role.admin === true;
return user.role.admin_access === true;
},
order: Infinity,
persistent: true,

View File

@@ -7,7 +7,12 @@
<v-card-text>
<div class="form-grid">
<div class="field full">
<v-input v-model="roleName" autofocus @keyup.enter="save" :placeholder="$t('role_name') + '...'" />
<v-input
v-model="roleName"
autofocus
@keyup.enter="save"
:placeholder="$t('role_name') + '...'"
/>
</div>
<div class="field half">
@@ -16,7 +21,7 @@
</div>
<div class="field half">
<p class="type-label">{{ $t('fields.directus_roles.admin') }}</p>
<p class="type-label">{{ $t('fields.directus_roles.admin_access') }}</p>
<v-checkbox block v-model="admin" :label="$t('enabled')" />
</div>
</div>
@@ -33,7 +38,7 @@
import { defineComponent, ref } from '@vue/composition-api';
import api from '@/api';
import router from '@/router';
import { permissions } from './app-required-permissions'
import { permissions } from './app-required-permissions';
export default defineComponent({
setup() {
@@ -56,13 +61,20 @@ export default defineComponent({
error.value = null;
try {
const roleResponse = await api.post('/roles', { name: roleName.value, admin: admin.value, app_access: appAccess.value });
const roleResponse = await api.post('/roles', {
name: roleName.value,
admin: admin.value,
app_access: appAccess.value,
});
if (appAccess.value === true && admin.value === false) {
await api.post('/permissions', permissions.map(permission => ({
...permission,
role: roleResponse.data.data.id,
})));
await api.post(
'/permissions',
permissions.map((permission) => ({
...permission,
role: roleResponse.data.data.id,
}))
);
}
router.push(`/settings/roles/${roleResponse.data.data.id}`);
@@ -73,7 +85,7 @@ export default defineComponent({
}
}
}
}
},
});
</script>

View File

@@ -122,7 +122,7 @@ export default defineComponent({
...edits.value,
};
return !!values.admin;
return !!values.admin_access;
});
return {

View File

@@ -28,7 +28,7 @@ export default defineModule(({ i18n }) => ({
],
order: 10,
preRegisterCheck(user, permissions) {
const admin = user.role.admin;
const admin = user.role.admin_access;
if (admin) return true;
const permission = permissions.find(

View File

@@ -17,7 +17,7 @@ export const useUserStore = createStore({
return state.currentUser.first_name + ' ' + state.currentUser.last_name;
},
isAdmin(state) {
return state.currentUser?.role.admin === true || false;
return state.currentUser?.role.admin_access === true || false;
},
},
actions: {

View File

@@ -22,7 +22,7 @@ export type Role = {
external_id: null | string;
ip_whitelist: string[];
app_access: boolean;
admin: boolean;
admin_access: boolean;
};
export type Avatar = {