5656 />
5757 </v-col >
5858 <v-col >
59- <v-select
59+ <RoleSelect
6060 v-if =" hasAuthorization"
6161 v-model =" selectedRole"
62- label =" Key Role"
63- :items =" itemsRoles"
64- :item-props =" true"
65- return-object
6662 data-test =" api-key-generate-role"
6763 />
6864 </v-col >
@@ -118,6 +114,8 @@ import handleError from "@/utils/handleError";
118114import useSnackbar from " @/helpers/snackbar" ;
119115import CopyWarning from " @/components/User/CopyWarning.vue" ;
120116import BaseDialog from " @/components/BaseDialog.vue" ;
117+ import RoleSelect from " @/components/Team/RoleSelect.vue" ;
118+ import { BasicRole } from " @/interfaces/INamespace" ;
121119
122120const emit = defineEmits ([" update" ]);
123121const snackbar = useSnackbar ();
@@ -127,7 +125,6 @@ const successKey = ref(false);
127125const failKey = ref (false );
128126const errorMessage = ref (" " );
129127const keyResponse = computed (() => store .getters [" apiKeys/apiKey" ]);
130- const isAdmin = computed (() => [" administrator" , " owner" ].includes (store .getters [" auth/role" ]));
131128const hasAuthorization = computed (() => {
132129 const role = store .getters [" auth/role" ];
133130 return !! role && hasPermission (authorizer .role [role ], actions .apiKey .create );
@@ -166,22 +163,6 @@ const getExpiryDate = (item) => {
166163 };
167164};
168165
169- const itemsRoles = [
170- {
171- title: " observer" ,
172- value: " observer" ,
173- },
174- {
175- title: " operator" ,
176- value: " operator" ,
177- },
178- {
179- title: " administrator" ,
180- value: " administrator" ,
181- disabled: ! hasAuthorization .value || ! isAdmin .value ,
182- },
183- ];
184-
185166const itemsDate = [
186167 {
187168 title: " 30 days" ,
@@ -211,7 +192,7 @@ const itemsDate = [
211192];
212193
213194const selectedDate = ref (itemsDate [0 ]);
214- const selectedRole = ref ( itemsRoles [ 0 ] );
195+ const selectedRole = ref < BasicRole >( " administrator " );
215196const expirationHint = ref (getExpiryDate (selectedDate .value .title ).expirationDate );
216197const tenant = computed (() => localStorage .getItem (" tenant" ));
217198
@@ -251,7 +232,7 @@ const generateKey = async () => {
251232 tenant: tenant .value ,
252233 name: keyName .value ,
253234 expires_at: selectedDate .value .time ,
254- role: selectedRole .value . title ,
235+ role: selectedRole .value ,
255236 });
256237 successKey .value = true ;
257238 failKey .value = false ;
@@ -267,7 +248,7 @@ const close = () => {
267248 successKey .value = false ;
268249 keyName .value = " " ;
269250 [selectedDate .value ] = itemsDate ;
270- [ selectedRole .value ] = itemsRoles ;
251+ selectedRole .value = " administrator " ;
271252};
272253defineExpose ({ errorMessage });
273254 </script >
0 commit comments