...

Заполнение в скрипте переменной типа роль

Тема в разделе "Скрипты и разработка", создана пользователем novopashin, 1 фев 2023.

  1. novopashin

    novopashin Новичок

    Поскольку у Роли пока нет своего конструктора - создадим свой класс
    Код:
    
    class MyRole {
        
    group:UserGroupItem|UserItem[]| OrganisationStructureItem
        type
    : 'group' | 'user' | 'orgstruct'
        
    code: string
        constructor 
    (group:UserGroupItem|UserItem[]|OrganisationStructureItem,type:'group' | 'user' | 'orgstruct',code:string){
            
    this.code = code;
            
    this.group = group;
            
    this.type = type;
        }
       
    getUsers(): Promise<UserItem[]> {
            if(
    this.type == "group"){
                return (<
    UserGroupItem> this.group).users();
            }
            else if (
    this.type == "orgstruct") {
                return 
    System.users.search().where(i => i.osIds.has((<OrganisationStructureItem> this.group))).size(10000).all()
            }
            else return new 
    Promise<UserItem[]>(()=><UserItem[]>this.group)
        }
        
    json():any {
            return{
                 
    code:this.code,
                
    type:this.type
            
    }
        }
    }
    Конструктор принимает либо Группу пользователей, либо пользователя(вернее массив из одного пользователя), либо элемент оргструктуры. Тип соответственно будет либо 'group', либо 'user' , либо 'orgstruct'. У Роли должен быть реализован метод getUsers и json. Второй просто возвращает код и тип. Первый же должен возвращать Промис, который после того как разрешится должен вернуть массив пользователей. В зависимости от type объекта реализовываем функцию getUsers

    Вложения:

    Последнее редактирование: 1 фев 2023