account.js 7.67 KB
/**
 * 个人中心---账户安全
 * @author gaohongwei <hongwei.gao@yoho.cn>
 * @date: 2016/8/30
 */
'use strict';

const mRoot = '../models';
const accountService = require(`${mRoot}/account-service`); // user  model
const helpers = global.yoho.helpers;

/**
 * 账户安全
 * @param  {[type]} req [description]
 * @param  {[type]} res [description]
 * @return {[type]}     [description]
 */
exports.index = (req, res, next) => {
    if (!req.user.uid) {
        res.redirect(helpers.urlFormat('/signin.html'));
    }
    let uid = req.user.uid;

    let responseData = {};

    // 真实数据输出
    accountService.getAccountInfo(uid).then(result => {
        responseData.user = result;
        responseData.meAccountPage = true;
        responseData.account = {
            allAccounts: result
        };
        res.render('home/account/account', responseData);
    }).catch(next);

};

/**
 * 个人中心-修改密码身份验证-page1/2/3
 */
exports.userPwd = (req, res, next) => {
    if (!req.user.uid) {
        res.redirect(helpers.urlFormat('/signin.html'));
    }
    let uid = req.user.uid;

    let responseData = {
        module: 'home',
        page: 'validate'
    };

    let params = req.query;

    params.uid = uid;

    // 真实数据输出
    accountService.userPwd(params).then(result => {
        // 第二步验证没通过,就跳转
        if (result.code && result.code === 400) {
            res.redirect(helpers.urlFormat(result.url, result.params));
        } else {
            Object.assign(responseData, result);
            res.render('home/account/userpwd', responseData);
        }
    }).catch(next);

};

 /**
 * 个人中心-邮箱验证身份-page1/2/3
 */
exports.userEmail = (req, res, next) => {
    if (!req.user.uid) {
        return res.redirect(helpers.urlFormat('/signin.html'));
    }
    let uid = req.user.uid;

    let responseData = {
        module: 'home',
        page: 'validate'
    };

    let params = req.query;

    params.uid = uid;

    // 真实数据输出
    accountService.userEmail(params).then(result => {
        // 第二步验证没通过,就跳转
        if (result.code && result.code === 400) {
            res.redirect(helpers.urlFormat(result.url, result.params));
        } else {
            Object.assign(responseData, result);
            res.render('home/account/email', responseData);
        }
    }).catch(next);

};

  /**
 * 个人中心-手机验证身份-page1/2/3
 */
exports.userMobile = (req, res, next) => {
    if (!req.user.uid) {
        res.redirect(helpers.urlFormat('/signin.html'));
    }
    let uid = req.user.uid;

    let responseData = {
        module: 'home',
        page: 'validate'
    };

    let params = req.query;

    params.uid = uid;

    // 真实数据输出
    accountService.userMobile(params).then(result => {
        // 第二步验证没通过,就跳转
        if (result.code && result.code === 400) {
            res.redirect(helpers.urlFormat(result.url, result.params));
        } else {
            Object.assign(responseData, result);
            res.render('home/account/mobile', responseData);
        }
    }).catch(next);

};

/**
 * 分-验证图形验证码-ajax
 */
exports.checkVerifyCode = (req, res, next) => {
    // 真实数据输出
    accountService.checkVerifyCode(req).then(result => {
        res.json(result);
    }).catch(next);
};

/**
 * 分-验证密码正确性-ajax
 */
exports.checkPassword = (req, res, next) => {
    if (!req.user.uid) {
        res.redirect(helpers.urlFormat('/signin.html'));
    }
    req.uid = req.user.uid;

    // 真实数据输出
    accountService.checkPassword(req).then(result => {
        res.json(result);
    }).catch(next);
};

/**
 * 身份验证-登录密码验证Ajax
 */
exports.verifyPassword = (req, res, next) => {
    if (!req.user.uid) {
        res.redirect(helpers.urlFormat('/signin.html'));
    }
    req.uid = req.user.uid;

    // 真实数据输出
    accountService.verifyPassword(req).then(result => {
        res.json(result);
    }).catch(next);
};

