2020-05-14 19:13:33 -04:00
|
|
|
import Vue from 'vue';
|
|
|
|
import axios from 'axios';
|
2020-11-03 11:32:37 -05:00
|
|
|
import VueCookies from 'vue-cookies'
|
2021-02-26 07:11:13 -05:00
|
|
|
import BootstrapVue from 'bootstrap-vue'
|
2020-05-14 19:13:33 -04:00
|
|
|
import VueClipboard from 'vue-clipboard2'
|
2021-02-20 07:48:41 -05:00
|
|
|
import Notifications from 'vue-notification'
|
2021-02-26 07:11:13 -05:00
|
|
|
import VueGoodTablePlugin from 'vue-good-table'
|
2020-10-29 06:50:19 -04:00
|
|
|
|
2020-11-03 11:32:37 -05:00
|
|
|
Vue.use(VueCookies)
|
2021-02-26 07:11:13 -05:00
|
|
|
Vue.use(VueClipboard)
|
|
|
|
Vue.use(BootstrapVue)
|
2021-02-20 07:48:41 -05:00
|
|
|
Vue.use(Notifications)
|
2021-02-26 07:11:13 -05:00
|
|
|
Vue.use(VueGoodTablePlugin)
|
2020-05-14 19:13:33 -04:00
|
|
|
|
|
|
|
var axios_cfg = function(url, data='', type='form') {
|
|
|
|
if (data == '') {
|
|
|
|
return {
|
|
|
|
method: 'get',
|
|
|
|
url: url
|
|
|
|
};
|
|
|
|
} else if (type == 'form') {
|
|
|
|
return {
|
|
|
|
method: 'post',
|
|
|
|
url: url,
|
|
|
|
data: data,
|
|
|
|
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
|
|
|
|
};
|
|
|
|
} else if (type == 'file') {
|
|
|
|
return {
|
|
|
|
method: 'post',
|
|
|
|
url: url,
|
|
|
|
data: data,
|
|
|
|
headers: { 'Content-Type': 'multipart/form-data' }
|
|
|
|
};
|
2020-10-29 06:50:19 -04:00
|
|
|
} else if (type == 'json') {
|
|
|
|
return {
|
|
|
|
method: 'post',
|
|
|
|
url: url,
|
|
|
|
data: data,
|
|
|
|
headers: { 'Content-Type': 'application/json' }
|
|
|
|
};
|
2020-05-14 19:13:33 -04:00
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
new Vue({
|
|
|
|
el: '#app',
|
|
|
|
data: {
|
2020-10-29 06:50:19 -04:00
|
|
|
columns: [
|
|
|
|
{
|
|
|
|
label: 'Name',
|
|
|
|
field: 'Identity',
|
|
|
|
// filterable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Account Status',
|
|
|
|
field: 'AccountStatus',
|
|
|
|
filterable: true,
|
|
|
|
},
|
2021-02-15 01:03:38 -05:00
|
|
|
{
|
2022-07-21 11:17:53 -04:00
|
|
|
label: 'Active Connections',
|
|
|
|
field: 'Connections',
|
2021-02-15 01:03:38 -05:00
|
|
|
filterable: true,
|
|
|
|
},
|
2020-10-29 06:50:19 -04:00
|
|
|
{
|
|
|
|
label: 'Expiration Date',
|
|
|
|
field: 'ExpirationDate',
|
|
|
|
type: 'date',
|
|
|
|
dateInputFormat: 'yyyy-MM-dd HH:mm:ss',
|
|
|
|
dateOutputFormat: 'yyyy-MM-dd HH:mm:ss',
|
|
|
|
formatFn: function (value) {
|
|
|
|
return value != "" ? value : ""
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Revocation Date',
|
|
|
|
field: 'RevocationDate',
|
|
|
|
type: 'date',
|
|
|
|
dateInputFormat: 'yyyy-MM-dd HH:mm:ss',
|
|
|
|
dateOutputFormat: 'yyyy-MM-dd HH:mm:ss',
|
|
|
|
formatFn: function (value) {
|
|
|
|
return value != "" ? value : ""
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Actions',
|
|
|
|
field: 'actions',
|
|
|
|
sortable: false,
|
|
|
|
tdClass: 'text-right',
|
|
|
|
globalSearchDisabled: true,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
rows: [],
|
|
|
|
actions: [
|
2021-02-15 01:03:38 -05:00
|
|
|
{
|
|
|
|
name: 'u-change-password',
|
|
|
|
label: 'Change password',
|
|
|
|
class: 'btn-warning',
|
|
|
|
showWhenStatus: 'Active',
|
2021-02-26 07:11:13 -05:00
|
|
|
showForServerRole: ['master'],
|
|
|
|
showForModule: ['passwdAuth'],
|
2021-02-15 01:03:38 -05:00
|
|
|
},
|
2020-10-29 06:50:19 -04:00
|
|
|
{
|
|
|
|
name: 'u-revoke',
|
|
|
|
label: 'Revoke',
|
2021-02-15 01:03:38 -05:00
|
|
|
class: 'btn-warning',
|
2020-11-17 12:48:26 -05:00
|
|
|
showWhenStatus: 'Active',
|
2021-02-26 07:11:13 -05:00
|
|
|
showForServerRole: ['master'],
|
|
|
|
showForModule: ["core"],
|
2020-10-29 06:50:19 -04:00
|
|
|
},
|
2022-07-21 11:17:53 -04:00
|
|
|
{
|
|
|
|
name: 'u-delete',
|
|
|
|
label: 'Delete',
|
|
|
|
class: 'btn-danger',
|
|
|
|
showWhenStatus: 'Revoked',
|
|
|
|
showForServerRole: ['master'],
|
|
|
|
showForModule: ["core"],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'u-delete',
|
|
|
|
label: 'Delete',
|
|
|
|
class: 'btn-danger',
|
|
|
|
showWhenStatus: 'Expired',
|
|
|
|
showForServerRole: ['master'],
|
|
|
|
showForModule: ["core"],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'u-rotate',
|
|
|
|
label: 'Rotate',
|
|
|
|
class: 'btn-warning',
|
|
|
|
showWhenStatus: 'Revoked',
|
|
|
|
showForServerRole: ['master'],
|
|
|
|
showForModule: ["core"],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'u-rotate',
|
|
|
|
label: 'Rotate',
|
|
|
|
class: 'btn-warning',
|
|
|
|
showWhenStatus: 'Expired',
|
|
|
|
showForServerRole: ['master'],
|
|
|
|
showForModule: ["core"],
|
|
|
|
},
|
2020-10-29 06:50:19 -04:00
|
|
|
{
|
|
|
|
name: 'u-unrevoke',
|
|
|
|
label: 'Unrevoke',
|
2021-02-15 01:03:38 -05:00
|
|
|
class: 'btn-primary',
|
2020-11-17 12:48:26 -05:00
|
|
|
showWhenStatus: 'Revoked',
|
2021-02-26 07:11:13 -05:00
|
|
|
showForServerRole: ['master'],
|
|
|
|
showForModule: ["core"],
|
2020-10-29 06:50:19 -04:00
|
|
|
},
|
2021-02-15 01:03:38 -05:00
|
|
|
// {
|
|
|
|
// name: 'u-show-config',
|
|
|
|
// label: 'Show config',
|
|
|
|
// class: 'btn-primary',
|
|
|
|
// showWhenStatus: 'Active',
|
2021-02-26 07:11:13 -05:00
|
|
|
// showForServerRole: ['master', 'slave'],
|
|
|
|
// showForModule: ["core"],
|
2021-02-15 01:03:38 -05:00
|
|
|
// },
|
2020-10-29 06:50:19 -04:00
|
|
|
{
|
|
|
|
name: 'u-download-config',
|
|
|
|
label: 'Download config',
|
2021-02-15 01:03:38 -05:00
|
|
|
class: 'btn-info',
|
2020-11-17 12:48:26 -05:00
|
|
|
showWhenStatus: 'Active',
|
2021-02-26 07:11:13 -05:00
|
|
|
showForServerRole: ['master', 'slave'],
|
|
|
|
showForModule: ["core"],
|
2020-10-29 06:50:19 -04:00
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'u-edit-ccd',
|
|
|
|
label: 'Edit routes',
|
2021-02-15 01:03:38 -05:00
|
|
|
class: 'btn-primary',
|
2020-11-17 12:48:26 -05:00
|
|
|
showWhenStatus: 'Active',
|
2021-02-26 07:11:13 -05:00
|
|
|
showForServerRole: ['master'],
|
|
|
|
showForModule: ["ccd"],
|
2020-11-17 12:48:26 -05:00
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'u-edit-ccd',
|
|
|
|
label: 'Show routes',
|
2021-02-15 01:03:38 -05:00
|
|
|
class: 'btn-primary',
|
2020-11-17 12:48:26 -05:00
|
|
|
showWhenStatus: 'Active',
|
2021-02-26 07:11:13 -05:00
|
|
|
showForServerRole: ['slave'],
|
|
|
|
showForModule: ["ccd"],
|
2020-10-29 06:50:19 -04:00
|
|
|
}
|
|
|
|
],
|
2020-11-02 11:30:36 -05:00
|
|
|
filters: {
|
2020-11-03 11:32:37 -05:00
|
|
|
hideRevoked: true,
|
2020-11-02 11:30:36 -05:00
|
|
|
},
|
2020-11-17 12:48:26 -05:00
|
|
|
serverRole: "master",
|
|
|
|
lastSync: "unknown",
|
2021-02-26 07:11:13 -05:00
|
|
|
modulesEnabled: [],
|
2020-05-14 19:13:33 -04:00
|
|
|
u: {
|
|
|
|
newUserName: '',
|
2021-02-15 01:03:38 -05:00
|
|
|
newUserPassword: '',
|
2020-10-29 06:50:19 -04:00
|
|
|
newUserCreateError: '',
|
2021-02-15 01:03:38 -05:00
|
|
|
newPassword: '',
|
|
|
|
passwordChangeStatus: '',
|
|
|
|
passwordChangeMessage: '',
|
2022-07-21 11:17:53 -04:00
|
|
|
rotateUserMessage: '',
|
|
|
|
deleteUserMessage: '',
|
2020-05-14 19:13:33 -04:00
|
|
|
modalNewUserVisible: false,
|
|
|
|
modalShowConfigVisible: false,
|
2020-10-29 06:50:19 -04:00
|
|
|
modalShowCcdVisible: false,
|
2021-02-15 01:03:38 -05:00
|
|
|
modalChangePasswordVisible: false,
|
2022-07-21 11:17:53 -04:00
|
|
|
modalRotateUserVisible: false,
|
|
|
|
modalDeleteUserVisible: false,
|
2020-10-29 06:50:19 -04:00
|
|
|
openvpnConfig: '',
|
|
|
|
ccd: {
|
|
|
|
Name: '',
|
|
|
|
ClientAddress: '',
|
|
|
|
CustomRoutes: []
|
|
|
|
},
|
|
|
|
newRoute: {},
|
|
|
|
ccdApplyStatus: "",
|
|
|
|
ccdApplyStatusMessage: "",
|
2020-05-14 19:13:33 -04:00
|
|
|
}
|
|
|
|
},
|
|
|
|
watch: {
|
|
|
|
},
|
|
|
|
mounted: function () {
|
2020-11-17 12:48:26 -05:00
|
|
|
this.getUserData();
|
2021-02-26 07:11:13 -05:00
|
|
|
this.getServerSetting();
|
2020-11-03 11:32:37 -05:00
|
|
|
this.filters.hideRevoked = this.$cookies.isKey('hideRevoked') ? (this.$cookies.get('hideRevoked') == "true") : false
|
2020-05-14 19:13:33 -04:00
|
|
|
},
|
|
|
|
created() {
|
2020-11-03 11:32:37 -05:00
|
|
|
var _this = this;
|
|
|
|
|
2020-10-29 06:50:19 -04:00
|
|
|
_this.$root.$on('u-revoke', function (msg) {
|
2020-05-14 19:13:33 -04:00
|
|
|
var data = new URLSearchParams();
|
2020-10-29 06:50:19 -04:00
|
|
|
data.append('username', _this.username);
|
2020-05-14 19:13:33 -04:00
|
|
|
axios.request(axios_cfg('api/user/revoke', data, 'form'))
|
|
|
|
.then(function(response) {
|
2020-11-17 12:48:26 -05:00
|
|
|
_this.getUserData();
|
2021-02-20 07:48:41 -05:00
|
|
|
_this.$notify({title: 'User ' + _this.username + ' revoked!', type: 'warn'})
|
2020-05-14 19:13:33 -04:00
|
|
|
});
|
|
|
|
})
|
2020-10-29 06:50:19 -04:00
|
|
|
_this.$root.$on('u-unrevoke', function () {
|
2020-05-14 19:13:33 -04:00
|
|
|
var data = new URLSearchParams();
|
2020-10-29 06:50:19 -04:00
|
|
|
data.append('username', _this.username);
|
2020-05-14 19:13:33 -04:00
|
|
|
axios.request(axios_cfg('api/user/unrevoke', data, 'form'))
|
|
|
|
.then(function(response) {
|
2020-11-17 12:48:26 -05:00
|
|
|
_this.getUserData();
|
2021-02-20 07:48:41 -05:00
|
|
|
_this.$notify({title: 'User ' + _this.username + ' unrevoked!', type: 'success'})
|
2020-05-14 19:13:33 -04:00
|
|
|
});
|
|
|
|
})
|
2022-07-21 11:17:53 -04:00
|
|
|
_this.$root.$on('u-rotate', function () {
|
|
|
|
_this.u.modalRotateUserVisible = true;
|
|
|
|
var data = new URLSearchParams();
|
|
|
|
data.append('username', _this.username);
|
|
|
|
})
|
|
|
|
_this.$root.$on('u-delete', function () {
|
|
|
|
_this.u.modalDeleteUserVisible = true;
|
|
|
|
var data = new URLSearchParams();
|
|
|
|
data.append('username', _this.username);
|
|
|
|
})
|
2020-10-29 06:50:19 -04:00
|
|
|
_this.$root.$on('u-show-config', function () {
|
|
|
|
_this.u.modalShowConfigVisible = true;
|
2020-05-14 19:13:33 -04:00
|
|
|
var data = new URLSearchParams();
|
2020-10-29 06:50:19 -04:00
|
|
|
data.append('username', _this.username);
|
|
|
|
axios.request(axios_cfg('api/user/config/show', data, 'form'))
|
2020-05-14 19:13:33 -04:00
|
|
|
.then(function(response) {
|
|
|
|
_this.u.openvpnConfig = response.data;
|
|
|
|
});
|
|
|
|
})
|
2020-10-29 06:50:19 -04:00
|
|
|
_this.$root.$on('u-download-config', function () {
|
2020-10-15 12:12:31 -04:00
|
|
|
var data = new URLSearchParams();
|
2020-10-29 06:50:19 -04:00
|
|
|
data.append('username', _this.username);
|
|
|
|
axios.request(axios_cfg('api/user/config/show', data, 'form'))
|
2020-10-15 12:12:31 -04:00
|
|
|
.then(function(response) {
|
2020-10-29 06:50:19 -04:00
|
|
|
const blob = new Blob([response.data], { type: 'text/plain' })
|
|
|
|
const link = document.createElement('a')
|
|
|
|
link.href = URL.createObjectURL(blob)
|
|
|
|
link.download = _this.username + ".ovpn"
|
|
|
|
link.click()
|
|
|
|
URL.revokeObjectURL(link.href)
|
|
|
|
}).catch(console.error);
|
|
|
|
})
|
|
|
|
_this.$root.$on('u-edit-ccd', function () {
|
|
|
|
_this.u.modalShowCcdVisible = true;
|
|
|
|
var data = new URLSearchParams();
|
|
|
|
data.append('username', _this.username);
|
|
|
|
axios.request(axios_cfg('api/user/ccd', data, 'form'))
|
|
|
|
.then(function(response) {
|
|
|
|
_this.u.ccd = response.data;
|
|
|
|
});
|
|
|
|
})
|
2020-11-17 12:48:26 -05:00
|
|
|
_this.$root.$on('u-disconnect-user', function () {
|
2020-10-29 06:50:19 -04:00
|
|
|
_this.u.modalShowCcdVisible = true;
|
|
|
|
var data = new URLSearchParams();
|
|
|
|
data.append('username', _this.username);
|
|
|
|
axios.request(axios_cfg('api/user/disconnect', data, 'form'))
|
|
|
|
.then(function(response) {
|
2020-11-20 11:11:58 -05:00
|
|
|
console.log(response.data);
|
2020-10-15 12:12:31 -04:00
|
|
|
});
|
|
|
|
})
|
2021-02-15 01:03:38 -05:00
|
|
|
_this.$root.$on('u-change-password', function () {
|
|
|
|
_this.u.modalChangePasswordVisible = true;
|
|
|
|
var data = new URLSearchParams();
|
|
|
|
data.append('username', _this.username);
|
|
|
|
})
|
2020-05-14 19:13:33 -04:00
|
|
|
},
|
|
|
|
computed: {
|
2022-07-21 11:17:53 -04:00
|
|
|
customAddressDynamic: function () {
|
|
|
|
return this.u.ccd.ClientAddress == "dynamic"
|
2020-05-14 19:13:33 -04:00
|
|
|
},
|
2020-10-29 06:50:19 -04:00
|
|
|
ccdApplyStatusCssClass: function () {
|
|
|
|
return this.u.ccdApplyStatus == 200 ? "alert-success" : "alert-danger"
|
2020-05-14 19:13:33 -04:00
|
|
|
},
|
2021-02-15 01:03:38 -05:00
|
|
|
passwordChangeStatusCssClass: function () {
|
|
|
|
return this.u.passwordChangeStatus == 200 ? "alert-success" : "alert-danger"
|
|
|
|
},
|
2022-07-21 11:17:53 -04:00
|
|
|
userRotateStatusCssClass: function () {
|
|
|
|
return this.u.roatateUserStatus == 200 ? "alert-success" : "alert-danger"
|
|
|
|
},
|
|
|
|
deleteUserStatusCssClass: function () {
|
|
|
|
return this.u.deleteUserStatus == 200 ? "alert-success" : "alert-danger"
|
|
|
|
},
|
2020-10-29 06:50:19 -04:00
|
|
|
modalNewUserDisplay: function () {
|
|
|
|
return this.u.modalNewUserVisible ? {display: 'flex'} : {}
|
2020-05-14 19:13:33 -04:00
|
|
|
},
|
2020-10-29 06:50:19 -04:00
|
|
|
modalShowConfigDisplay: function () {
|
|
|
|
return this.u.modalShowConfigVisible ? {display: 'flex'} : {}
|
|
|
|
},
|
|
|
|
modalShowCcdDisplay: function () {
|
|
|
|
return this.u.modalShowCcdVisible ? {display: 'flex'} : {}
|
|
|
|
},
|
2021-02-15 01:03:38 -05:00
|
|
|
modalChangePasswordDisplay: function () {
|
|
|
|
return this.u.modalChangePasswordVisible ? {display: 'flex'} : {}
|
|
|
|
},
|
2022-07-21 11:17:53 -04:00
|
|
|
modalRotateUserDisplay: function () {
|
|
|
|
return this.u.modalRotateUserVisible ? {display: 'flex'} : {}
|
|
|
|
},
|
|
|
|
modalDeleteUserDisplay: function () {
|
|
|
|
return this.u.modalDeleteUserVisible ? {display: 'flex'} : {}
|
|
|
|
},
|
2020-11-03 11:32:37 -05:00
|
|
|
revokeFilterText: function() {
|
|
|
|
return this.filters.hideRevoked ? "Show revoked" : "Hide revoked"
|
|
|
|
},
|
2020-11-02 11:30:36 -05:00
|
|
|
filteredRows: function() {
|
2020-11-03 11:32:37 -05:00
|
|
|
if (this.filters.hideRevoked) {
|
|
|
|
return this.rows.filter(function(account) {
|
2020-11-17 12:48:26 -05:00
|
|
|
return account.AccountStatus == "Active"
|
2020-11-02 11:30:36 -05:00
|
|
|
});
|
|
|
|
} else {
|
2020-11-17 12:48:26 -05:00
|
|
|
return this.rows
|
2020-11-02 11:30:36 -05:00
|
|
|
}
|
|
|
|
}
|
2020-10-29 06:50:19 -04:00
|
|
|
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
rowStyleClassFn: function(row) {
|
2022-07-21 11:17:53 -04:00
|
|
|
if (row.ConnectionStatus == 'Connected') {
|
|
|
|
return 'connected-user'
|
|
|
|
}
|
|
|
|
if (row.AccountStatus == 'Revoked') {
|
|
|
|
return 'revoked-user'
|
|
|
|
}
|
|
|
|
if (row.AccountStatus == 'Expired') {
|
|
|
|
return 'expired-user'
|
|
|
|
}
|
|
|
|
return ''
|
2020-10-29 06:50:19 -04:00
|
|
|
},
|
|
|
|
rowActionFn: function(e) {
|
|
|
|
this.username = e.target.dataset.username;
|
|
|
|
this.$root.$emit(e.target.dataset.name);
|
2020-05-14 19:13:33 -04:00
|
|
|
},
|
2020-11-17 12:48:26 -05:00
|
|
|
getUserData: function() {
|
2020-05-14 19:13:33 -04:00
|
|
|
var _this = this;
|
|
|
|
axios.request(axios_cfg('api/users/list'))
|
2020-11-17 12:48:26 -05:00
|
|
|
.then(function(response) {
|
2021-07-16 04:03:12 -04:00
|
|
|
_this.rows = Array.isArray(response.data) ? response.data : [];
|
2020-11-17 12:48:26 -05:00
|
|
|
});
|
|
|
|
},
|
2021-02-20 07:48:41 -05:00
|
|
|
|
2021-02-26 07:11:13 -05:00
|
|
|
getServerSetting: function() {
|
2020-11-17 12:48:26 -05:00
|
|
|
var _this = this;
|
2021-02-26 07:11:13 -05:00
|
|
|
axios.request(axios_cfg('api/server/settings'))
|
2020-05-14 19:13:33 -04:00
|
|
|
.then(function(response) {
|
2020-11-17 12:48:26 -05:00
|
|
|
_this.serverRole = response.data.serverRole;
|
2021-02-26 07:11:13 -05:00
|
|
|
_this.modulesEnabled = response.data.modules;
|
|
|
|
|
2020-11-17 12:48:26 -05:00
|
|
|
if (_this.serverRole == "slave") {
|
2020-11-19 12:08:55 -05:00
|
|
|
axios.request(axios_cfg('api/sync/last/successful'))
|
2020-11-17 12:48:26 -05:00
|
|
|
.then(function(response) {
|
|
|
|
_this.lastSync = response.data;
|
|
|
|
});
|
|
|
|
}
|
2020-10-15 12:12:31 -04:00
|
|
|
});
|
|
|
|
},
|
2021-02-15 01:03:38 -05:00
|
|
|
|
2020-11-17 12:48:26 -05:00
|
|
|
createUser: function() {
|
2020-05-14 19:13:33 -04:00
|
|
|
var _this = this;
|
2020-10-29 06:50:19 -04:00
|
|
|
|
|
|
|
_this.u.newUserCreateError = "";
|
|
|
|
|
2020-05-14 19:13:33 -04:00
|
|
|
var data = new URLSearchParams();
|
2020-10-29 06:50:19 -04:00
|
|
|
data.append('username', _this.u.newUserName);
|
2021-02-15 01:03:38 -05:00
|
|
|
data.append('password', _this.u.newUserPassword);
|
2020-10-29 06:50:19 -04:00
|
|
|
|
2021-10-05 11:09:29 -04:00
|
|
|
_this.username = _this.u.newUserName;
|
|
|
|
|
2020-05-14 19:13:33 -04:00
|
|
|
axios.request(axios_cfg('api/user/create', data, 'form'))
|
|
|
|
.then(function(response) {
|
2021-10-05 11:09:29 -04:00
|
|
|
_this.$notify({title: 'New user ' + _this.username + ' created', type: 'success'})
|
2020-10-29 06:50:19 -04:00
|
|
|
_this.u.modalNewUserVisible = false;
|
2020-05-14 19:13:33 -04:00
|
|
|
_this.u.newUserName = '';
|
2021-02-15 01:03:38 -05:00
|
|
|
_this.u.newUserPassword = '';
|
|
|
|
_this.getUserData();
|
2020-10-29 06:50:19 -04:00
|
|
|
})
|
|
|
|
.catch(function(error) {
|
|
|
|
_this.u.newUserCreateError = error.response.data;
|
2021-02-20 07:48:41 -05:00
|
|
|
_this.$notify({title: 'New user ' + _this.username + ' creation failed.', type: 'error'})
|
|
|
|
|
2020-05-14 19:13:33 -04:00
|
|
|
});
|
2020-10-15 12:12:31 -04:00
|
|
|
},
|
2021-02-15 01:03:38 -05:00
|
|
|
|
2020-11-17 12:48:26 -05:00
|
|
|
ccdApply: function() {
|
2020-10-15 12:12:31 -04:00
|
|
|
var _this = this;
|
2020-10-29 06:50:19 -04:00
|
|
|
|
|
|
|
_this.u.ccdApplyStatus = "";
|
|
|
|
_this.u.ccdApplyStatusMessage = "";
|
|
|
|
|
|
|
|
axios.request(axios_cfg('api/user/ccd/apply', JSON.stringify(_this.u.ccd), 'json'))
|
2020-10-15 12:12:31 -04:00
|
|
|
.then(function(response) {
|
2020-10-29 06:50:19 -04:00
|
|
|
_this.u.ccdApplyStatus = 200;
|
|
|
|
_this.u.ccdApplyStatusMessage = response.data;
|
2021-02-20 07:48:41 -05:00
|
|
|
_this.$notify({title: 'Ccd for user ' + _this.username + ' applied', type: 'success'})
|
2020-10-29 06:50:19 -04:00
|
|
|
})
|
|
|
|
.catch(function(error) {
|
|
|
|
_this.u.ccdApplyStatus = error.response.status;
|
|
|
|
_this.u.ccdApplyStatusMessage = error.response.data;
|
2021-02-20 07:48:41 -05:00
|
|
|
_this.$notify({title: 'Ccd for user ' + _this.username + ' apply failed ', type: 'error'})
|
2020-10-15 12:12:31 -04:00
|
|
|
});
|
2021-02-15 01:03:38 -05:00
|
|
|
},
|
|
|
|
|
|
|
|
changeUserPassword: function(user) {
|
|
|
|
var _this = this;
|
|
|
|
|
|
|
|
_this.u.passwordChangeMessage = "";
|
|
|
|
|
|
|
|
var data = new URLSearchParams();
|
|
|
|
data.append('username', user);
|
|
|
|
data.append('password', _this.u.newPassword);
|
|
|
|
|
|
|
|
axios.request(axios_cfg('api/user/change-password', data, 'form'))
|
|
|
|
.then(function(response) {
|
|
|
|
_this.u.passwordChangeStatus = 200;
|
|
|
|
_this.u.newPassword = '';
|
|
|
|
_this.getUserData();
|
|
|
|
_this.u.modalChangePasswordVisible = false;
|
2021-02-20 07:48:41 -05:00
|
|
|
_this.$notify({title: 'Password for user ' + _this.username + ' changed!', type: 'success'})
|
2021-02-15 01:03:38 -05:00
|
|
|
})
|
|
|
|
.catch(function(error) {
|
|
|
|
_this.u.passwordChangeStatus = error.response.status;
|
|
|
|
_this.u.passwordChangeMessage = error.response.data.message;
|
2021-02-20 07:48:41 -05:00
|
|
|
_this.$notify({title: 'Changing password for user ' + _this.username + ' failed!', type: 'error'})
|
2021-02-15 01:03:38 -05:00
|
|
|
});
|
|
|
|
},
|
2022-07-21 11:17:53 -04:00
|
|
|
|
|
|
|
rotateUser: function(user) {
|
|
|
|
var _this = this;
|
|
|
|
|
|
|
|
_this.u.rotateUserMessage = "";
|
|
|
|
|
|
|
|
var data = new URLSearchParams();
|
|
|
|
data.append('username', user);
|
|
|
|
data.append('password', _this.u.newPassword);
|
|
|
|
|
|
|
|
axios.request(axios_cfg('api/user/rotate', data, 'form'))
|
|
|
|
.then(function(response) {
|
|
|
|
_this.u.roatateUserStatus = 200;
|
|
|
|
_this.u.newPassword = '';
|
|
|
|
_this.getUserData();
|
|
|
|
_this.u.modalRotateUserVisible = false;
|
|
|
|
_this.$notify({title: 'Certificates for user ' + _this.username + ' rotated!', type: 'success'})
|
|
|
|
})
|
|
|
|
.catch(function(error) {
|
|
|
|
_this.u.roatateUserStatus = error.response.status;
|
|
|
|
_this.u.rotateUserMessage = error.response.data.message;
|
|
|
|
_this.$notify({title: 'Rotate certificates for user ' + _this.username + ' failed!', type: 'error'})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
deleteUser: function(user) {
|
|
|
|
var _this = this;
|
|
|
|
|
|
|
|
_this.u.deleteUserMessage = "";
|
|
|
|
|
|
|
|
var data = new URLSearchParams();
|
|
|
|
data.append('username', user);
|
|
|
|
|
|
|
|
axios.request(axios_cfg('api/user/delete', data, 'form'))
|
|
|
|
.then(function(response) {
|
|
|
|
_this.u.deleteUserStatus = 200;
|
|
|
|
_this.u.newPassword = '';
|
|
|
|
_this.getUserData();
|
|
|
|
_this.u.modalDeleteUserVisible = false;
|
|
|
|
_this.$notify({title: 'User ' + _this.username + ' deleted!', type: 'success'})
|
|
|
|
})
|
|
|
|
.catch(function(error) {
|
|
|
|
_this.u.deleteUserStatus = error.response.status;
|
|
|
|
_this.u.deleteUserMessage = error.response.data.message;
|
|
|
|
_this.$notify({title: 'Deleting user ' + _this.username + ' failed!', type: 'error'})
|
|
|
|
})
|
|
|
|
},
|
2020-05-14 19:13:33 -04:00
|
|
|
}
|
2021-02-15 01:03:38 -05:00
|
|
|
|
2020-05-14 19:13:33 -04:00
|
|
|
})
|