|
| Acl () |
|
virtual | ~Acl () |
| Destructor. More...
|
|
bool | categoriesReadSet () |
|
bool | categoriesWriteSet () |
|
bool | rolesReadSet () |
|
bool | rolesWriteSet () |
|
bool | devicesReadSet () |
|
bool | devicesWriteSet () |
|
bool | roomsReadSet () |
|
bool | roomsWriteSet () |
|
bool | buildingPartsReadSet () |
|
bool | buildingPartsWriteSet () |
|
bool | variablesReadSet () |
|
bool | variablesWriteSet () |
|
PVariable | toVariable () |
|
void | fromVariable (PVariable serializedData) |
| Converts a Variable structure to an ACL. More...
|
|
AclResult | checkServiceAccess (std::string &serviceName) |
|
AclResult | checkCategoriesReadAccess (std::set< uint64_t > &categories) |
|
AclResult | checkCategoriesWriteAccess (std::set< uint64_t > &categories) |
|
AclResult | checkCategoryReadAccess (uint64_t category) |
|
AclResult | checkCategoryWriteAccess (uint64_t category) |
|
AclResult | checkRolesReadAccess (std::set< uint64_t > &roles) |
|
AclResult | checkRolesWriteAccess (std::set< uint64_t > &roles) |
|
AclResult | checkRoleReadAccess (uint64_t role) |
|
AclResult | checkRoleWriteAccess (uint64_t role) |
|
AclResult | checkDeviceReadAccess (std::shared_ptr< Systems::Peer > peer) |
|
AclResult | checkDeviceWriteAccess (std::shared_ptr< Systems::Peer > peer) |
|
AclResult | checkEventServerMethodAccess (std::string &methodName) |
|
AclResult | checkMethodAccess (std::string &methodName) |
|
AclResult | checkMethodAndCategoryReadAccess (std::string &methodName, uint64_t categoryId) |
|
AclResult | checkMethodAndCategoryWriteAccess (std::string &methodName, uint64_t categoryId) |
|
AclResult | checkMethodAndRoleReadAccess (std::string &methodName, uint64_t roleId) |
|
AclResult | checkMethodAndRoleWriteAccess (std::string &methodName, uint64_t roleId) |
|
AclResult | checkMethodAndRoomReadAccess (std::string &methodName, uint64_t roomId) |
|
AclResult | checkMethodAndRoomWriteAccess (std::string &methodName, uint64_t roomId) |
|
AclResult | checkMethodAndBuildingPartReadAccess (std::string &methodName, uint64_t buildingPartId) |
|
AclResult | checkMethodAndBuildingPartWriteAccess (std::string &methodName, uint64_t buildingPartId) |
|
AclResult | checkMethodAndDeviceWriteAccess (std::string &methodName, uint64_t peerId) |
|
AclResult | checkNodeBlueVariableReadAccess (const std::string &nodeId, int32_t input) |
|
AclResult | checkNodeBlueVariableWriteAccess (const std::string &nodeId, int32_t input) |
|
AclResult | checkRoomReadAccess (uint64_t roomId) |
|
AclResult | checkRoomWriteAccess (uint64_t roomId) |
|
AclResult | checkBuildingPartReadAccess (uint64_t buildingPartId) |
|
AclResult | checkBuildingPartWriteAccess (uint64_t buildingPartId) |
|
AclResult | checkSystemVariableReadAccess (Database::PSystemVariable systemVariable) |
|
AclResult | checkSystemVariableWriteAccess (Database::PSystemVariable systemVariable) |
|
AclResult | checkVariableReadAccess (std::shared_ptr< Systems::Peer > peer, int32_t channel, const std::string &variableName) |
|
AclResult | checkVariableWriteAccess (std::shared_ptr< Systems::Peer > peer, int32_t channel, const std::string &variableName) |
|
std::string | toString (int32_t indentation=0) |
|
This class is used to store ACL rules.
The elements are checked in the following order. Unset elements are skipped. If a field is set to "no access", access is denied immediately without checking further rules. When set to "access", the rule checking continues.
- Variables
- Devices
- Rooms
- Building parts
- Categories
- Roles
- Methods
- Event Server Methods
Security needs to be applied here:
RpcServer:
- Most RPC methods are defined in file RPCMethods.cpp
- Variable with all methods from RPCMethods.cpp: _rpcMethods
- If not found in map => IpcServer::callRpcMethod()
IpcServer:
- All methods on clients are called within callRpcMethod()
- Server methods are defined in _rpcMethods and _localRpcMethods
- Variable with all methods from RPCMethods.cpp: _rpcMethods
- Has broadcast methods
- Has it's own RPC methods
NodeBlueServer:
- Server methods are defined in _rpcMethods and _localRpcMethods
- Variable with all methods from RPCMethods.cpp: _rpcMethods
- If not found in above maps => IpcServer::callRpcMethod()
- Has broadcast methods
- Has it's own RPC methods
ScriptEngineServer:
- Server methods are defined in _rpcMethods and _localRpcMethods
- Variable with all methods from RPCMethods.cpp: _rpcMethods
- If not found in above maps => IpcServer::callRpcMethod()
- Has broadcast methods
- Has it's own RPC methods
RPC::Client
Mqtt