Перейти к содержимому

WindUp_Bird

Регистрация: 07 июн 2019
Offline Активность: 17 июн 2019 15:25
*----

Мои сообщения

В теме: Pict весит и не может построить таблицу

11 июня 2019 - 12:20

Пересмотрел полностью таблицу:

 

Solution: F, R, CRUD, CRU, CRD, None
RT: F, R, CRUDE, CRUD, CRU, CR, RUDE, RUE, RUD, None
PT: F, R, CRUDE, CRUD, CRU, CR, RUDE, RUE, RUD, None
AT: F, R, CRUDE, CRUD, CRU, CR, RUDE, RUE, RUD, None
listRT: RUD, RU, R, None
formRT: RUD, RU, R, None
operationRT: RUD, RU, R, None
listPT: RUD, RU, R, None
operationPT: RUD, RU, R, None
listAT: RUD, RU, R, None
formAT: RUD, RU, R, None
operationAT: RUD, RU, R, None
 
IF [RT] = "None" THEN [listRT] = "None";
IF [RT] = "None" THEN [formRT] = "None";
IF [RT] = "None" THEN [operationRT] = "None";
 
IF [PT] = "None" THEN [listPT] = "None";
IF [PT] = "None" THEN [operationPT] = "None";
 
IF [AT] = "None" THEN [listAT] = "None";
IF [AT] = "None" THEN [formAT] = "None";
IF [AT] = "None" THEN [operationAT] = "None";

В теме: Pict весит и не может построить таблицу

11 июня 2019 - 11:29

Я понял кажется, нужно действительно все переделать.


В теме: Pict весит и не может построить таблицу

10 июня 2019 - 12:40

Если не ограничивать модель, то он пытается построить пары "все со всеми".

Условие:

IF [Solution] = "Solution" THEN [TypeRT] = "0" OR [TypePT] = "0" OR [TypeAT] = "0";

фактически означает, что не может быть Solution и RTPTAT. Соответственно, нельзя построить пары RTPTAT со всеми значениями AccessSolution.

 

Про RTPT так сразу не видно, но наверняка, тоже что-то не стыкуется.

 

А вообще, все ли комбинации имеют смысл? Может быть, надо ограничить подбор комбинаций только между определенными колонками?

Оставил вот так, изменений нет

 

Solution: Solution, 0
Container: RT, PT, AT, RTPTAT, RTPT
TypeRT: listRT, formRT, operationRT, listRTformRToperationRT,  0
TypePT: listPT, operationPT, listPToperationPT, 0
TypeAT: listAT, formAT, operationAT, listATformAToperationAT, 0
AccessSolution: F, R, CRUD, CRU, CRD, 0
Access: F, R, CRUDE, CRUD, CRU, CR, RUDE, RUE, RUD, 0
AccessTypeRT: RUD, RU, R, 0
AccessTypePT: RUD, RU, R, 0
AccessTypeAT: RUD, RU, R, 0
 
IF [Solution] = "Solution" THEN [AccessSolution] = "F" OR [AccessSolution] = "R" OR [AccessSolution] = "CRUD" OR [AccessSolution] = "CRU" OR [AccessSolution] = "CRD";
IF [Solution] = "0" THEN [AccessSolution] = "0";
 
