Compare commits
2 Commits
73901335a3
...
b726eb42dc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b726eb42dc | ||
|
|
8963cba016 |
@@ -30,6 +30,9 @@
|
|||||||
class="col-5 required"
|
class="col-5 required"
|
||||||
:label="$t('role')"
|
:label="$t('role')"
|
||||||
filled
|
filled
|
||||||
|
option-label="role"
|
||||||
|
option-value="role"
|
||||||
|
emit-value
|
||||||
:options="props.roles"
|
:options="props.roles"
|
||||||
:rules="[(val) => !!val || $t('roleIsRequired')]"
|
:rules="[(val) => !!val || $t('roleIsRequired')]"
|
||||||
v-model="role"
|
v-model="role"
|
||||||
|
|||||||
@@ -11,8 +11,15 @@
|
|||||||
align="justify"
|
align="justify"
|
||||||
narrow-indicator
|
narrow-indicator
|
||||||
>
|
>
|
||||||
<q-tab name="users" no-caps :label="$t('users')" />
|
<q-tab name="users" icon="people" no-caps :label="$t('users')" />
|
||||||
<q-tab name="roles" no-caps :label="$t('roles')" />
|
<q-tab name="roles" icon="rule" no-caps :label="$t('roles')" />
|
||||||
|
<q-tab
|
||||||
|
v-if="user?.user?.role.role.includes('admin')"
|
||||||
|
name="workspaces"
|
||||||
|
icon="dashboard"
|
||||||
|
no-caps
|
||||||
|
:label="$t('workspaces')"
|
||||||
|
/>
|
||||||
</q-tabs>
|
</q-tabs>
|
||||||
<q-separator />
|
<q-separator />
|
||||||
|
|
||||||
@@ -23,16 +30,24 @@
|
|||||||
<q-tab-panel name="roles" style="padding: 0px">
|
<q-tab-panel name="roles" style="padding: 0px">
|
||||||
<RoleTable />
|
<RoleTable />
|
||||||
</q-tab-panel>
|
</q-tab-panel>
|
||||||
|
<q-tab-panel name="workspaces" style="padding: 0px">
|
||||||
|
<RoleTable />
|
||||||
|
</q-tab-panel>
|
||||||
</q-tab-panels>
|
</q-tab-panels>
|
||||||
</q-card>
|
</q-card>
|
||||||
</div>
|
</div>
|
||||||
|
{{ user?.user?.role }}
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue';
|
import { onMounted, ref } from 'vue';
|
||||||
import UserTable from 'src/vueLib/tables/users/UserTable.vue';
|
import UserTable from 'src/vueLib/tables/users/UserTable.vue';
|
||||||
import RoleTable from 'src/vueLib/tables/roles/RoleTable.vue';
|
import RoleTable from 'src/vueLib/tables/roles/RoleTable.vue';
|
||||||
import SiteTitle from 'src/vueLib/general/SiteTitle.vue';
|
import SiteTitle from 'src/vueLib/general/SiteTitle.vue';
|
||||||
|
import { useUserStore } from 'src/vueLib/login/userStore';
|
||||||
|
import type { UserState } from 'src/vueLib/models/user';
|
||||||
|
|
||||||
const tab = ref('users');
|
const tab = ref('users');
|
||||||
|
const user = ref<UserState>();
|
||||||
|
onMounted(() => (user.value = useUserStore()));
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ export interface User {
|
|||||||
user: string;
|
user: string;
|
||||||
email: string;
|
email: string;
|
||||||
role?: Role;
|
role?: Role;
|
||||||
|
roleId?: number;
|
||||||
expiration?: string;
|
expiration?: string;
|
||||||
password?: string;
|
password?: string;
|
||||||
newPassword?: string;
|
newPassword?: string;
|
||||||
|
|||||||
@@ -148,7 +148,7 @@
|
|||||||
query-id
|
query-id
|
||||||
v-on:update="(val) => updateUser(val)"
|
v-on:update="(val) => updateUser(val)"
|
||||||
></EditOneDialog>
|
></EditOneDialog>
|
||||||
<EditAllDialog ref="editAllDialog" :roles="localRoles" v-on:update="updateUsers"></EditAllDialog>
|
<EditAllDialog ref="editAllDialog" :roles="roles" v-on:update="updateUsers"></EditAllDialog>
|
||||||
<OkDialog
|
<OkDialog
|
||||||
ref="okDialog"
|
ref="okDialog"
|
||||||
:dialog-label="$t('delete')"
|
:dialog-label="$t('delete')"
|
||||||
@@ -184,7 +184,10 @@ const editAllDialog = ref();
|
|||||||
const okDialog = ref();
|
const okDialog = ref();
|
||||||
const deleteText = ref('');
|
const deleteText = ref('');
|
||||||
const localRoles = computed(() => {
|
const localRoles = computed(() => {
|
||||||
return roles.value.map((role) => role.role);
|
return roles.value.filter((role) => {
|
||||||
|
if (user.user?.role.role.includes('admin') || !user.user?.role.role.includes('admin'))
|
||||||
|
return role;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
const selectOption = ref(false);
|
const selectOption = ref(false);
|
||||||
const selected = ref<Users>([]);
|
const selected = ref<Users>([]);
|
||||||
@@ -272,6 +275,9 @@ function removeUser(...removeUsers: Users) {
|
|||||||
|
|
||||||
// update role select
|
// update role select
|
||||||
function updateUser(user: User) {
|
function updateUser(user: User) {
|
||||||
|
if (user.role?.id) {
|
||||||
|
user.roleId = user.role?.id;
|
||||||
|
}
|
||||||
appApi
|
appApi
|
||||||
.post('/users/update', user)
|
.post('/users/update', user)
|
||||||
.then(() => NotifyResponse(i18n.global.t('userUpdated')))
|
.then(() => NotifyResponse(i18n.global.t('userUpdated')))
|
||||||
|
|||||||
Reference in New Issue
Block a user