18.04.2003, 13:43 | #1 |
NavAx
|
Роли в Аттейне
Господа, подскажите, как в коде выяснить, к какой роли относится данный юзер?
Т.е. иногда у меня возникает надобность выполнять некий код только в случае, если юзер - девелопер. Если бы, например, все девелоперы сидели под одним логином sa, то все очевидно - просто накатать IF USERID = 'sa' THEN ...... Но ситуация немного другая : есть роль super, под этой ролью создано несколько логинов, скажем, admin, developer, lipless_beaver etc. Дык вот как можно аналогичным образом в коде проверить, принадлежит ли юзер к данной группе? (вариант IF USERID IN [developer, admin, lipless_beaver] THEN... не предлагать, в дальнейшем могут появиться новые логины.] |
|
18.04.2003, 13:52 | #2 |
Участник
|
делается сие шаманство следующим образом:
в системе есть замечательная таблица Member Of - она как раз и содержит назначения всех ролей. то бишь можешь сделать так: //предварительно объяви переменную MemberOf (Record Member Of) MemberOf.SETRANGE("User ID", UPPERCASE(USERID)); а теперь просто IF MemberOf.FIND('-') THEN REPEAT //цикл по всем назначенным залогиневшемуся юзверю ролям // естественно в качестве userid можешь взять любой логин UNTIL MemberOf.NEXT = 0; но можешь еще поставить фильтр типа MemberOf.SETRANGE("Role ID", Text003); и уже потом сделать IF MemberOf.FIND('-') THEN //значит принадлежит |
|
18.04.2003, 16:27 | #3 |
NavAx
|
Угу, уже и сам нашел, ID 2000000003 =)
|
|