1.0.1 • Published 2 years ago
@awesomepermissions/mongoose v1.0.1
Awesome Permissions Mongoose
Currently in progress.
Website: https://www.awesomepermissions.com
Installation
npm install @awesomepermissions/mongooseUsage
const MongooseAwesomePermissions = require("@awesomepermissions/mongoose");
const mongoose = require("mongoose");
const mawp = new MongooseAwesomePermissions('rsCC6jwc74VxH6VScO2SwBDVvLFvS3JjljUZ6oGYzXU7V6Syh4_VSVi6qXQmYNks');
await mongoose.connect('mongodb://127.0.0.1:27017/mongoose-awp-test');
const gameSchema = new mongoose.Schema({ title: String });
const userSchema = new mongoose.Schema({ name: String });
gameSchema.plugin(mawp.loadSchema());
userSchema.plugin(mawp.loadSchema());
const Game = mongoose.model('Game', gameSchema);
const User = mongoose.model('User', userSchema);
const game = new Game({ title: 'Game 1' });
const user = new User({ name: 'User 1' });
await game.save();
await user.save();
await user.addViewPermissionsToItems(game);
const hasPermission = await user.hasViewPermissionToItem(game);
console.log('hasPermission', hasPermission);
const itemsWithPermissions = await user.getItemsWithViewPermission();
console.log('itemsWithPermissions', itemsWithPermissions);
await Game.deleteOne({_id: game._id});
await User.findByIdAndDelete(user._id);New mongoose model functions
- addPermissionsToItems(mongoDocument/s, {actions, ignoreDuplicateErrors});
 - addViewPermissionsToItems(mongoDocument/s, {ignoreDuplicateErrors});
 - addCreatePermissionsToItems(mongoDocument/s, {ignoreDuplicateErrors});
 - addUpdatePermissionsToItems(mongoDocument/s, {ignoreDuplicateErrors});
 - addDeletePermissionsToItems(mongoDocument/s, {ignoreDuplicateErrors});
 - addAdminPermissionsToItems(mongoDocument/s, {ignoreDuplicateErrors});
 - hasPermissionToItem(mongoDocument, {actions, actionsType = "or" || "and"});
 - hasViewPermissionToItem(mongoDocument, {actions, actionsType = "or" || "and"});
 - hasCreatePermissionToItem(mongoDocument);
 - hasUpdatePermissionToItem(mongoDocument);
 - hasDeletePermissionToItem(mongoDocument);
 - hasAdminPermissionToItem(mongoDocument);
 - getItemsWithPermission({itemTypes, actions, actionsType = "or" || "and"});
 - getItemsWithViewPermission({itemTypes});
 - getItemsWithCreatePermission({itemTypes});
 - getItemsWithUpdatePermission({itemTypes});
 - getItemsWithDeletePermission({itemTypes});
 - getItemsWithAdminPermission({itemTypes});
 - getItemPermissions({raw})
 
Contributors
License
MIT