PLCnext API Documentation  22.6.0.43
IAuthorizationProvider.hpp
1 //
3 // Copyright PHOENIX CONTACT Electronics GmbH
4 //
6 #pragma once
7 #include "Arp/System/Core/Arp.h"
8 #include "Arp/System/Um/Commons/Operation.hpp"
9 #include "Arp/System/Um/Commons/SessionInfo.hpp"
10 namespace Arp { namespace System { namespace Um { namespace Commons
11 {
12 
15 
21 {
22 public: // typedefs
23  using Ptr = std::shared_ptr<IAuthorizationProvider>;
24 
25 public: // construction/destruction
27  IAuthorizationProvider(void) = default;
37  virtual ~IAuthorizationProvider(void) = default;
38 
39 public: // abstract operations
40 
50  virtual boolean SessionHasPermissionOnObject(const String& objectName,
51  Operation operation, SessionInfo& session) = 0;
52 
53 };
54 
55 }}}} // end of namespace Arp::System::Um::Commons
Interface to be implemented by an additional authorization provider, which is loaded from a user-prov...
Definition: IAuthorizationProvider.hpp:21
IAuthorizationProvider & operator=(IAuthorizationProvider &&arg)=default
Move-assignment operator.
IAuthorizationProvider(IAuthorizationProvider &&arg)=default
Move constructor.
IAuthorizationProvider(void)=default
Constructs an IAuthorizationProvider instance.
IAuthorizationProvider(const IAuthorizationProvider &arg)=default
Copy constructor.
virtual ~IAuthorizationProvider(void)=default
Destructs this instance and frees all resources.
IAuthorizationProvider & operator=(const IAuthorizationProvider &arg)=default
Copy-assignment operator.
virtual boolean SessionHasPermissionOnObject(const String &objectName, Operation operation, SessionInfo &session)=0
This is called only if the default authorization check on the session returns true,...
This class a SessionInfo instance with given role list
Definition: SessionInfo.hpp:19
@ System
System components used by the System, Device, Plc or Io domains.
Operation
Allows to describe operations which are requested or allowed on objects.
Definition: Operation.hpp:39
Root namespace for the PLCnext API