User Management (command line)
User management
Управление пользователями
Для управления пользователями используется команда user-provider инструмента Svacer с необходимыми подкомандами. Также требуется аутентификация на сервере для выполнения запросов и необходимые права доступа.
Создание пользователя
svacer user-provider add --login <login> --user_password <pwd> --firstname <firstname> --lastname <lastname> --middlename <middlename> --email <email> --change-password <true|false> (используйте для смены пароля при первой авторизации по умолчанию false) --auth-type <0|1|2> (тип аутентификации, 0 - Svacer, 1 - LDAP, 2 - OIDC_OAUTH, по умолчанию 0) --role <role id or name> (для установки нескольких ролей использовать флаг несколько раз) --review-master <true|false> (активировать атрибут Review Master, по умолчанию false)
Пример:
svacer user-provider add --user admin --password admin --login example --user_password Example123 --review-master true 2024-12-02T13:19:41.366+0300 info Log file location /tmp/svacer-3054598677.log 2024-12-02T13:19:41.366+0300 info Quering server configuration from http://localhost:8080/api/public/server/info 2024-12-02T13:19:41.375+0300 info Server version: [devel] 2024-12-02T13:19:41.380+0300 info Logged by user admin 2024-12-02T13:19:41.401+0300 info User added successfully: ID: e45f2ae5-4e5b-4308-a2f5-0f3461626c18 Password: Example123
Удаление пользователя
svacer user-provider delete --username <id or name>
Пример:
svacer user-provider delete --user admin --password admin --username example321 2024-12-02T13:27:38.731+0300 info Log file location /tmp/svacer-2241911697.log 2024-12-02T13:27:38.731+0300 info Quering server configuration from http://localhost:8080/api/public/server/info 2024-12-02T13:27:38.739+0300 info Server version: [devel] 2024-12-02T13:27:38.759+0300 info User deleted successfully
Получение списка пользователей
svacer user-provider get --with-roles <true|false> (к выводу добавляются роли пользователя) --filter <all|active|archived> (используйте для фильтрации списка пользователей)
Пример:
svacer user-provider get --user admin --password admin --with-roles true 2024-12-02T13:21:30.392+0300 info Log file location /tmp/svacer-3616394399.log 2024-12-02T13:21:30.393+0300 info Quering server configuration from http://localhost:8080/api/public/server/info 2024-12-02T13:21:30.395+0300 info Server version: [devel] [ { "ID": "00000000-0000-0000-0000-000000000000", "firstName": "admin", "lastName": "admin", "login": "admin", "roles": [ { "id": "00000000-0000-0000-0000-000000000000", "name": "admin", ... ]
Обновление пользователя
svacer user-provider update --username <id|name> (имя или идентификатор пользователя для обновления (по умолчанию обновляется текущий пользователь, указанный в авторизации) --login <login> --user_password <pwd> --firstname <firstname> --middlename <middlename> --email <email> --add-role <role id or name> (добавляет роль с переданным id или именем) --delete-role <role id or name> (удаляет роль с переданным id или именем) --review-master <true|false> (активировать атрибут Review Master)
Пример:
svacer user-provider update --user admin --password admin --username example --login example321 2024-12-02T13:24:43.052+0300 info Log file location /tmp/svacer-3041843149.log 2024-12-02T13:24:43.052+0300 info Quering server configuration from http://localhost:8080/api/public/server/info 2024-12-02T13:24:43.059+0300 info Server version: [devel] 2024-12-02T13:24:43.096+0300 info User example updated successfully
Изменение статуса пользователя
svacer user-provider update-status --username <id|name> (имя или идентификатор пользователя для обновления) --status <active|archive>
Пример:
svacer user-provider update-status --user admin --password admin --username example321 --status archive 2024-12-02T13:26:49.444+0300 info Log file location /tmp/svacer-2446325878.log 2024-12-02T13:26:49.444+0300 info Quering server configuration from http://localhost:8080/api/public/server/info 2024-12-02T13:26:49.452+0300 info Server version: [devel] 2024-12-02T13:26:49.479+0300 info User status updated successfully
Role management
Управление ролями
Для управления пользователями используется команда role-provider инструмента Svacer с необходимыми подкомандами. Также требуется аутентификация на сервере для выполнения запросов и необходимые права доступа.
Создание роли
svacer role-provider add --name <name> --permissions <permissions> (Укажите права вида "цель1(ALL, идентификатор ветки, идентификатор или имя проекта, имя проекта/имя ветки):правило(чтобы получить список разрешений используй команду list-permissions);цель2:правило; ... ,цельН:правило")
Пример:
svacer role-provider add --name example --permissions "ALL:Import;test_md:Projects" --user admin --password admin 2024-12-02T13:43:25.542+0300 info Log file location /tmp/svacer-393346587.log 2024-12-02T13:43:25.542+0300 info Quering server configuration from http://localhost:8080/api/public/server/info 2024-12-02T13:43:25.549+0300 info Server version: [devel] 2024-12-02T13:43:25.556+0300 info Logged by user admin 2024-12-02T13:43:25.578+0300 info Role added successfully: example Id: 4c2eda54-6d3f-409e-b846-63d49752f331 Permission 'ALL': 'Import', 'ReadAction' Permission 'test_md': 'Branches', 'ExportMarkup', 'GlobalFilters', 'Import', 'ImportMarkup', 'Projects', 'ReadAction'
Удаление роли
svacer role-provider delete --role <role name|id>
Пример:
svacer role-provider delete --role example --user admin --password admin 2024-12-02T14:13:28.664+0300 info Log file location /tmp/svacer-3511168837.log 2024-12-02T14:13:28.665+0300 info Quering server configuration from http://localhost:8080/api/public/server/info 2024-12-02T14:13:28.670+0300 info Server version: [devel] 2024-12-02T14:13:28.695+0300 info Role deleted successfully
Изменение роли
svacer role-provider update --role <role name|id> --permissions <permissions> (Укажите права вида "цель1(ALL, идентификатор ветки, идентификатор или имя проекта, имя проекта/имя ветки):правило(чтобы получить список разрешений используй команду list-permissions);цель2:правило; ... ,цельН:правило") --force <true|false> (Используйте, чтобы перезаписать правила для роли. По умолчанию указанные правила будут добавлены к уже существующим) --remove <true|false> (Используйте, чтобы удалить правила для роли. Правила, необходимые для удаления указываются в опции --permissions)
Пример:
svacer role-provider update --role example --permissions "ALL:Hooks" --user admin --password admin --force 2024-12-02T14:12:49.084+0300 info Log file location /tmp/svacer-2403337357.log 2024-12-02T14:12:49.084+0300 info Quering server configuration from http://localhost:8080/api/public/server/info 2024-12-02T14:12:49.093+0300 info Server version: [devel] 2024-12-02T14:12:49.125+0300 info Role updated successfully: example Id: 4c2eda54-6d3f-409e-b846-63d49752f331 Permission 'ALL': 'Hooks'
Получение списка ролей
svacer role-provider get --target <user id|name> (имя или идентификатор пользователя, чьи роли запрашиваются, если данный флаг не указан, будут выведены все роли)
Пример:
svacer role-provider get --user admin --password admin --target admin 2024-12-02T14:08:03.735+0300 info Log file location /tmp/svacer-3317672156.log 2024-12-02T14:08:03.737+0300 info Quering server configuration from http://localhost:8080/api/public/server/info 2024-12-02T14:08:03.744+0300 info Server version: [devel] { "ID": "00000000-0000-0000-0000-000000000000", "firstName": "admin", "lastName": "admin" ... }
Назначение роли пользователю
svacer role-provider assign --username <user name|id> --role <role name|id>тобы получить список разрешений используй команду list-permissions);цель2:правило; ... ,цельН:правило") --remove <true|false> (Используйте, чтобы перезаписать правила для роли. По умолчанию указанные правила будут добавлены к уже существующим)
Пример:
svacer role-provider assign --user admin --password admin --username guest --role example 2024-12-02T14:09:23.509+0300 info Log file location /tmp/svacer-2142876769.log 2024-12-02T14:09:23.509+0300 info Quering server configuration from http://localhost:8080/api/public/server/info 2024-12-02T14:09:23.519+0300 info Server version: [devel] 2024-12-02T14:09:23.543+0300 info Role example assigned successfully
Получение списка разрешений
svacer role-provider list-permissions --format <json|table> (Укажите формат вывода json или table (table выводится с применением, названием и описанием разрешения) (по умолчанию: json))
Пример:
svacer role-provider list-permissions --user admin --password admin --format table 2024-12-02T14:10:46.061+0300 info Log file location /tmp/svacer-3390742125.log 2024-12-02T14:10:46.061+0300 info Quering server configuration from http://localhost:8080/api/public/server/info 2024-12-02T14:10:46.068+0300 info Server version: [devel] 2024-12-02T14:10:46.072+0300 info Logged by user admin +-------------------------------------------------------------------------------------------------+ | Permission Table | +------------------+------------------------------+-------------------+---------------------------+ | PERMISSION | SCOPE | NAME | DESCRIPTION | +------------------+------------------------------+-------------------+---------------------------+ | Hooks | server | Run hooks | Run hooks from Details | | | | | section of the right | | | | | panel | +------------------+------------------------------+-------------------+---------------------------+ | Backups | server | Create backups | Create, view and restore | | | | | backup using CLI | +------------------+------------------------------+-------------------+---------------------------+ ...