PermissionDefinition
PermissionDefinition
Defines a new Permission with which to control access to GraphQL resolvers & REST controllers. Used in conjunction with the Allow decorator (see example below).
Note: To define CRUD permissions, use the CrudPermissionDefinition.
Example
export const sync = new PermissionDefinition({
name: 'SyncInventory',
description: 'Allows syncing stock levels via Admin API'
});
const config: VendureConfig = {
authOptions: {
customPermissions: [sync],
},
}
@Resolver()
export class ExternalSyncResolver {
@Allow(sync.Permission)
@Mutation()
syncStockLevels() {
// ...
}
}
Signature
class PermissionDefinition {
constructor(config: PermissionDefinitionConfig)
Permission: Permission
}
Members
constructor
(config: PermissionDefinitionConfig) => PermissionDefinition
Permission
Permission
CrudPermissionDefinition
Defines a set of CRUD Permissions for the given name, i.e. a name
of ‘Wishlist’ will create
4 Permissions: ‘CreateWishlist’, ‘ReadWishlist’, ‘UpdateWishlist’ & ‘DeleteWishlist’.
Example
export const wishlist = new CrudPermissionDefinition('Wishlist');
const config: VendureConfig = {
authOptions: {
customPermissions: [wishlist],
},
}
@Resolver()
export class WishlistResolver {
@Allow(wishlist.Create)
@Mutation()
createWishlist() {
// ...
}
}
Signature
class CrudPermissionDefinition extends PermissionDefinition {
constructor(name: string, descriptionFn?: (operation: 'create' | 'read' | 'update' | 'delete') => string)
Create: Permission
Read: Permission
Update: Permission
Delete: Permission
}
Extends
Members
constructor
(name: string, descriptionFn?: (operation: 'create' | 'read' | 'update' | 'delete') => string) => CrudPermissionDefinition
Create
Permission
Read
Permission
Update
Permission
Delete
Permission
PermissionDefinitionConfig
Configures a PermissionDefinition
Signature
interface PermissionDefinitionConfig {
name: string;
description?: string;
assignable?: boolean;
internal?: boolean;
}
Members
name
string
description
string
assignable
boolean
true
true
except in special cases.
internal
boolean
false
Owner
or Public
permissions.