/**
 * 修改密码
 */
exports.modifyPwd = (req, res, next) => {
    if (!req.user.uid) {
        res.redirect(helpers.urlFormat('/signin.html'));
    }
    let uid = req.user.uid;

    let params = req.body;

    params.uid = uid;

    // 真实数据输出
    accountService.modifyPwd(req, params).then(result => {
        res.json(result);
    }).catch(next);
};

/**
 * 身份验证时,发送邮件-ajax
 */
exports.sendEmail = (req, res, next) => {
    if (!req.user.uid) {
        res.redirect(helpers.urlFormat('/signin.html'));
    }
    req.uid = req.user.uid;

    // 真实数据输出
    accountService.sendEmail(req).then(result => {
        res.json(result);
    }).catch(next);
};

/**
 * 分-修改邮箱前,校验邮箱-ajax
 */
exports.checkEmail = (req, res, next) => {
    if (!req.user.uid) {
        res.redirect(helpers.urlFormat('/signin.html'));
    }
    req.uid = req.user.uid;

    // 真实数据输出
    accountService.checkEmail(req).then(result => {
        res.json(result);
    }).catch(next);
};

/**
 * 修改验证邮箱校验并发送邮件-ajax
 *
 */
exports.modifyEmail = (req, res, next) => {
    if (!req.user.uid) {
        res.redirect(helpers.urlFormat('/signin.html'));
    }
    req.uid = req.user.uid;

    // 真实数据输出
    accountService.modifyEmail(req).then(result => {
        res.json(result);
    }).catch(next);
};

 /**
 * 个人中心-邮箱验证身份-邮件发送成功过渡页
 */
exports.sendEmailSuccess = (req, res, next) => {
    if (!req.user.uid) {
        res.redirect(helpers.urlFormat('/signin.html'));
    }
    let uid = req.user.uid;

    let responseData = {
        module: 'home',
        page: 'validate'
    };

    let params = req.query;

    params.uid = uid;

    // 真实数据输出
    accountService.sendEmailSuccess(params).then(result => {
        Object.assign(responseData, result);
        res.render('home/account/email', responseData);
    }).catch(next);

};

/**
 * 点击邮箱验证链接方法--修改验证邮箱
 */
exports.mailResult = (req, res, next) => {

    // 真实数据输出
    accountService.mailResult(req.query).then(result => {
        // 第二步验证没通过,就跳转
        if (result.code && result.code === 400) {
            res.redirect(helpers.urlFormat(result.url, result.params));
        } else {
            res.json(result);
        }
    }).catch(next);
};

/**
 * 分-检查手机号是否可修改-ajax
 */
exports.checkMobile = (req, res, next) => {
    if (!req.user.uid) {
        res.redirect(helpers.urlFormat('/signin.html'));
    }

    // 真实数据输出
    accountService.checkMobile(req.query, req.user.uid).then(result => {
        res.json(result);
    }).catch(next);
};

/**
 * 校验短信验证码-ajax
 */
exports.checkMobileMsg = (req, res, next) => {
    if (!req.user.uid) {
        res.redirect(helpers.urlFormat('/signin.html'));
    }
    let uid = req.user.uid;

    // 真实数据输出
    accountService.checkMobileMsg(req, uid).then(result => {
        res.json(result);
    }).catch(next);
};

/**
 * 向验证手机号发送短信-ajax
 */
exports.sendMobileMsg = (req, res, next) => {
    if (!req.user.uid) {
        res.redirect(helpers.urlFormat('/signin.html'));
    }
    let uid = req.user.uid;

    // 真实数据输出
    accountService.sendMobileMsg(req, uid).then(result => {
        res.json(result);
    }).catch(next);
};

/**
 * 修改验证手机号
 */
exports.modifyMobile = (req, res, next) => {
    if (!req.user.uid) {
        res.redirect(helpers.urlFormat('/signin.html'));
    }
    let uid = req.user.uid;

    // 真实数据输出
    accountService.modifyMobile(req, uid).then(result => {
        res.json(result);
    }).catch(next);
};