1.0.1 • Published 4 months ago
@awesomepermissions/mongoose v1.0.1
Awesome Permissions Mongoose
Currently in progress.
Website: https://www.awesomepermissions.com
Installation
npm install @awesomepermissions/mongoose
Usage
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