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