# SYSTEM :: ENTAXY :: CORE :: PERMISSION :: COMPONENT

Схема компонента: **permission**

Поддерживаемые операции:

	- check - проверка права, принимает параметры
		* objectId (long) - идентификатор объекта, для которого проверяются права
		* objectType (String) - тип объекта, данный параметр соответствует проектной терминалогии: system, system-group
		* subjectId (String) - идентификатор предмета применяемого права
		* subjectType (String) - тип предмета
		* action (String, не обязательный)- тип действия, по умолчанию проставляется значение default
		Возвращает в тело запроса boolean
		
	- checkException - проверка права, принимает параметры
		* objectId (long) - идентификатор объекта, для которого проверяются права
		* objectType (String) - тип объекта, данный параметр соответствует проектной терминалогии: system, system-group
		* subjectId (String) - идентификатор предмета применяемого права
		* subjectType (String) - тип предмета
		* action (String, не обязательный)- тип действия, по умолчанию проставляется значение default
		При положительном результате не меняет данных, при отрицательном выбрасывает IllegalAccessException
		
	- checkSystemAccess - проверка доступа системы к системе, type проставляется по умолчанию system,  
		принимает параметры
		* objectId (long) - идентификатор системы, для которой проверяются права
		* subjectId (String) - идентификатор/имя/uuid системы применяемого права
		* action (String, не обязательный)- тип действия, по умолчанию проставляется значение default
		Возвращает в тело запроса boolean, в случае если система subject не найдена возвращается false
		
	- checkSystemAccessException - проверка доступа системы к системе, type проставляется по умолчанию system,  
		принимает параметры
		* objectId (long) - идентификатор системы, для которой проверяются права
		* subjectId (String) - идентификатор/имя/uuid системы применяемого права
		* action (String, не обязательный)- тип действия, по умолчанию проставляется значение default
		При положительном результате не меняет данных, при отрицательном выбрасывает IllegalAccessException
		
	- get - получение объекта permission, принимает параметры
		* permissionId (long) - идентификатор объекта permission
		Возвращает в тело запроса объект Permission
	
	- getByAllParams - получение объекта permission, принимает параметры
		* objectId
		* objectType
		* subjectId
		* subjectType
		* action (не обязательный)
		Возвращает в тело запроса объект Permission
	
	- create - создаёт Permission c заданными параметрами
		* objectId
		* objectType
		* subjectId
		* subjectType
		* action (не обязательный)
		Возвращает в тело запроса объект Permission
		
	- update - обновляет либо создаёт Permission
		* permissionId
		* objectId
		* objectType
		* subjectId
		* subjectType
		* action (не обязательный)
		Возвращает в тело запроса объект Permission
		
	- delete - удаляет permission
		* objectId
		* objectType
		* subjectId
		* subjectType
		* action (не обязательный)
		Возвращает в тело запроса boolean
		
Пример вызова в XML-DSL:

```
<to uri="permission:check?objectId=2&amp;objectType=system&amp;subjectId=4&amp;subjectType=system&amp;action=send" />
```
