| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- const Schema = require('mongoose').Schema;
- let grantSchema = new Schema({
- resource: { type: String, require: true, desc: '资源' },
- action: { type: String, enum: ['create', 'read', 'update', 'delete'], require: true, desc: '操作' },
- possession: { type: String, enum: ['own', 'any'], required: true, desc: '所属' },
- attributes: { type: String, required: 'true', default: '*', desc: '字段' },
- })
- let roleSchema = new Schema({
- name: { type: String, required: true, desc: '角色名称', searchable: true, },
- user: { type: Schema.Types.ObjectId, ref: 'User', desc: '创建者', },
- permissions: { type: [String], required: true, default: [], desc: '权限', listing: false, },
- time: { type: Date, default: Date.now, desc: '创建时间', },
- grants: { type: [grantSchema], default: [], desc: '授权', }
- }, {
- toObject: {
- transform: roleTransform,
- },
- toJSON: {
- transform: roleTransform,
- }
- });
- function roleTransform(doc, ret) {
- /*
- if (doc.grants) {
- doc.grants = doc.grants || [];
- ret.grants = doc.grants.map(g => auth.base.translate(g));
- ret.grants = ret.grants.sort((a, b) => {
- if (a < b) return 1;
- if (a > b) return -1;
- return 0;
- })
- }
- */
- }
- module.exports = roleSchema;
|