Class AccessControlList

Inheritance Relationships

Base Type

Class Documentation

class AccessControlList : public axr::sdk::EntityBase

The access control list provides a generic interface for the storage of user and roles permissions. Each ACL object represents the permission set for a single entity within the system. The entity is identified generically by its universally unique identifier (uuid). Each entry in the ACL records the permissions available to a particular user or role.

Each permission can be one of the following actions:

  • Create - The user or role can create a new record or object.

  • Read - The user or role can read the record or object.

  • Update - The user or role can modify existing records or objects.

  • Delete - The user or role can delete existing records or objects.

  • Special - The user or role has special privileges to edit the ACL permissions.

  • Full - The user or role has total control over the record or object and supersedes any of the above.

For each of the above actions the user or role will be granted either an allow permission or a deny permission. If an allow is granted, the user or role has permission to perform that action. If a deny is set, then the user or role is denied that action. If no explicit allow or deny is set then the user or role will inherit the permission from a parent role or ACL.

ACLs can be chained via single inheritance through the specification of the parentUid. This allows the ability to create complex trees of permissions that can easily inherit control schemes to make the definition of permissions easier.

Author

Jean-Philippe Steinmetz info@acceleratxr.com

Public Functions

inline AccessControlList()
inline AccessControlList(const AccessControlList &value)
inline AccessControlList(AccessControlList &&value)
inline virtual ~AccessControlList()
inline virtual AccessControlList &SetProperties(const std::map<utility::string_t, Variant> &value) override

Sets the object’s underlying map of stored values.

inline virtual AccessControlList &SetProperties(std::map<utility::string_t, Variant> &&value) override

Sets the underlying map of stored values for the object.

inline virtual AccessControlList &SetProperty(const utility::char_t *name, const Variant &value) override

Sets the property of the given name to the provided value.

inline virtual AccessControlList &SetProperty(const utility::string_t &name, const Variant &value) override

Sets the property of the given name to the provided value.

inline virtual AccessControlList &SetRemoteUrl(const utility::string_t &url) override

Returns the URL of the remote server endpoint where the object is managed.

inline virtual AccessControlList &SetUid(const utility::string_t &value) override

Sets the value of the Uid property.

Parameters

value – The value to set.

inline virtual AccessControlList &SetDateCreated(const datetime &value) override

Sets the value of the DateCreated property.

Parameters

value – The value to set.

inline virtual AccessControlList &SetDateModified(const datetime &value) override

Sets the value of the DateModified property.

Parameters

value – The value to set.

inline virtual AccessControlList &SetVersion(const uint64_t value) override

Sets the value of the Version property.

Parameters

value – The value to set.

virtual void Validate() override
std::shared_ptr<AccessControlList> GetParent() const

The parent access control list that this instance inherits permissions from.

utility::string_t GetParentUid() const

The universally unique identifier of the parent AccessControlList that this object will inherit permissions from.

AccessControlList &SetParentUid(const utility::string_t &value)

The universally unique identifier of the parent AccessControlList that this object will inherit permissions from.

Parameters

value – The value to set.

std::vector<std::shared_ptr<ACLRecord>> GetRecords() const

The list of all permission records associated with this access control list.

AccessControlList &SetRecords(const std::vector<std::shared_ptr<ACLRecord>> value)

The list of all permission records associated with this access control list.

Parameters

value – The value to set.

Public Static Functions

static inline const utility::char_t *ClassName()

Returns the fully qualified name of the class.