2021SC@SDUSC
本周我们继续来看admin文件的剩下部分:
一、分类分组
1.
async admin_priv(ac, cid, errors = '您所在的用户组,禁止本操作!') {
if (!this.is_admin) {
// 访问控制
const priv = await this.model('cmswing/category_priv').priv(cid, this.roleid, ac, 1);
return priv;
// if (!priv) {
// console.log('fdsfs');
// const error = this.controller('cmswing/error');
// return error.noAction(errors);
// }
}
return true;
}
这段主要是用来验证后台栏目权限的。ac为要进行的操作:init为查看,edit为编辑,add为添加,delete为删除。cid为栏目的id,error为出现错误后的提示。通过if语句判断,若权限不符,会返回禁止操作的提示。
2.
async sort(cate_id = this.get('cate_id'), sortid) {
if (think.isEmpty(sortid)) {
sortid = this.get('sortid') || 0;
}
let sort = await this.model('cmswing/category').get_category(cate_id, 'documentsorts');
if (sort) {
sort = JSON.parse(sort);
if (sortid == 0) {
sortid = sort.defaultshow;
}
const typevar = await this.model('typevar').where({sortid: sortid}).select();
for (const val of typevar) {
val.option = await this.model('typeoption').where({optionid: val.optionid}).find();
if (val.option.type == 'select' || val.option.type == 'radio') {
if (!think.isEmpty(val.option.rules)) {
val.option.rules = JSON.parse(val.option.rules);
val.rules = parse_type_attr(val.option.rules.choices);
val.option.rules.choices = parse_config_attr(val.option.rules.choices);
}
} else if (val.op