Переглянути джерело

add support for unlocking bubble

pull/1/head
Jonathan Cobb 4 роки тому
джерело
коміт
f9134769f1
5 змінених файлів з 21 додано та 5 видалено
  1. +3
    -2
      src/_services/user.service.js
  2. +5
    -1
      src/_store/account.module.js
  3. +1
    -0
      src/_store/system.module.js
  4. +1
    -0
      src/account/NetworkPage.vue
  5. +11
    -2
      src/auth/LoginPage.vue

+ 3
- 2
src/_services/user.service.js Переглянути файл

@@ -33,13 +33,14 @@ function setSessionUser (user) {
return user;
}

function login(name, password, messages, errors) {
function login(name, password, unlockKey, messages, errors) {
const unlockParam = (typeof unlockKey !== 'undefined' && unlockKey !== null) ? `?k=${unlockKey}` : '';
const requestOptions = {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ 'name': name, 'password': password })
};
return fetch(`${config.apiUrl}/auth/login`, requestOptions)
return fetch(`${config.apiUrl}/auth/login${unlockParam}`, requestOptions)
.then(handleAuthResponse(messages, errors))
.then(setSessionUser);
}


+ 5
- 1
src/_store/account.module.js Переглянути файл

@@ -38,11 +38,15 @@ const actions = {
},
login({ dispatch, commit }, { user, messages, errors }) {
commit('loginRequest', { name: user.name });
userService.login(user.name, user.password, messages, errors)
userService.login(user.name, user.password, user.unlockKey, messages, errors)
.then(
user => {
commit('loginSuccess', user);
if (user.token) {
if (user.unlockKey) {
console.log('account.login: reloading system configs after unlock');
dispatch('system/loadSystemConfigs');
}
const landing = util.getLandingPage();
if (landing === null) {
router.replace('/');


+ 1
- 0
src/_store/system.module.js Переглянути файл

@@ -16,6 +16,7 @@ const state = {
searchResults: [],
status: { activating: false, searching: false, creatingEntity: false, modelSetupInProgress: false },
activated: null,
locked: null,
error: null,
messages: {
durationToMillis: function(count, units) {


+ 1
- 0
src/account/NetworkPage.vue Переглянути файл

@@ -74,6 +74,7 @@
<hr/>
<div class="text-danger"><h4>{{messages.title_network_danger_zone}}</h4></div>
<div v-if="errors.has('node')" class="invalid-feedback d-block">{{ errors.first('node') }}</div>
<div v-if="errors.has('accountPlan')" class="invalid-feedback d-block">{{ errors.first('accountPlan') }}</div>
<div v-if="network.state === 'running'" style="border: 2px solid #000;">
<hr/>
<button @click="stopNet()" class="text-danger">{{messages.link_network_action_stop}}</button>


+ 11
- 2
src/auth/LoginPage.vue Переглянути файл

@@ -6,12 +6,19 @@
<label for="name">{{messages.field_label_username}}</label>
<input type="text" v-model="name" name="name" class="form-control" :class="{ 'is-invalid': submitted && !name }" />
<div v-show="submitted && !name" class="invalid-feedback">Name is required</div>
<div v-if="submitted && errors.has('account')" class="invalid-feedback">{{ errors.first('account') }}</div>
</div>
<div class="form-group">
<label htmlFor="password">{{messages.field_label_password}}</label>
<input type="password" v-model="password" name="password" class="form-control" :class="{ 'is-invalid': submitted && !password }" />
<div v-show="submitted && !password" class="invalid-feedback">Password is required</div>
</div>
<div v-if="configs && configs.locked === true" class="form-group">
<label htmlFor="unlockKey">{{messages.field_label_unlock_key}}</label>
<input type="password" v-model="unlockKey" name="unlockKey" class="form-control" :class="{ 'is-invalid': submitted && !unlockKey }" />
<div v-show="submitted && !unlockKey" class="invalid-feedback">Unlock Key is required</div>
<div v-if="submitted && errors.has('unlockKey')" class="invalid-feedback">{{ errors.first('unlockKey') }}</div>
</div>
<div class="form-group">
<button class="btn btn-primary" :disabled="status.loggingIn">{{messages.button_label_login}}</button>
<img v-show="status.loggingIn" src="data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==" />
@@ -29,6 +36,7 @@ export default {
return {
name: '',
password: '',
unlockKey: null,
submitted: false
}
},
@@ -43,10 +51,11 @@ export default {
...mapActions('account', ['login', 'logout']),
...mapActions('system', ['loadSystemConfigs']),
handleSubmit (e) {
this.errors.clear();
this.submitted = true;
const { name, password } = this;
const { name, password, unlockKey } = this;
if (name && password) {
this.login({user: {name, password}, messages: this.messages, errors: this.errors});
this.login({user: {name, password, unlockKey}, messages: this.messages, errors: this.errors});
}
}
}


Завантаження…
Відмінити
Зберегти