Skip to content

Commit b9fd35c

Browse files
luizhf42gustavosbarreto
authored andcommitted
refactor(ui): adapt ApiKeyGenerate to use RoleSelect
1 parent 09c1e3f commit b9fd35c

File tree

2 files changed

+7
-26
lines changed

2 files changed

+7
-26
lines changed

ui/src/components/Team/ApiKeys/ApiKeyGenerate.vue

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,9 @@
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";
118114
import useSnackbar from "@/helpers/snackbar";
119115
import CopyWarning from "@/components/User/CopyWarning.vue";
120116
import BaseDialog from "@/components/BaseDialog.vue";
117+
import RoleSelect from "@/components/Team/RoleSelect.vue";
118+
import { BasicRole } from "@/interfaces/INamespace";
121119
122120
const emit = defineEmits(["update"]);
123121
const snackbar = useSnackbar();
@@ -127,7 +125,6 @@ const successKey = ref(false);
127125
const failKey = ref(false);
128126
const errorMessage = ref("");
129127
const keyResponse = computed(() => store.getters["apiKeys/apiKey"]);
130-
const isAdmin = computed(() => ["administrator", "owner"].includes(store.getters["auth/role"]));
131128
const 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-
185166
const itemsDate = [
186167
{
187168
title: "30 days",
@@ -211,7 +192,7 @@ const itemsDate = [
211192
];
212193
213194
const selectedDate = ref(itemsDate[0]);
214-
const selectedRole = ref(itemsRoles[0]);
195+
const selectedRole = ref<BasicRole>("administrator");
215196
const expirationHint = ref(getExpiryDate(selectedDate.value.title).expirationDate);
216197
const 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
};
272253
defineExpose({ errorMessage });
273254
</script>

ui/tests/components/Team/ApiKeys/ApiKeyGenerate.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ describe("Api Key Generate", () => {
147147
await flushPromises();
148148
expect(storeSpy).toHaveBeenCalledWith("apiKeys/generateApiKey", {
149149
name: "my api key",
150-
role: "observer",
150+
role: "administrator",
151151
expires_at: 30,
152152
tenant: "fake-tenant",
153153
});

0 commit comments

Comments
 (0)