mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-18 16:54:25 +08:00
show user nickname in settings page
This commit is contained in:
@@ -77,6 +77,8 @@ func (a *AuthorizationsApi) AuthorizeHandler(c *core.Context) (interface{}, *err
|
|||||||
|
|
||||||
authResp := &models.AuthResponse{
|
authResp := &models.AuthResponse{
|
||||||
Token : token,
|
Token : token,
|
||||||
|
Username: user.Username,
|
||||||
|
Nickname: user.Nickname,
|
||||||
Need2FA: twoFactorEnable,
|
Need2FA: twoFactorEnable,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -132,6 +134,8 @@ func (a *AuthorizationsApi) TwoFactorAuthorizeHandler(c *core.Context) (interfac
|
|||||||
|
|
||||||
authResp := &models.AuthResponse{
|
authResp := &models.AuthResponse{
|
||||||
Token : token,
|
Token : token,
|
||||||
|
Username: user.Username,
|
||||||
|
Nickname: user.Nickname,
|
||||||
Need2FA: false,
|
Need2FA: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -193,6 +197,8 @@ func (a *AuthorizationsApi) TwoFactorAuthorizeByRecoveryCodeHandler(c *core.Cont
|
|||||||
|
|
||||||
authResp := &models.AuthResponse{
|
authResp := &models.AuthResponse{
|
||||||
Token : token,
|
Token : token,
|
||||||
|
Username: user.Username,
|
||||||
|
Nickname: user.Nickname,
|
||||||
Need2FA: false,
|
Need2FA: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+9
-1
@@ -63,7 +63,15 @@ func (a *UsersApi) UserRegisterHandler(c *core.Context) (interface{}, *errs.Erro
|
|||||||
c.SetTokenClaims(claims)
|
c.SetTokenClaims(claims)
|
||||||
|
|
||||||
log.InfofWithRequestId(c, "[users.UserRegisterHandler] user \"uid:%d\" has logined, token will be expired at %d", user.Uid, claims.ExpiresAt)
|
log.InfofWithRequestId(c, "[users.UserRegisterHandler] user \"uid:%d\" has logined, token will be expired at %d", user.Uid, claims.ExpiresAt)
|
||||||
return token, nil
|
|
||||||
|
authResp := &models.AuthResponse{
|
||||||
|
Token : token,
|
||||||
|
Username: user.Username,
|
||||||
|
Nickname: user.Nickname,
|
||||||
|
Need2FA: false,
|
||||||
|
}
|
||||||
|
|
||||||
|
return authResp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *UsersApi) UserProfileHandler(c *core.Context) (interface{}, *errs.Error) {
|
func (a *UsersApi) UserProfileHandler(c *core.Context) (interface{}, *errs.Error) {
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
type AuthResponse struct {
|
type AuthResponse struct {
|
||||||
Token string `json:"token"`
|
Token string `json:"token"`
|
||||||
Need2FA bool `json:"need2FA"`
|
Username string `json:"username,omitempty"`
|
||||||
|
Nickname string `json:"nickname,omitempty"`
|
||||||
|
Need2FA bool `json:"need2FA"`
|
||||||
}
|
}
|
||||||
|
|||||||
+29
-3
@@ -1,23 +1,49 @@
|
|||||||
const tokenLocalStorageKey = 'lab_user_token';
|
const tokenLocalStorageKey = 'lab_user_token';
|
||||||
|
const userNameLocalStorageKey = 'lab_user_name';
|
||||||
|
const userNickNameLocalStorageKey = 'lab_user_nickname';
|
||||||
|
|
||||||
function getToken() {
|
function getToken() {
|
||||||
return localStorage.getItem(tokenLocalStorageKey);
|
return localStorage.getItem(tokenLocalStorageKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getUserName() {
|
||||||
|
return localStorage.getItem(userNameLocalStorageKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getUserNickName() {
|
||||||
|
return localStorage.getItem(userNickNameLocalStorageKey);
|
||||||
|
}
|
||||||
|
|
||||||
function isUserLogined() {
|
function isUserLogined() {
|
||||||
return !!getToken();
|
return !!getToken();
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateToken(token) {
|
function updateToken(item) {
|
||||||
return localStorage.setItem(tokenLocalStorageKey, token);
|
if (typeof(item) === 'string') {
|
||||||
|
return localStorage.setItem(tokenLocalStorageKey, item);
|
||||||
|
} else if (typeof(item) === 'object') {
|
||||||
|
localStorage.setItem(tokenLocalStorageKey, item.token);
|
||||||
|
localStorage.setItem(userNameLocalStorageKey, item.username);
|
||||||
|
localStorage.setItem(userNickNameLocalStorageKey, item.nickname);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function clearToken() {
|
function clearToken() {
|
||||||
return localStorage.removeItem(tokenLocalStorageKey);
|
localStorage.removeItem(tokenLocalStorageKey);
|
||||||
|
localStorage.removeItem(userNameLocalStorageKey);
|
||||||
|
localStorage.removeItem(userNickNameLocalStorageKey);
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
getToken,
|
getToken,
|
||||||
|
getUserName,
|
||||||
|
getUserNickName,
|
||||||
isUserLogined,
|
isUserLogined,
|
||||||
updateToken,
|
updateToken,
|
||||||
clearToken
|
clearToken
|
||||||
|
|||||||
@@ -55,6 +55,8 @@ export default {
|
|||||||
'OK': 'OK',
|
'OK': 'OK',
|
||||||
'Cancel': 'Cancel',
|
'Cancel': 'Cancel',
|
||||||
'Done': 'Done',
|
'Done': 'Done',
|
||||||
|
'User': 'User',
|
||||||
|
'Application': 'Application',
|
||||||
'Home': 'Home',
|
'Home': 'Home',
|
||||||
'Journals': 'Journals',
|
'Journals': 'Journals',
|
||||||
'Accounts': 'Accounts',
|
'Accounts': 'Accounts',
|
||||||
@@ -90,6 +92,7 @@ export default {
|
|||||||
'Use a backup code': 'Use a backup code',
|
'Use a backup code': 'Use a backup code',
|
||||||
'Use a passcode': 'Use a passcode',
|
'Use a passcode': 'Use a passcode',
|
||||||
'Sign Up': 'Sign Up',
|
'Sign Up': 'Sign Up',
|
||||||
|
'User Profile': 'User Profile',
|
||||||
'Language': 'Language',
|
'Language': 'Language',
|
||||||
'You have been successfully registered': 'You have been successfully registered',
|
'You have been successfully registered': 'You have been successfully registered',
|
||||||
'Unable to sign up': 'Unable to sign up',
|
'Unable to sign up': 'Unable to sign up',
|
||||||
|
|||||||
@@ -55,6 +55,8 @@ export default {
|
|||||||
'OK': '确定',
|
'OK': '确定',
|
||||||
'Cancel': '取消',
|
'Cancel': '取消',
|
||||||
'Done': '完成',
|
'Done': '完成',
|
||||||
|
'User': '用户',
|
||||||
|
'Application': '应用',
|
||||||
'Home': '首页',
|
'Home': '首页',
|
||||||
'Journals': '流水',
|
'Journals': '流水',
|
||||||
'Accounts': '账户',
|
'Accounts': '账户',
|
||||||
@@ -90,6 +92,7 @@ export default {
|
|||||||
'Use a backup code': '使用备用码',
|
'Use a backup code': '使用备用码',
|
||||||
'Use a passcode': '使用验证码',
|
'Use a passcode': '使用验证码',
|
||||||
'Sign Up': '注册',
|
'Sign Up': '注册',
|
||||||
|
'User Profile': '用户信息',
|
||||||
'Language': '语言',
|
'Language': '语言',
|
||||||
'You have been successfully registered': '注册成功',
|
'You have been successfully registered': '注册成功',
|
||||||
'Unable to sign up': '无法注册',
|
'Unable to sign up': '无法注册',
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ export default {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.$user.updateToken(data.result.token);
|
self.$user.updateToken(data.result);
|
||||||
router.navigate('/');
|
router.navigate('/');
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
hasResponse = true;
|
hasResponse = true;
|
||||||
@@ -225,7 +225,7 @@ export default {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.$user.updateToken(data.result.token);
|
self.$user.updateToken(data.result);
|
||||||
app.sheet.close('#2fa-auth-sheet');
|
app.sheet.close('#2fa-auth-sheet');
|
||||||
router.navigate('/');
|
router.navigate('/');
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
|
|||||||
@@ -1,6 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<f7-page name="home">
|
<f7-page name="settings">
|
||||||
<f7-navbar :title="$t('Settings')" :back-link="$t('Back')"></f7-navbar>
|
<f7-navbar :title="$t('Settings')" :back-link="$t('Back')"></f7-navbar>
|
||||||
|
<f7-block-title>{{ userNickName }}</f7-block-title>
|
||||||
|
<f7-list>
|
||||||
|
<f7-list-item :title="$t('User Profile')" link="#"></f7-list-item>
|
||||||
|
<f7-list-button @click="logout">{{ $t('Log Out') }}</f7-list-button>
|
||||||
|
</f7-list>
|
||||||
|
<f7-block-title>{{ $t('Application') }}</f7-block-title>
|
||||||
<f7-list>
|
<f7-list>
|
||||||
<f7-list-item
|
<f7-list-item
|
||||||
:title="$t('Language')"
|
:title="$t('Language')"
|
||||||
@@ -11,7 +17,6 @@
|
|||||||
:value="locale">{{ lang.displayName }}</option>
|
:value="locale">{{ lang.displayName }}</option>
|
||||||
</select>
|
</select>
|
||||||
</f7-list-item>
|
</f7-list-item>
|
||||||
<f7-list-button @click="logout">{{ $t('Log Out') }}</f7-list-button>
|
|
||||||
</f7-list>
|
</f7-list>
|
||||||
</f7-page>
|
</f7-page>
|
||||||
</template>
|
</template>
|
||||||
@@ -26,6 +31,9 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
userNickName() {
|
||||||
|
return this.$user.getUserNickName() || this.$user.getUserName() || this.$t('User');
|
||||||
|
},
|
||||||
currentLocale: {
|
currentLocale: {
|
||||||
get: function () {
|
get: function () {
|
||||||
return this.$i18n.locale
|
return this.$i18n.locale
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ export default {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof(data.result) === 'string') {
|
if (typeof(data.result) === 'object') {
|
||||||
self.$user.updateToken(data.result);
|
self.$user.updateToken(data.result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user