1.0.1 • Published 4 months ago

@awesomepermissions/mongoose v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
4 months ago

Awesome Permissions Mongoose

NPM GitHub contributors npm npm

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

1.0.2

4 months ago

1.0.1

4 months ago