Class: SequelizeGuard
sequelize-guard / SequelizeGuard
Class: SequelizeGuard
Defined in: SequelizeGuard.ts:26
SequelizeGuard - Authorization library for Sequelize
Example
const sequelize = new Sequelize(...);
const guard = new SequelizeGuard(sequelize, options);
// Assign roles
await user.assignRole('admin');
// Create permissions
await guard.allow('admin', ['view', 'edit'], 'blog');
// Check permissions
const canEdit = await user.can('edit blog');Extends
SequelizeGuardBase
Constructors
Constructor
new SequelizeGuard(
sequelize,options):SequelizeGuard
Defined in: SequelizeGuard.ts:53
Creates a SequelizeGuard instance
Parameters
sequelize
Sequelize
A Sequelize instance
options
GuardOptions = {}
Custom configuration options
Returns
SequelizeGuard
Overrides
SequelizeGuardBase.constructor
Properties
sequelize
readonlysequelize:SequelizeWithGuard
Defined in: SequelizeGuard.ts:28
Sequelize instance
ready
readonlyready:Promise<void>
Defined in: SequelizeGuard.ts:46
Promise that resolves when SequelizeGuard is fully initialized Await this to ensure all models are synced and cache is ready
Example
const guard = new SequelizeGuard(sequelize, { sync: true });
await guard.ready;
// Now safe to use guardmigration
staticmigration:object
Defined in: SequelizeGuard.ts:101
Migration utilities
up()
up: (
queryInterface,_Sequelize,options) =>Promise<void>
Run migrations to create Guard tables
Parameters
queryInterface
QueryInterface
_Sequelize
Sequelize
options
GuardOptions = {}
Returns
Promise<void>
down()
down: (
queryInterface,_Sequelize,options) =>Promise<void>
Rollback migrations - drop Guard tables
Parameters
queryInterface
QueryInterface
_Sequelize
Sequelize
options
GuardOptions = {}
Returns
Promise<void>
options
readonlyoptions:GuardInternalOptions
Defined in: core/SequelizeGuardBase.ts:10
Guard configuration options
Inherited from
SequelizeGuardBase.options
Methods
models()
models():
GuardModels
Defined in: SequelizeGuard.ts:94
Get all Guard models
Returns
GuardModels
Array of models used in authorization
Example
const models = guard.models();init()
init():
GuardControl
Defined in: sequelize-guard.types.d.ts:28
Returns
GuardControl
allow()
allow(
role,actions,resources):Promise<AddPermsToRoleResult>
Defined in: sequelize-guard.types.d.ts:29
Parameters
role
string
actions
string | string[]
resources
string | string[]
Returns
Promise<AddPermsToRoleResult>
createPerms()
createPerms(
resources,actions,options?):Promise<GuardPermissionModel[]>
Defined in: sequelize-guard.types.d.ts:36
Parameters
resources
string | string[]
actions
string | string[]
options?
Returns
Promise<GuardPermissionModel[]>
createPermsBulk()
createPermsBulk(
permissions,options?):Promise<GuardPermissionModel[]>
Defined in: sequelize-guard.types.d.ts:41
Parameters
permissions
options?
Returns
Promise<GuardPermissionModel[]>
findPerms()
findPerms(
args?):Promise<GuardPermissionModel[]>
Defined in: sequelize-guard.types.d.ts:45
Parameters
args?
Returns
Promise<GuardPermissionModel[]>
onPermsCreated()
onPermsCreated(
cb):UnsubscribeFn
Defined in: sequelize-guard.types.d.ts:46
Parameters
cb
GuardEventCallback<GuardPermissionModel[]>
Returns
onPermsAddedToRole()
onPermsAddedToRole(
cb):UnsubscribeFn
Defined in: sequelize-guard.types.d.ts:49
Parameters
cb
GuardEventCallback<GuardRoleModel>
Returns
onPermsRemovedFromRole()
onPermsRemovedFromRole(
cb):UnsubscribeFn
Defined in: sequelize-guard.types.d.ts:50
Parameters
cb
GuardEventCallback<GuardRoleModel>
Returns
_sanitizePermsInput()
_sanitizePermsInput(
resources,actions,options?):PermissionData[]
Defined in: sequelize-guard.types.d.ts:53
Parameters
resources
string | string[]
actions
string | string[]
options?
Returns
makeRole()
makeRole(
role):Promise<RoleCreationResult>
Defined in: sequelize-guard.types.d.ts:60
Parameters
role
Returns
Promise<RoleCreationResult>
makeRoles()
makeRoles(
roles,options?):Promise<GuardRoleModel[]>
Defined in: sequelize-guard.types.d.ts:61
Parameters
roles
options?
Returns
Promise<GuardRoleModel[]>
deleteRoles()
deleteRoles(
roles):Promise<number>
Defined in: sequelize-guard.types.d.ts:65
Parameters
roles
string | GuardRoleModel[] | RoleCreationParam[]
Returns
Promise<number>
allRoles()
allRoles():
Promise<GuardRoleModel[]>
Defined in: sequelize-guard.types.d.ts:68
Returns
Promise<GuardRoleModel[]>
getRole()
getRole(
role):Promise<GuardRoleModel|null>
Defined in: sequelize-guard.types.d.ts:69
Parameters
role
string
Returns
Promise<GuardRoleModel | null>
findRoles()
findRoles(
args?):Promise<GuardRoleModel[]>
Defined in: sequelize-guard.types.d.ts:70
Parameters
args?
Returns
Promise<GuardRoleModel[]>
addPermsToRole()
addPermsToRole(
role,actions,resources):Promise<AddPermsToRoleResult>
Defined in: sequelize-guard.types.d.ts:71
Parameters
role
string | GuardRoleModel
actions
string | string[]
resources
string | string[]
Returns
Promise<AddPermsToRoleResult>
rmPermsFromRole()
rmPermsFromRole(
role,actions,resources):Promise<RemovePermsFromRoleResult>
Defined in: sequelize-guard.types.d.ts:76
Parameters
role
string
actions
string | string[]
resources
string | string[]
Returns
Promise<RemovePermsFromRoleResult>
onRolesCreated()
onRolesCreated(
cb):UnsubscribeFn
Defined in: sequelize-guard.types.d.ts:81
Parameters
cb
GuardEventCallback<GuardRoleModel[]>
Returns
onRolesDeleted()
onRolesDeleted(
cb):UnsubscribeFn
Defined in: sequelize-guard.types.d.ts:82
Parameters
cb
GuardEventCallback<GuardRoleModel[]>
Returns
makeUser()
makeUser():
Promise<GuardUserModel>
Defined in: sequelize-guard.types.d.ts:85
Returns
Promise<GuardUserModel>
assignRole()
assignRole(
user,role):Promise<GuardUserModel>
Defined in: sequelize-guard.types.d.ts:86
Parameters
user
GuardUserModel
role
string
Returns
Promise<GuardUserModel>
assignRoles()
assignRoles(
user,roles):Promise<void>
Defined in: sequelize-guard.types.d.ts:87
Parameters
user
GuardUserModel
roles
string[]
Returns
Promise<void>
rmAssignedRoles()
rmAssignedRoles(
user,roles):Promise<void>
Defined in: sequelize-guard.types.d.ts:88
Parameters
user
GuardUserModel
roles
string[]
Returns
Promise<void>
getUserRoles()
getUserRoles(
user):Promise<GuardRoleData[]>
Defined in: sequelize-guard.types.d.ts:89
Parameters
user
GuardUserModel
Returns
Promise<GuardRoleData[]>
userCan()
userCan(
user,permission):Promise<boolean>
Defined in: sequelize-guard.types.d.ts:92
Parameters
user
GuardUserModel
permission
string
Returns
Promise<boolean>
userCant()
userCant(
user,permission):Promise<boolean>
Defined in: sequelize-guard.types.d.ts:93
Parameters
user
GuardUserModel
permission
string
Returns
Promise<boolean>
resolvePermission()
resolvePermission(
givenPermissions,wantedPermission):boolean
Defined in: sequelize-guard.types.d.ts:94
Parameters
givenPermissions
object[]
wantedPermission
string
Returns
boolean
userHasRoles()
userHasRoles(
user,roles):Promise<boolean>
Defined in: sequelize-guard.types.d.ts:100
Parameters
user
GuardUserModel
roles
string[]
Returns
Promise<boolean>
userHasAllRoles()
userHasAllRoles(
user,roles):Promise<boolean>
Defined in: sequelize-guard.types.d.ts:101
Parameters
user
GuardUserModel
roles
string[]
Returns
Promise<boolean>
userIsA()
userIsA(
user,role):Promise<boolean>
Defined in: sequelize-guard.types.d.ts:102
Parameters
user
GuardUserModel
role
string
Returns
Promise<boolean>
resetCache()
resetCache():
GuardCache
Defined in: sequelize-guard.types.d.ts:105
Returns
GuardCache
getCache()
getCache():
Promise<GuardCache>
Defined in: sequelize-guard.types.d.ts:106
Returns
Promise<GuardCache>
resetUserCache()
resetUserCache():
GuardUserCache
Defined in: sequelize-guard.types.d.ts:109
Returns
GuardUserCache
getUserCache()
getUserCache():
GuardUserCache
Defined in: sequelize-guard.types.d.ts:110
Returns
GuardUserCache