Sequelize Guard

Class: SequelizeGuard

sequelize-guard v6.0.1


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

readonly sequelize: SequelizeWithGuard

Defined in: SequelizeGuard.ts:28

Sequelize instance


ready

readonly ready: 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 guard

migration

static migration: 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

readonly options: 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?

CreatePermsOptions

Returns

Promise<GuardPermissionModel[]>


createPermsBulk()

createPermsBulk(permissions, options?): Promise<GuardPermissionModel[]>

Defined in: sequelize-guard.types.d.ts:41

Parameters

permissions

BulkPermissionInput[]

options?

CreatePermsOptions

Returns

Promise<GuardPermissionModel[]>


findPerms()

findPerms(args?): Promise<GuardPermissionModel[]>

Defined in: sequelize-guard.types.d.ts:45

Parameters

args?

FindPermsArgs

Returns

Promise<GuardPermissionModel[]>


onPermsCreated()

onPermsCreated(cb): UnsubscribeFn

Defined in: sequelize-guard.types.d.ts:46

Parameters

cb

GuardEventCallback<GuardPermissionModel[]>

Returns

UnsubscribeFn


onPermsAddedToRole()

onPermsAddedToRole(cb): UnsubscribeFn

Defined in: sequelize-guard.types.d.ts:49

Parameters

cb

GuardEventCallback<GuardRoleModel>

Returns

UnsubscribeFn


onPermsRemovedFromRole()

onPermsRemovedFromRole(cb): UnsubscribeFn

Defined in: sequelize-guard.types.d.ts:50

Parameters

cb

GuardEventCallback<GuardRoleModel>

Returns

UnsubscribeFn


_sanitizePermsInput()

_sanitizePermsInput(resources, actions, options?): PermissionData[]

Defined in: sequelize-guard.types.d.ts:53

Parameters

resources

string | string[]

actions

string | string[]

options?

CreatePermsOptions

Returns

PermissionData[]


makeRole()

makeRole(role): Promise<RoleCreationResult>

Defined in: sequelize-guard.types.d.ts:60

Parameters

role

RoleCreationParam

Returns

Promise<RoleCreationResult>


makeRoles()

makeRoles(roles, options?): Promise<GuardRoleModel[]>

Defined in: sequelize-guard.types.d.ts:61

Parameters

roles

RoleCreationParam[]

options?

CreateRolesOptions

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?

FindRolesArgs

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

UnsubscribeFn


onRolesDeleted()

onRolesDeleted(cb): UnsubscribeFn

Defined in: sequelize-guard.types.d.ts:82

Parameters

cb

GuardEventCallback<GuardRoleModel[]>

Returns

UnsubscribeFn


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

On this page

Class: SequelizeGuardExampleExtendsConstructorsConstructorParameterssequelizeoptionsReturnsOverridesPropertiessequelizereadyExamplemigrationup()ParametersqueryInterface_SequelizeoptionsReturnsdown()ParametersqueryInterface_SequelizeoptionsReturnsoptionsInherited fromMethodsmodels()ReturnsExampleinit()Returnsallow()ParametersroleactionsresourcesReturnscreatePerms()Parametersresourcesactionsoptions?ReturnscreatePermsBulk()Parameterspermissionsoptions?ReturnsfindPerms()Parametersargs?ReturnsonPermsCreated()ParameterscbReturnsonPermsAddedToRole()ParameterscbReturnsonPermsRemovedFromRole()ParameterscbReturns_sanitizePermsInput()Parametersresourcesactionsoptions?ReturnsmakeRole()ParametersroleReturnsmakeRoles()Parametersrolesoptions?ReturnsdeleteRoles()ParametersrolesReturnsallRoles()ReturnsgetRole()ParametersroleReturnsfindRoles()Parametersargs?ReturnsaddPermsToRole()ParametersroleactionsresourcesReturnsrmPermsFromRole()ParametersroleactionsresourcesReturnsonRolesCreated()ParameterscbReturnsonRolesDeleted()ParameterscbReturnsmakeUser()ReturnsassignRole()ParametersuserroleReturnsassignRoles()ParametersuserrolesReturnsrmAssignedRoles()ParametersuserrolesReturnsgetUserRoles()ParametersuserReturnsuserCan()ParametersuserpermissionReturnsuserCant()ParametersuserpermissionReturnsresolvePermission()ParametersgivenPermissionswantedPermissionReturnsuserHasRoles()ParametersuserrolesReturnsuserHasAllRoles()ParametersuserrolesReturnsuserIsA()ParametersuserroleReturnsresetCache()ReturnsgetCache()ReturnsresetUserCache()ReturnsgetUserCache()Returns