chore: establish V1.1 recovery baseline
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
/**
|
||||
* 权限码常量(规范 §98-99 前端权限不能代替后端权限)
|
||||
*
|
||||
* 前端隐藏按钮只是用户体验,真正权限由后端校验。
|
||||
* 即使用户手动访问 URL,无权限仍拒绝。
|
||||
* 用户端小程序本身权限较少,主要场景:是否可发消息、是否可申请红娘、是否可报名活动。
|
||||
*/
|
||||
|
||||
// 用户端功能权限码(用于前端按钮显隐与路由守卫)
|
||||
exports.USER_PERMISSION = {
|
||||
CAN_VIEW_DISCOVER: 'can_view_discover', // 进入找对象
|
||||
CAN_RECEIVE_RECOMMENDATIONS: 'can_receive_recommendations', // 被系统推荐
|
||||
CAN_LIKE: 'can_like', // 表达喜欢
|
||||
CAN_CHAT: 'can_chat', // 发起聊天(需 mutual_match)
|
||||
CAN_APPLY_ACTIVITY: 'can_apply_activity', // 报名活动
|
||||
CAN_APPLY_MATCHMAKER: 'can_apply_matchmaker', // 申请红娘
|
||||
CAN_REPORT: 'can_report', // 提交举报
|
||||
CAN_VIEW_SENSITIVE_OWN: 'can_view_sensitive_own', // 查看本人敏感字段
|
||||
};
|
||||
|
||||
// 后台/红娘端权限码(预留,规范 §93、§97)
|
||||
// 后台路由绑定 permissionCode,按 currentOperator.permissions 动态生成菜单
|
||||
exports.ADMIN_PERMISSION = {
|
||||
// 用户与审核
|
||||
USER_VIEW: 'user.view',
|
||||
USER_REVIEW: 'user.review',
|
||||
USER_SENSITIVE_VIEW: 'user.sensitive.view',
|
||||
USER_BAN: 'user.ban',
|
||||
|
||||
// 匹配
|
||||
MATCH_RULE_EDIT: 'match.rule.edit',
|
||||
|
||||
// 红娘
|
||||
MATCHMAKER_SERVICE: 'matchmaker.service',
|
||||
MATCHMAKER_ASSIGN: 'matchmaker.assign',
|
||||
|
||||
// 活动
|
||||
ACTIVITY_VIEW: 'activity.view',
|
||||
ACTIVITY_CREATE: 'activity.create',
|
||||
ACTIVITY_EDIT: 'activity.edit',
|
||||
ACTIVITY_REVIEW: 'activity.review',
|
||||
ACTIVITY_CHECKIN: 'activity.checkin',
|
||||
|
||||
// 风控
|
||||
RISK_REPORT_VIEW: 'risk.report.view',
|
||||
RISK_REPORT_PROCESS: 'risk.report.process',
|
||||
|
||||
// 组织与权限
|
||||
ORG_MANAGE: 'org.manage',
|
||||
ROLE_MANAGE: 'role.manage',
|
||||
OPERATOR_MANAGE: 'operator.manage',
|
||||
|
||||
// 系统
|
||||
ANALYTICS_VIEW: 'analytics.view',
|
||||
SETTING_MANAGE: 'setting.manage',
|
||||
};
|
||||
|
||||
/**
|
||||
* 判断当前权限列表是否包含指定权限码
|
||||
* @param {string[]} permissions 当前用户/操作员权限列表
|
||||
* @param {string} code 权限码
|
||||
* @returns {boolean}
|
||||
*/
|
||||
exports.hasPermission = (permissions, code) => {
|
||||
if (!Array.isArray(permissions) || !code) return false;
|
||||
return permissions.indexOf(code) >= 0;
|
||||
};
|
||||
|
||||
/**
|
||||
* 判断当前权限列表是否包含任意一个权限码
|
||||
* @param {string[]} permissions
|
||||
* @param {string[]} codes
|
||||
* @returns {boolean}
|
||||
*/
|
||||
exports.hasAnyPermission = (permissions, codes) => {
|
||||
if (!Array.isArray(permissions) || !Array.isArray(codes)) return false;
|
||||
return codes.some((c) => permissions.indexOf(c) >= 0);
|
||||
};
|
||||
Reference in New Issue
Block a user