Compare commits
	
		
			No commits in common. "7d3e47494f7338ddc9d93b65b169524bc4c2284e" and "542f157b494f1081b65a0fd11104ecdf84c28ac6" have entirely different histories.
		
	
	
		
			7d3e47494f
			...
			542f157b49
		
	
		|  | @ -6,23 +6,16 @@ | |||
|         <UserSelector v-model="user" /> | ||||
|       </div> | ||||
|     </q-card-section> | ||||
|     <MainUserSettings | ||||
|       :user="user" | ||||
|       :removeable="canDelete && !isCurrentUser" | ||||
|       @update:user="updateUser" | ||||
|       @remove="remove" | ||||
|     /> | ||||
|     <MainUserSettings :user="user" @update:user="updateUser" /> | ||||
|   </q-card> | ||||
| </template> | ||||
| 
 | ||||
| <script lang="ts"> | ||||
| import { computed, defineComponent, ref, onMounted } from 'vue'; | ||||
| import { hasPermission, useMainStore, useUserStore } from '@flaschengeist/api'; | ||||
| import { Notify } from 'quasar'; | ||||
| import { PERMISSIONS } from '../permissions'; | ||||
| 
 | ||||
| import { defineComponent, ref, onMounted } from 'vue'; | ||||
| import MainUserSettings from './settings/MainUserSettings.vue'; | ||||
| import UserSelector from './UserSelector.vue'; | ||||
| import { useMainStore, useUserStore } from '@flaschengeist/api'; | ||||
| import { Notify } from 'quasar'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   name: 'UpdateUser', | ||||
|  | @ -30,10 +23,7 @@ export default defineComponent({ | |||
|   setup() { | ||||
|     const mainStore = useMainStore(); | ||||
|     const userStore = useUserStore(); | ||||
| 
 | ||||
|     const user = ref(mainStore.currentUser); | ||||
|     const canDelete = computed(() => hasPermission(PERMISSIONS.DELETE)); | ||||
|     const isCurrentUser = computed(() => user.value.userid === mainStore.currentUser.userid); | ||||
| 
 | ||||
|     onMounted(() => { | ||||
|       void userStore.getUsers(true); | ||||
|  | @ -52,15 +42,7 @@ export default defineComponent({ | |||
|       }); | ||||
|     } | ||||
| 
 | ||||
|     async function remove() { | ||||
|       await userStore.deleteUser(user.value); | ||||
|       user.value = mainStore.currentUser; | ||||
|     } | ||||
| 
 | ||||
|     return { | ||||
|       canDelete, | ||||
|       isCurrentUser, | ||||
|       remove, | ||||
|       user, | ||||
|       updateUser, | ||||
|     }; | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
|         <q-avatar> | ||||
|           <q-img :src="avatar" style="min-height: 100%; min-width: 100%"> | ||||
|             <template #error> | ||||
|               <img src="no-image.svg" style="height: 100%" /> | ||||
|               <img src="no-image.svg" style="height: 100%"/> | ||||
|             </template> | ||||
|           </q-img> | ||||
|         </q-avatar> | ||||
|  |  | |||
|  | @ -103,10 +103,7 @@ | |||
|       </q-file> | ||||
|     </q-card-section> | ||||
|     <q-separator v-if="!newUser" /> | ||||
|     <q-card-section | ||||
|       v-if="!newUser" | ||||
|       class="fit row justify-start content-center items-center q-gutter-y-md" | ||||
|     > | ||||
|     <q-card-section v-if="!newUser" class="fit row justify-start content-center items-center"> | ||||
|       <PasswordInput | ||||
|         v-if="isCurrentUser" | ||||
|         v-model="password" | ||||
|  | @ -125,12 +122,9 @@ | |||
|         class="col-xs-12 col-sm-6 q-pa-sm" | ||||
|       /> | ||||
|     </q-card-section> | ||||
|     <q-card-actions :align="removeable ? 'between' : 'right'"> | ||||
|       <q-btn v-if="removeable" label="Löschen" color="negative" @click="remove" /> | ||||
|       <div> | ||||
|         <q-btn label="Reset" type="reset" style="margin-right: 0.5em" /> | ||||
|         <q-btn label="Speichern" type="submit" color="primary" /> | ||||
|       </div> | ||||
|     <q-card-actions align="right"> | ||||
|       <q-btn label="Reset" type="reset" /> | ||||
|       <q-btn color="primary" type="submit" label="Speichern" /> | ||||
|     </q-card-actions> | ||||
|   </q-form> | ||||
| </template> | ||||
|  | @ -154,10 +148,6 @@ export default defineComponent({ | |||
|   name: 'MainUserSettings', | ||||
|   components: { IsoDateInput, PasswordInput }, | ||||
|   props: { | ||||
|     removeable: { | ||||
|       type: Boolean, | ||||
|       default: false, | ||||
|     }, | ||||
|     user: { | ||||
|       required: true, | ||||
|       type: Object as PropType<FG.User>, | ||||
|  | @ -166,7 +156,6 @@ export default defineComponent({ | |||
|   }, | ||||
|   emits: { | ||||
|     'update:user': (payload: FG.User) => !!payload, | ||||
|     remove: () => true, | ||||
|   }, | ||||
|   setup(props, { emit }) { | ||||
|     const userStore = useUserStore(); | ||||
|  | @ -247,7 +236,7 @@ export default defineComponent({ | |||
|         hasAvatar.value = true; | ||||
|       } else if (deleteAvatar.value) { | ||||
|         await userStore.deleteAvatar(changed); | ||||
|         hasAvatar.value = false; | ||||
|         hasAvatar.value = false | ||||
|       } | ||||
|       password.value = ''; | ||||
|     } | ||||
|  | @ -293,7 +282,6 @@ export default defineComponent({ | |||
|       onAvatarRejected, | ||||
|       password, | ||||
|       preview, | ||||
|       remove: () => emit('remove'), | ||||
|       reset, | ||||
|       save, | ||||
|       userModel, | ||||
|  |  | |||
|  | @ -1,17 +1,12 @@ | |||
| export const PERMISSIONS = { | ||||
|   /* User permissions */ | ||||
|   // Can edit other users
 | ||||
|   // Kann andere Nutzer bearbeiten
 | ||||
|   EDIT_OTHER: 'users_edit_other', | ||||
|   // Can assign roles to users
 | ||||
|   // Kann Rollen von Nutzern setzen
 | ||||
|   SET_ROLES: 'users_set_roles', | ||||
|   // Can delete users
 | ||||
|   DELETE: 'users_delete', | ||||
|   // Can register new users
 | ||||
|   // Kann Nutzer löschen
 | ||||
|   DELETE: 'users_delete_other', | ||||
|   // Kann neue Nutzer hinzufügen
 | ||||
|   REGISTER: 'users_register', | ||||
| 
 | ||||
|   /* Role permissions */ | ||||
|   // Can edit roles, assign permissions to roles and change names
 | ||||
|   // Kann Rollen löschen oder bearbeiten, z.b. Rechte hinzufügen etc
 | ||||
|   ROLES_EDIT: 'roles_edit', | ||||
|   // Can delete roles
 | ||||
|   ROLES_DELETE: 'roles_delete', | ||||
| }; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue