123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- /**
- * 登录相关控制器
- *
- * @author CaiAoLin
- * @date 2017/6/8
- * @version
- */
- import UserModel from "../models/user_model";
- import SettingModel from "../models/setting_model";
- import CompilationModel from "../models/compilation_model";
- class LoginController {
- /**
- * 登录页面
- *
- * @param {object} request
- * @param {object} response
- * @return {void}
- */
- async index(request, response) {
- let sessionUser = request.session.sessionUser;
- if (sessionUser !== undefined && sessionUser.ssoId >= 0) {
- return response.redirect("/pm");
- }
- response.render('users/html/login', {});
- }
- /**
- * 登录操作
- *
- * @param {object} request
- * @param {object} response
- * @return {string}
- */
- async login(request, response) {
- let account = request.body.account;
- let password = request.body.pw;
- let preferenceSetting = {};
- let compilationList = [];
- try {
- // 调用接口验证登录信息
- let userModel = new UserModel();
- let responseData = await userModel.getInfoFromSSO(account, password);
- responseData = JSON.parse(responseData);
- if (typeof responseData !== 'object') {
- throw '邮箱/手机 或 密码错误';
- }
- if (responseData.length <= 0) {
- throw '接口返回数据错误';
- }
- // 正确登录后 存入session
- let userData = responseData[0];
- if (userData.mobile === '') {
- return response.json({error: 2,ssoId: userData.id});
- }
- let sessionUser = {
- ssoId: userData.id,
- username: userData.username,
- email: userData.useremail,
- mobile: userData.mobile,
- };
- request.session.sessionUser = sessionUser;
- // 记录用户数据到数据库
- let result = await userModel.markUser(sessionUser, request);
- // 获取偏好设置
- let settingModel = new SettingModel();
- preferenceSetting = await settingModel.getPreferenceSetting(request.session.sessionUser.id);
- if (!result) {
- throw '标记用户信息失败!';
- }
- let compilationModel = new CompilationModel();
- compilationList = preferenceSetting.login_ask === 1 ? await compilationModel.getList() : [];
- // 获取编办信息
- let sessionCompilation = request.session.sessionCompilation;
- if (preferenceSetting.login_ask === 0 && !sessionCompilation &&
- preferenceSetting.select_version !== '') {
- let compilationData = await compilationModel.getCompilationById(preferenceSetting.select_version);
- request.session.sessionCompilation = compilationData;
- }
- } catch (error) {
- console.log(error);
- return response.json({error: 1, msg: error});
- }
- response.json({
- error: 0,
- msg: '',
- login_ask: preferenceSetting.login_ask,
- compilation_list: JSON.stringify(compilationList),
- last_page: request.session.lastPage
- });
- }
- }
- export default LoginController;
|