import store from '@/store'
|
import _axios, { get, put } from '@/lin/plugin/axios'
|
import { saveTokens } from '../util/token'
|
|
export default class User {
|
/**
|
* 分配用户
|
* @param {object} user 注册信息
|
*/
|
static register(user) {
|
return _axios({
|
method: 'post',
|
url: 'cms/user/register',
|
data: {
|
email: user.email,
|
username: user.username,
|
nickname: user.nickname,
|
password: user.password,
|
group_ids: user.groupIds,
|
confirm_password: user.confirmPassword,
|
|
staff_status:user.staff_status,
|
show_board_flag:user.show_board_flag,
|
hiredate:user.hiredate,
|
unhiredate:user.unhiredate,
|
send_email_flag:user.send_email_flag,
|
|
},
|
handleError: true,
|
})
|
}
|
|
/**
|
* 登陆获取tokens
|
* @param { String } username 用户名
|
* @param { String } password 密码
|
* @param { String } captcha 验证码
|
* @param { String } tag 验证码签名
|
*/
|
static async getToken(username, password, captcha, tag) {
|
const tokens = await _axios({
|
url: 'cms/user/login',
|
method: 'POST',
|
data: {
|
captcha,
|
username,
|
password,
|
},
|
headers: {
|
tag,
|
},
|
})
|
saveTokens(tokens.access_token, tokens.refresh_token)
|
return tokens
|
}
|
|
/**
|
* 获取当前用户信息,并返回User实例
|
*/
|
static async getInformation() {
|
const info = await get('cms/user/information')
|
const storeUser = store.getters.user === null ? {} : store.getters.user
|
return Object.assign({ ...storeUser }, info)
|
}
|
|
/**
|
* 获取当前用户信息和所拥有的权限
|
*/
|
static async getPermissions() {
|
const info = await get('cms/user/permissions')
|
const storeUser = store.getters.user === null ? {} : store.getters.user
|
return Object.assign({ ...storeUser }, info)
|
}
|
|
/**
|
* 用户修改密码
|
* @param {string} newPassword 新密码
|
* @param {string} confirmPassword 确认新密码
|
* @param {string} oldPassword 旧密码
|
*/
|
// eslint-disable-next-line camelcase
|
static updatePassword({ old_password, new_password, confirm_password }) {
|
return put('cms/user/change_password', {
|
new_password,
|
confirm_password,
|
old_password,
|
})
|
}
|
|
}
|