IF [Container] = "RT" THEN [TypeRT] = "listRT" OR [TypeRT] = "formRT" OR [TypeRT] = "operationRT" OR [TypeRT] = "listRTformRToperationRT";
IF [Container] = "RT" THEN [TypeAT] = "0";
IF [Container] = "RT" THEN [TypePT] = "0";
IF [Container] = "AT" THEN [TypeAT] = "listAT" OR [TypeAT] = "formAT" OR [TypeAT] = "operationAT" OR [TypeAT] = "listATformAToperationAT";
IF [Container] = "AT" THEN [TypeRT] = "0";
IF [Container] = "AT" THEN [TypePT] = "0";
IF [Container] = "PT" THEN [TypePT] = "listPT" OR [TypePT] = "operationPT" OR [TypePT] = "listPToperationPT";
IF [Container] = "PT" THEN [TypeAT] = "0";
IF [Container] = "PT" THEN [TypeRT] = "0";
IF [Container] = "RTPTAT" THEN [TypeRT] = "listRT" OR [TypeRT] = "formRT" OR [TypeRT] = "operationRT" OR [TypeRT] = "listRTformRToperationRT";
IF [Container] = "RTPTAT" THEN [TypeAT] = "listAT" OR [TypeAT] = "formAT" OR [TypeAT] = "operationAT" OR [TypeAT] = "listATformAToperationAT";
IF [Container] = "RTPTAT" THEN [TypePT] = "listPT" OR [TypePT] = "operationPT" OR [TypePT] = "listPToperationPT";
IF [Container] = "RTPT" THEN [TypeRT] = "listRT" OR [TypeRT] = "formRT" OR [TypeRT] = "operationRT" OR [TypeRT] = "listRTformRToperationRT";
IF [Container] = "RTPT" THEN [TypePT] = "listPT" OR [TypePT] = "operationPT" OR [TypePT] = "listPToperationPT";
IF [Container] = "RTPT" THEN [TypeAT] = "0";
 
IF [TypeRT] = "listRT" THEN [AccessTypeRT] = "RUD" OR [AccessTypeRT] = "RU" OR [AccessTypeRT] = "R";
IF [TypeRT] = "listRT" THEN [AccessTypePT] = "0";
IF [TypeRT] = "listRT" THEN [AccessTypeAT] = "0";
IF [TypeRT] = "formRT" THEN [AccessTypeRT] = "RUD" OR [AccessTypeRT] = "RU" OR [AccessTypeRT] = "R";
IF [TypeRT] = "formRT" THEN [AccessTypePT] = "0";
IF [TypeRT] = "formRT" THEN [AccessTypeAT] = "0";
IF [TypeRT] = "operationRT" THEN [AccessTypeRT] = "RUD" OR [AccessTypeRT] = "RU" OR [AccessTypeRT] = "R";
IF [TypeRT] = "operationRT" THEN [AccessTypePT] = "0";
IF [TypeRT] = "operationRT" THEN [AccessTypeAT] = "0";
IF [TypeRT] = "listRTformRToperationRT" THEN [AccessTypeRT] = "RUD" OR [AccessTypeRT] = "RU" OR [AccessTypeRT] = "R";
IF [TypeRT] = "listRTformRToperationRT" THEN [AccessTypePT] = "0";
IF [TypeRT] = "listRTformRToperationRT" THEN [AccessTypeAT] = "0";
 
IF [TypePT] = "listPT" THEN [AccessTypePT] = "RUD" OR [AccessTypePT] = "RU" OR [AccessTypePT] = "R";
IF [TypePT] = "listPT" THEN [AccessTypeRT] = "0";
IF [TypePT] = "listPT" THEN [AccessTypeAT] = "0";
IF [TypePT] = "operationPT" THEN [AccessTypePT] = "RUD" OR [AccessTypePT] = "RU" OR [AccessTypePT] = "R";
IF [TypePT] = "operationPT" THEN [AccessTypeRT] = "0";
IF [TypePT] = "operationPT" THEN [AccessTypeAT] = "0";
IF [TypePT] = "listPToperationPT" THEN [AccessTypePT] = "RUD" OR [AccessTypePT] = "RU" OR [AccessTypePT] = "R";
IF [TypePT] = "listPToperationPT" THEN [AccessTypeRT] = "0";
IF [TypePT] = "listPToperationPT" THEN [AccessTypeAT] = "0";
 
IF [TypeAT] = "listAT" THEN [AccessTypeAT] = "RUD" OR [AccessTypeAT] = "RU" OR [AccessTypeAT] = "R";
IF [TypeAT] = "listAT" THEN [AccessTypeRT] = "0";
IF [TypeAT] = "listAT" THEN [AccessTypePT] = "0";
IF [TypeAT] = "formAT" THEN [AccessTypeAT] = "RUD" OR [AccessTypeAT] = "RU" OR [AccessTypeAT] = "R";
IF [TypeAT] = "formAT" THEN [AccessTypeRT] = "0";
IF [TypeAT] = "formAT" THEN [AccessTypePT] = "0";
IF [TypeAT] = "operationAT" THEN [AccessTypeAT] = "RUD" OR [AccessTypeAT] = "RU" OR [AccessTypeAT] = "R";
IF [TypeAT] = "operationAT" THEN [AccessTypeRT] = "0";
IF [TypeAT] = "operationAT" THEN [AccessTypePT] = "0";
IF [TypeAT] = "listATformAToperationAT" THEN [AccessTypeAT] = "RUD" OR [AccessTypeAT] = "RU" OR [AccessTypeAT] = "R";
IF [TypeAT] = "listATformAToperationAT" THEN [AccessTypeRT] = "0";
IF [TypeAT] = "listATformAToperationAT" THEN [AccessTypePT] = "0";

