Action class | +System identifier of action class sc-node | +Abbreviation | +Logic if user has permissions to execute actions of the specified class | +
---|---|---|---|
reading from sc-memory action | +action_read_from_sc_memory |
+ R | +The user can execute all methods that read sc-constructions from knowledge base. | +
generating in sc-memory action | +action_generate_in_sc_memory |
+ G | +The user can execute all methods that generate sc-constructions in knowledge base. | +
erasing from sc-memory action | +action_erase_from_sc_memory |
+ E | +The user can execute all methods that erase sc-constructions from knowledge base. | +
reading permissions from sc-memory action | +action_read_permissions_from_sc_memory |
+ RP | +The user can read permissions of other users from knowledge base. | +
generating permissions in sc-memory action | +action_generate_permissions_in_sc_memory |
+ GP | +The user can generate permissions for other users in knowledge base. | +
erasing permissions from sc-memory action | +action_erase_permissions_from_sc_memory |
+ EP | +The user can erase permissions of other users from knowledge base. | +
ScMemoryContext API method | +R | +G | +E | +Logic if user hasn't required permissions to perform method | +
---|---|---|---|---|
GenerateNode, GenerateLink | +- | +- | +- | +These methods don't require any permissions for users. | +
GenerateConnector | +- | ++ | +- | +If user hasn't permissions to add sc-connector from specified source sc-element or to specified target sc-element, then method will throw utils::ExceptionInvalidState . |
+
IsElement | ++ | +- | +- | +If user hasn't permissions to read specified sc-element, then method will throw utils::ExceptionInvalidState . |
+
GetElementType | ++ | +- | +- | +If user hasn't permissions to read specified sc-element, then method will throw utils::ExceptionInvalidState . |
+
SetElementSubtype | +- | ++ | +- | +If user hasn't permissions to update specified sc-element sc-type, then method will throw utils::ExceptionInvalidState . |
+
GetConnectorIncidentElements, GetArcSourceElement, GetArcTargetElement | ++ | +- | +- | +If user hasn't permissions to read specified sc-connector or its incident sc-elements, then method will throw utils::ExceptionInvalidState . |
+
CreateIterator3, CreateIterator5, ForEach, ForEach | ++ | +- | +- | +If user hasn't permissions to read some sc-connectors from or to specified sc-element, then method won't return these sc-connectors to user: method ScIterator::Next will skip these sc-connectors. If user has permissions to read sc-connector from or to specified sc-element, but he hasn't permissions to read other incident sc-elements, then method ScIterator::Get will throw utils::ExceptionInvalidState if user tries to get such permitted sc-element by index in found sc-construction. Methods ForEach will return empty sc-address in such case. |
+
EraseElement | +- | +- | ++ | +If user hasn't permissions to erase specified sc-element, then method will return false . |
+
SetLinkContent | +- | ++ | ++ | +If user hasn't permissions to change (erase and write) content for specified sc-link, then method will throw utils::ExceptionInvalidState . |
+
GetLinkContent | ++ | +- | +- | +If user hasn't permissions to read specified sc-link by specified content, then method will throw utils::ExceptionInvalidState . |
+
SearchLinksByContent, SearchLinksByContentSubstring | ++ | +- | +- | +If user hasn't permissions to read some sc-links that have specified content, then method won't return these sc-links. | +
Permissions class | +System identifier of relation sc-node for concrete user | +Description | +
---|---|---|
Global permissions | +nrel_user_action_class |
+ Binary relation between concrete user and action class | +
Local permissions | +nrel_user_action_class_within_sc_structure |
+ Ternary relation between concrete user and action class with sc-structure where actions of specified class can be performed by this user | +
Permissions class | +System identifier of relation sc-node for users set | +Description | +
---|---|---|
Global permissions | +nrel_users_set_action_class |
+ Binary relation between users set and action class | +
Local permissions | +nrel_users_set_action_class_within_sc_structure |
+ Ternary relation between users set and action class with sc-structure where actions of specified class can be performed by this one of users | +
Permissions | +SCg-code example | +SCs-code example | +
---|---|---|
User has global read permissions | +
+
+
+ |
+ |
User has local read permissions | +
+
+
+ |
+ |
Each user in users set has global read permissions | +
+
+
+ |
+ |
Each user in users set has local read permissions | +
+
+
+ |
+ |
User hasn't global read permissions | +
+
+
+ |
+ |
User hasn't local read permissions | +
+
+
+ |
+ |
Each user in users set hasn't global read permissions | +
+
+
+ |
+ |
Each user in users set hasn't local read permissions | +
+
+
+ |
+
Case | +Criterion 1. Does specified sc-construction belong to any permitted sc-structure? | +Criterion 2. Does user have global permissions? | +Criterion 3. Does user have local permissions? | +Result. Can user handle the specified sc-construction? | +
---|---|---|---|---|
1 | +No, it doesn't. | +No, he doesn't. | +No, he doesn't. | +No, he doesn't. | +
2 | +No, it doesn't. | +Yes. He has global write permissions. | +No, he doesn't. | +Yes. He can only add sc-elements into the specified sc-construction, because he has global write permissions. | +
3 | +Yes. The sc-construction is in a sc-structure that indicates that certain permissions are required. Some users have permissions to this sc-structure. | +No, he doesn't. | +No, he doesn't. | +No, he doesn't. | +
4 | +Yes. The sc-construction is in a sc-structure that indicates that certain permissions are required. Some users have permissions to this sc-structure. | +Yes. He has global read permissions. | +No, he doesn't. | +No, he doesn't. The user hasn't local permissions for the specified sc-structure. But he can read any sc-constructions in knowledge base, which doesn't have permitted sc-structures. | +
5 | +Yes. The sc-construction is in a sc-structure that indicates that certain permissions are required. Some users have permissions to this sc-structure. | +No, he doesn't. | +Yes. He has local write permissions for the specified sc-structure. | +Yes. The user can only add sc-elements into the specified sc-structure. But he can't handle any sc-constructions in knowledge base other than the given one. | +
6 | +Yes. The sc-construction is in a sc-structure that indicates that certain permissions are required. Some users have permissions to this sc-structure. | +Yes. He has global write permissions. | +Yes. He has local write permissions for the specified sc-structure. | +Yes. The user can add sc-elements into the specified sc-structure. And he can add sc-element into any sc-constructions in knowledge base other than the given one. | +