UNPKG

capstone-accesscontrol

Version:

Role and Attribute based Access Control for Node.js

79 lines (78 loc) 2.81 kB
/** * An interface that defines an access information to be granted or denied. * When you start a method chain with `AccessControl#grant` or `AccessControl#deny` * methods, you're actually building this object which will eventually be * committed to the underlying grants model. * @interface */ interface IAccessInfo { /** * Indicates a single or multiple roles for this access information. * @type {String|Array<String>} */ role?: string | string[]; /** * Indicates a single or multiple target resources for this access * information. * @type {String|Array<String>} */ resource?: string | string[]; /** * Defines the resource attributes which are granted. If denied, this will * default to an empty array. * @type {String|Array<String>} */ attributes?: string | string[]; /** * Defines the type of the operation that is (or not) to be performed on * the resource(s) by the defined role(s). * See {@link ?api=ac#AccessControl.Action|`AccessControl.Action` enumeration} * for possible values. * @type {String} */ action?: string; /** * Defines the possession of the resource(s) for the specified action. * See {@link ?api=ac#AccessControl.Possession|`AccessControl.Possession` enumeration} * for possible values. * @type {String} */ possession?: string; /** * Flag for denied access. * @private * @type {String|Array<String>} */ denied?: boolean; } export { IAccessInfo }; /** * An interface that defines an access information to be granted or denied. * When you start a method chain with `AccessControl#grant` or `AccessControl#deny` * methods, you're actually building this object which will eventually be * committed to the underlying grants model. * @name AccessControl~IAccessInfo * @type {Object} * * @property {String|Array<String>} role * Indicates a single or multiple roles for this access information. * * @property {String|Array<String>} resource * Indicates a single or multiple target resources for this access * information. * * @property {String|Array<String>} attributes * Defines the resource attributes which are granted. If denied, this will * default to an empty array. * * @property {String} action * Defines the type of the operation that is (or not) to be performed on * the resource(s) by the defined role(s). * See {@link ?api=ac#AccessControl.Action|`AccessControl.Action` enumeration} * for possible values. * * @property {String} possession * Defines the possession of the resource(s) for the specified action. * See {@link ?api=ac#AccessControl.Possession|`AccessControl.Possession` enumeration} * for possible values. */