xia_engine.acl.AclItem
- class xia_engine.acl.AclItem(**kwargs)
Bases:
EmbeddedDocumentAccess Control List Item
- obj
object. Should keep hierarchy with “/” like Obj_A/sub_B/sub_C/…
- Type
str
- act
action. Like new, read, write, delete, drop or action/action_name
- Type
str
Notes
obj accept variable embraced by {}. Like Obj_A/{user_name}. user_name is filled during the run time.
- __init__(**kwargs)
Methods
__init__(**kwargs)acl_match(obj, act)act_compact(act_list)act_match(key1, key2)Comparison for act, possible to have several acts seperated by ','
act_subtract(key1, key2)action(action_name[, acl, payload])Doing an action of a document
collection_action(action_name[, acl, payload])Doing a collection level action
from_db([_engine])Transform database data to internal data
from_display(**kwargs)Transform Display data to internal data
Get action supported by this document
get_display_data([lazy, catalog, show_hidden])Get Display data (visualized form of data)
get_filled_acl_item(profile)get_meta_data()Get Raw data (materialized form of data)
Get Runtime data (calculated from raw data when runtime is activated)
Get a sample document data
key_match(key1, key2)Customized match algo, * can be @middle
key_subtract(key1, key2)How to handler the double limitations:
to_db(*[, catalog, ignore_unknown, engine])Translate the runtime data into raw data (materialized form of data)
validate()Validate if all of the component of document follows the predefined rules
Attributes
ITEM_FILL_LIMITOPERATORS- classmethod act_match(key1: str, key2: str) bool
Comparison for act, possible to have several acts seperated by ‘,’
- Parameters
key1 – key to compare
key2 – item from acl content
- Returns
object: True if match else False
- Return type
object
- action(action_name: str, acl=None, payload: Optional[dict] = None)
Doing an action of a document
- Parameters
action_name – The action name
acl – Access Control List
payload – Parameters of action
- classmethod collection_action(action_name, acl=None, payload: Optional[dict] = None)
Doing a collection level action
- Parameters
action_name – The action name
acl – Access Control List
payload – Parameters of action
- classmethod from_db(_engine: Optional[Type[BaseEngine]] = None, **kwargs)
Transform database data to internal data
- Parameters
_engine – engine to be used for convert data
**kwargs (object) – python dict got from system
- Returns
python dict object
- classmethod from_display(**kwargs)
Transform Display data to internal data
- Parameters
**kwargs (object) – display object got from front end
- Returns
python dict object
- classmethod get_actions()
Get action supported by this document
- Returns
Base]
- Return type
dictionary[str
- get_display_data(lazy: bool = True, catalog: Optional[dict] = None, show_hidden: bool = False)
Get Display data (visualized form of data)
- Parameters
lazy (bool) – Left the fields as is if they are not explicitly loaded
catalog (dict) – The catalog of display field in the following format: * {field1: false, field2: false, field3: {sub-field1: true, sub-field2: true}} * field1, field2 is the top-level normal field * field3 is an embedded field/reference field/external field while sub-field1, sub-field2 is its fields * True or false will override the lazy setting, none means using lazy settings
show_hidden (bool) – If hidden value should be shown or not
- Returns
python dict object
Notes
We will return the detail form if it is possible
- get_raw_data()
Get Raw data (materialized form of data)
- Returns
python dict object
- get_runtime_data()
Get Runtime data (calculated from raw data when runtime is activated)
- Returns
python dict object
- classmethod get_sample()
Get a sample document data
- classmethod key_match(key1: str, key2: str) bool
Customized match algo, * can be @middle
- Parameters
key1 – key to compare
key2 – item from acl content
- Returns
True if match else False
- Return type
object
- classmethod key_subtract(key1: str, key2: str)
How to handler the double limitations:
‘*’ - any = any
text - any = key_match(text, any) = text or None in the other case
‘a*b’ - ‘x*y’ = biggest a and x + ‘*’ + biggest b and y
- Parameters
key1 – key to compare
key2 – item from acl content
- Returns
True if match else False
- Return type
object
- to_db(*, catalog: Optional[dict] = None, ignore_unknown: bool = False, engine: Optional[Type[BaseEngine]] = None)
Translate the runtime data into raw data (materialized form of data)
- Parameters
catalog (dict) – Data catalog to be parsed
ignore_unknown (bool) – When a field is not defined in the document, should we send it back to the database
engine – engine to be used for db data conversion
- Returns
python dict object
- validate()
Validate if all of the component of document follows the predefined rules
- Returns
Always None. No exception raised means the validation passed