В теме: Pict весит и не может построить таблицу

10 июня 2019 - 11:21

Не пойму в чем противоречие здесь? Почему не выводит RTPT, RTPTAT. И как это исправить
 
Solution: Solution, 0
Container: RT, PT, AT, RTPTAT, RTPT
TypeRT: listRT, formRT, operationRT, listRTformRToperationRT,  0
TypePT: listPT, operationPT, listPToperationPT, 0
TypeAT: listAT, formAT, operationAT, listATformAToperationAT, 0
AccessSolution: F, R, CRUD, CRU, CRD, 0
Access: F, R, CRUDE, CRUD, CRU, CR, RUDE, RUE, RUD, 0
AccessTypeRT: RUD, RU, R, 0
AccessTypePT: RUD, RU, R, 0
AccessTypeAT: RUD, RU, R, 0
 
IF [Solution] = "Solution" THEN [AccessSolution] = "F" OR [AccessSolution] = "R" OR [AccessSolution] = "CRUD" OR [AccessSolution] = "CRU" OR [AccessSolution] = "CRD";
IF [Solution] = "0" THEN [AccessSolution] = "0";
 
IF [Solution] = "Solution" THEN [TypeRT] = "0" OR [TypePT] = "0" OR [TypeAT] = "0";
 
IF [Container] = "RT" THEN [TypeRT] = "listRT" OR [TypeRT] = "formRT" OR [TypeRT] = "operationRT" OR [TypeRT] = "listRTformRToperationRT";
IF [Container] = "RT" THEN [TypeAT] = "0";
IF [Container] = "RT" THEN [TypePT] = "0";
IF [Container] = "AT" THEN [TypeAT] = "listAT" OR [TypeAT] = "formAT" OR [TypeAT] = "operationAT" OR [TypeAT] = "listATformAToperationAT";
IF [Container] = "AT" THEN [TypeRT] = "0";
IF [Container] = "AT" THEN [TypePT] = "0";
IF [Container] = "PT" THEN [TypePT] = "listPT" OR [TypePT] = "operationPT" OR [TypePT] = "listPToperationPT";
IF [Container] = "PT" THEN [TypeAT] = "0";
IF [Container] = "PT" THEN [TypeRT] = "0";
IF [Container] = "RTPTAT" THEN [TypeRT] = "listRT" OR [TypeRT] = "formRT" OR [TypeRT] = "operationRT" OR [TypeRT] = "listRTformRToperationRT";
IF [Container] = "RTPTAT" THEN [TypeAT] = "listAT" OR [TypeAT] = "formAT" OR [TypeAT] = "operationAT" OR [TypeAT] = "listATformAToperationAT";
IF [Container] = "RTPTAT" THEN [TypePT] = "listPT" OR [TypePT] = "operationPT" OR [TypePT] = "listPToperationPT";
IF [Container] = "RTPT" THEN [TypeRT] = "listRT" OR [TypeRT] = "formRT" OR [TypeRT] = "operationRT" OR [TypeRT] = "listRTformRToperationRT";
IF [Container] = "RTPT" THEN [TypePT] = "listPT" OR [TypePT] = "operationPT" OR [TypePT] = "listPToperationPT";
IF [Container] = "RTPT" THEN [TypeAT] = "0";
 
