Skip to content

Commit 5d25ed6

Browse files
committed
feat(ui): check system flag
1 parent 9381dc2 commit 5d25ed6

File tree

7 files changed

+49
-21
lines changed

7 files changed

+49
-21
lines changed

api/projects/project.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ func (c *ProjectController) UpdateProject(w http.ResponseWriter, r *http.Request
8181
return
8282
}
8383

84-
err := c.ProjectService.UpdateProject(project)
84+
err := c.ProjectService.UpdateProject(body)
8585

8686
if err != nil {
8787
helpers.WriteError(w, err)

api/router.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -582,9 +582,10 @@ func getSystemInfo(w http.ResponseWriter, r *http.Request) {
582582
"auth_methods": authMethods,
583583

584584
"premium_features": map[string]bool{
585-
"project_runners": false,
586-
"terraform_backend": false,
587-
"task_result": false,
585+
"project_runners": false,
586+
"terraform_backend": false,
587+
"task_result": false,
588+
"hashicorp_vault_secrets": false,
588589
},
589590

590591
"git_client": util.Config.GitClientId,

db/Project.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,5 @@ type Project struct {
1313
AlertChat *string `db:"alert_chat" json:"alert_chat,omitempty"`
1414
MaxParallelTasks int `db:"max_parallel_tasks" json:"max_parallel_tasks,omitempty"`
1515
Type string `db:"type" json:"type"`
16-
17-
VaultToken string `db:"-" json:"vault_token,omitempty" backup:"-"`
16+
VaultToken string `db:"-" json:"vault_token,omitempty" backup:"-"`
1817
}

services/project_svc.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func (s *ProjectServiceImpl) UpdateProject(project db.Project) (err error) {
4545
if len(keys) == 0 {
4646
if project.VaultToken != "" {
4747
_, err = s.keyRepo.CreateAccessKey(db.AccessKey{
48-
Type: db.AccessKeyLoginPassword,
48+
Type: db.AccessKeyString,
4949
ProjectID: &project.ID,
5050
Secret: nil,
5151
String: project.VaultToken,
@@ -59,7 +59,7 @@ func (s *ProjectServiceImpl) UpdateProject(project db.Project) (err error) {
5959
err = s.keyRepo.DeleteAccessKey(project.ID, vault.ID)
6060
} else {
6161
vault.OverrideSecret = true
62-
vault.Secret = &project.VaultToken
62+
vault.String = project.VaultToken
6363
err = s.keyRepo.UpdateAccessKey(vault)
6464
}
6565
}

web/src/components/ProjectForm.vue

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,17 @@
5252
dense
5353
></v-text-field>
5454

55+
<v-text-field
56+
v-if="systemInfo.premium_features.hashicorp_vault_secrets"
57+
v-model="item.vault_token"
58+
:label="$t('Hashicorp Vault Token')"
59+
:disabled="formSaving"
60+
data-testid="newProject-tg"
61+
outlined
62+
dense
63+
append-icon="mdi-lock"
64+
></v-text-field>
65+
5566
<v-switch
5667
v-if="itemId === 'new'"
5768
v-model="item.demo"
@@ -67,6 +78,9 @@ import ItemFormBase from '@/components/ItemFormBase';
6778
6879
export default {
6980
mixins: [ItemFormBase],
81+
props: {
82+
systemInfo: Object,
83+
},
7084
methods: {
7185
getItemsUrl() {
7286
return '/api/projects';

web/src/views/project/New.vue

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,36 @@
11
<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
22
<div>
3-
<v-toolbar flat >
3+
<v-toolbar flat>
44
<v-app-bar-nav-icon @click="showDrawer()"></v-app-bar-nav-icon>
55
<v-toolbar-title>{{ $t('newProject') }}</v-toolbar-title>
66
<v-spacer></v-spacer>
77
</v-toolbar>
88

9-
<v-divider />
9+
<v-divider/>
1010

1111
<div
1212
style="margin: auto; max-width: 600px; padding: 0 16px;"
1313
class="CenterToScreen"
1414
>
15-
<div class="project-settings-form">
15+
<div class="project-settings-form">
1616
<div style="height: 300px;">
17-
<ProjectForm item-id="new" ref="editForm" @save="onSave" />
17+
<ProjectForm
18+
item-id="new"
19+
ref="editForm"
20+
@save="onSave"
21+
:system-info="systemInfo"
22+
/>
1823
</div>
1924

2025
<div class="text-right">
21-
<v-btn
26+
<v-btn
2227
color="success" class="mr-3" @click="createDemoProject()"
23-
>{{ $t('CreateDemoProject') }}</v-btn>
28+
>{{ $t('CreateDemoProject') }}
29+
</v-btn>
2430

25-
<v-btn color="primary" @click="createProject()">{{ $t('create') }}</v-btn>
26-
</div>
31+
<v-btn color="primary" @click="createProject()">{{ $t('create') }}</v-btn>
2732
</div>
33+
</div>
2834
</div>
2935

3036
</div>
@@ -39,10 +45,11 @@ import ProjectForm from '@/components/ProjectForm.vue';
3945
export default {
4046
components: { ProjectForm },
4147
data() {
42-
return {
43-
};
48+
return {};
49+
},
50+
props: {
51+
systemInfo: Object,
4452
},
45-
4653
methods: {
4754
onSave(e) {
4855
EventBus.$emit('i-project', {

web/src/views/project/Settings.vue

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,14 @@
2727
<v-divider class="mb-8" />
2828

2929
<div class="project-settings-form">
30-
<div style="height: 300px;">
31-
<ProjectForm :item-id="projectId" ref="form" @error="onError" @save="onSave"/>
30+
<div>
31+
<ProjectForm
32+
:item-id="projectId"
33+
ref="form"
34+
@error="onError"
35+
@save="onSave"
36+
:system-info="systemInfo"
37+
/>
3238
</div>
3339

3440
<div class="text-right">
@@ -153,6 +159,7 @@ export default {
153159
props: {
154160
projectId: Number,
155161
projectType: String,
162+
systemInfo: Object,
156163
},
157164
158165
data() {

0 commit comments

Comments
 (0)