vesh-cli
Version:
码农村nodejs版本VESH框架脚手架搭建器
103 lines (99 loc) • 3.62 kB
JavaScript
import V from 'gcl/com/coooders/common/tool';
import C from 'vesh/com/coooders/Project/VESH/V/Control/core-modulers';
export const Action = class extends C.AAction {
constructor() {
super();
}
preload(req, rep, session) {
return false;
}
async yourmethod(req, rep, session, call) {
session.status = 'regist';
session.status = 'mailmanage';
return false;
}
async getUserInfo(req, rep, session) {
try {
if (!session.User.Login && V.isValid(session.param('sessionID'))) {
//被第三方调用尝试重新初始化
session.reInit(session.param('sessionID'));
await session.initSession();
}
if (session.User.Login) {
var userinfo = await session.User.toString();
var roleurl = session.AppSettings('role_url') || '../../';
session.status = `var User = ${userinfo};var role_url = "${roleurl}";`;
} else throw new Error('未登录成功!');
} catch (e) {
session.Log.error(e.stack);
var roleurl = session.AppSettings('role_url') || '../../';
session.status = `var User = {};var role_url = "${roleurl}";`;
}
return false;
}
/**
* permission 和 sessionID 验证
* @param {*} req
* @param {*} rep
* @param {*} session
*/
async checkRight(req, rep, session) {
try {
session.testRequired('permission') || session.testRequired('sessionID');
if (!session.User.Login) {
session.reInit(session.param('sessionID'));
}
await session.testPermission(session.param('permission'));
session.status = V.toJsonString({ success: true, msg: true });
} catch (e) {
session.Log.error(e.stack);
session.status = V.toJsonString({ success: false, error: e.message });
}
return false;
}
/**
* 获取全部的树
* @param {*} req
* @param {*} rep
* @param {*} session
* @param {*} call
*/
async checkURL(req, rep, session) {
try {
session.testRequired('url') || session.testRequired('sessionID');
if (!session.User.Login)
session.reInit(session.param('sessionID'));
const url = session.param('url').split('?')[0].toLowerCase();
const menus = await session.MENUS.get();
let ret = false;
menus.forEach(e => {
ret = ret || (e.URLFormatting.toLowerCase().trim() == url);
});
if (!ret) throw new Error(url + '不可访问!');
session.status = V.toJsonString({ success: true, msg: true });
} catch (e) {
session.Log.error(e.stack);
session.status = V.toJsonString({ success: false, error: e.message });
}
return false;
}
/**
* 原子自增ID key,num
* @param {请求对象} req
* @param {返回对象} rep
* @param {会话对象} session
*/
async increase(req, rep, session) {
try {
const ret = await session.Ni.excute('MT', 'com.coooders.project.vesh.module.increaseID', {
key: session.testRequired('key'),
num: session.testInt('num', null, true)
});
session.dbresult[0] = ret.hasData() ? ret.last() : [];
} catch (e) {
console.log(e.stack);
throw new Error(e.message);
}
return false;
}
}