PLCnext API Documentation 24.6.0.58
|
Namespace for shared classes of the User Manager (UM) More...
Namespaces | |
namespace | Modules |
Namespace for interfaces of modules to be loaded the User Manager (UM) | |
Classes | |
class | IAuthenticationProvider |
class | IAuthorizationProvider |
Interface to be implemented by an additional authorization provider, which is loaded from a user-provided module. Every loaded authorization provider further restricts the default access rights. More... | |
class | SessionInfo |
This class a SessionInfo instance with given role list More... | |
Enumerations | |
enum class | Operation : uint32 { None = 0 , Browse = 1 , ReadRoleOperations = 2 , WriteAttribute = 4 , WriteRoleOperations = 8 , WriteHistorizing = 16 , ReadValue = 32 , WriteValue = 64 , ReadHistory = 128 , InsertHistory = 256 , ModifyHistory = 512 , DeleteHistory = 1024 , ReceiveEvents = 2048 , Call = 4096 , AddReference = 8192 , RemoveReference = 16384 , DeleteNode = 32768 , AddNode = 65536 , Login = 131072 } |
Allows to describe operations which are requested or allowed on objects. More... | |
enum class | UmAuthenticationResult { None = 0 , Success = 1 , Failed = 2 , WrongPassword = 3 , PasswordExpired = 4 , PasswordAboutToExpire = 5 , UserLocked = 6 } |
Functions | |
ARP_CXX_SYMBOL_EXPORT std::ostream & | operator<< (std::ostream &os, Operation value) |
ARP_CXX_SYMBOL_EXPORT std::istream & | operator>> (std::istream &is, Operation &value) |
constexpr Operation | operator& (Operation lhs, Operation rhs) |
constexpr Operation | operator| (Operation lhs, Operation rhs) |
constexpr Operation & | operator&= (Operation &lhs, Operation rhs) |
constexpr Operation & | operator|= (Operation &lhs, Operation rhs) |
constexpr Operation | operator~ (Operation arg) |
ARP_CXX_SYMBOL_EXPORT std::ostream & | operator<< (std::ostream &os, UmAuthenticationResult value) |
ARP_CXX_SYMBOL_EXPORT std::istream & | operator>> (std::istream &is, UmAuthenticationResult &value) |
Namespace for shared classes of the User Manager (UM)
|
strong |
Allows to describe operations which are requested or allowed on objects.
Each flag describes a single operation. For different kinds of objects only specific operations make sense. This means the others are never granted for an object. An instance of this enum either describes all the operations which are possible / allowed on a paritcular object or set of objects or it describes a single operation which shall be tested whether it is allowed. The ability to express all possible operations in a single value is the reason for designing the enum values as flags. It allows to organize permissions efficiently in RAM.
According to the terminology of the core Role Based Access Control mechanism (RBAC) which was chosen for PLCnext technology a permission is a 2-tuple created from an object and an operation:
. The values of this enum are inspired by the upcoming OPC UA standard part for "User Authorization" whos number is not yet known. The draft 1.04.11 as of May 10th, 2016 was used. With that draft the terminology is different. There the term "permission" actually describes just an operation.
Whenever this enum is extended please first check carefully whether an existing name already describes the desired operation. This is the case if for the type of objects the name is not yet used and will likely not be used for anything different in the future than the desired operation. Please be economic with adding new flags because their number is limited.