IF [TypeRT] = "listRT" THEN [AccessTypeRT] = "RUD" OR [AccessTypeRT] = "RU" OR [AccessTypeRT] = "R";
IF [TypeRT] = "listRT" THEN [AccessTypePT] = "0";
IF [TypeRT] = "listRT" THEN [AccessTypeAT] = "0";
IF [TypeRT] = "formRT" THEN [AccessTypeRT] = "RUD" OR [AccessTypeRT] = "RU" OR [AccessTypeRT] = "R";
IF [TypeRT] = "formRT" THEN [AccessTypePT] = "0";
IF [TypeRT] = "formRT" THEN [AccessTypeAT] = "0";
IF [TypeRT] = "operationRT" THEN [AccessTypeRT] = "RUD" OR [AccessTypeRT] = "RU" OR [AccessTypeRT] = "R";
IF [TypeRT] = "operationRT" THEN [AccessTypePT] = "0";
IF [TypeRT] = "operationRT" THEN [AccessTypeAT] = "0";
IF [TypeRT] = "listRTformRToperationRT" THEN [AccessTypeRT] = "RUD" OR [AccessTypeRT] = "RU" OR [AccessTypeRT] = "R";
IF [TypeRT] = "listRTformRToperationRT" THEN [AccessTypePT] = "0";
IF [TypeRT] = "listRTformRToperationRT" THEN [AccessTypeAT] = "0";
 
IF [TypePT] = "listPT" THEN [AccessTypePT] = "RUD" OR [AccessTypePT] = "RU" OR [AccessTypePT] = "R";
IF [TypePT] = "listPT" THEN [AccessTypeRT] = "0";
IF [TypePT] = "listPT" THEN [AccessTypeAT] = "0";
IF [TypePT] = "operationPT" THEN [AccessTypePT] = "RUD" OR [AccessTypePT] = "RU" OR [AccessTypePT] = "R";
IF [TypePT] = "operationPT" THEN [AccessTypeRT] = "0";
IF [TypePT] = "operationPT" THEN [AccessTypeAT] = "0";
IF [TypePT] = "listPToperationPT" THEN [AccessTypePT] = "RUD" OR [AccessTypePT] = "RU" OR [AccessTypePT] = "R";
IF [TypePT] = "listPToperationPT" THEN [AccessTypeRT] = "0";
IF [TypePT] = "listPToperationPT" THEN [AccessTypeAT] = "0";
 
IF [TypeAT] = "listAT" THEN [AccessTypeAT] = "RUD" OR [AccessTypeAT] = "RU" OR [AccessTypeAT] = "R";
IF [TypeAT] = "listAT" THEN [AccessTypeRT] = "0";
IF [TypeAT] = "listAT" THEN [AccessTypePT] = "0";
IF [TypeAT] = "formAT" THEN [AccessTypeAT] = "RUD" OR [AccessTypeAT] = "RU" OR [AccessTypeAT] = "R";
IF [TypeAT] = "formAT" THEN [AccessTypeRT] = "0";
IF [TypeAT] = "formAT" THEN [AccessTypePT] = "0";
IF [TypeAT] = "operationAT" THEN [AccessTypeAT] = "RUD" OR [AccessTypeAT] = "RU" OR [AccessTypeAT] = "R";
IF [TypeAT] = "operationAT" THEN [AccessTypeRT] = "0";
IF [TypeAT] = "operationAT" THEN [AccessTypePT] = "0";
IF [TypeAT] = "listATformAToperationAT" THEN [AccessTypeAT] = "RUD" OR [AccessTypeAT] = "RU" OR [AccessTypeAT] = "R";
IF [TypeAT] = "listATformAToperationAT" THEN [AccessTypeRT] = "0";
IF [TypeAT] = "listATformAToperationAT" THEN [AccessTypePT] = "0";

В теме: Pict весит и не может построить таблицу

09 июня 2019 - 20:51

 

 

 

Комбинации настроек ролей очень обширные. Я итак исключил редкие кейсы, типа создания объекта без чтения на него.

в Джире например тоже куча настроек ролей. Но для их тестирования никакой пэйрвайз был бы не нужен

 

отдельно проверяется кто может создать тикет, отдельно проверяется кто может редактировать тикет

 

без всяких огромных монстров-таблиц

 

комбинации нужны когда сущности связаны, например принтер и операционная система

 

но когда сущности не связаны - тогда и таблицы не нужны. одна роль должна работать совершенно независимо от других ролей

 

У нас много клиентов, которые придумывают очередные упоротые кейсы. У нас что-то типа джиры, только свое с BPMN