User Management (command line): Difference between revisions

From Svacer Wiki
(user-provider)
(role-provider)
 
Line 17: Line 17:
     --review-master <true|false> (активировать атрибут Review Master, по умолчанию false)
     --review-master <true|false> (активировать атрибут Review Master, по умолчанию false)
'''Пример:'''
'''Пример:'''
  ./bin/svacer user-provider add --user admin --password admin --login example --user_password Example123 --review-master true
  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    Log file location /tmp/svacer-3054598677.log
  2024-12-02T13:19:41.366+0300    info    Quering server configuration from <nowiki>http://localhost:8080/api/public/server/info</nowiki>
  2024-12-02T13:19:41.366+0300    info    Quering server configuration from <nowiki>http://localhost:8080/api/public/server/info</nowiki>
Line 28: Line 28:
     --username <id or name>
     --username <id or name>
'''Пример:'''
'''Пример:'''
  ./bin/svacer user-provider delete --user admin --password admin --username example321
  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    Log file location /tmp/svacer-2241911697.log
  2024-12-02T13:27:38.731+0300    info    Quering server configuration from <nowiki>http://localhost:8080/api/public/server/info</nowiki>
  2024-12-02T13:27:38.731+0300    info    Quering server configuration from <nowiki>http://localhost:8080/api/public/server/info</nowiki>
Line 39: Line 39:
     --filter <all|active|archived> (используйте для фильтрации списка пользователей)
     --filter <all|active|archived> (используйте для фильтрации списка пользователей)
'''Пример:'''
'''Пример:'''
  ./bin/svacer user-provider get --user admin --password admin --with-roles true
  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.392+0300    info    Log file location /tmp/svacer-3616394399.log
  2024-12-02T13:21:30.393+0300    info    Quering server configuration from <nowiki>http://localhost:8080/api/public/server/info</nowiki>
  2024-12-02T13:21:30.393+0300    info    Quering server configuration from <nowiki>http://localhost:8080/api/public/server/info</nowiki>
Line 68: Line 68:
     --review-master <true|false> (активировать атрибут Review Master)
     --review-master <true|false> (активировать атрибут Review Master)
'''Пример:'''
'''Пример:'''
  ./bin/svacer user-provider update --user admin --password admin --username example --login example321
  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    Log file location /tmp/svacer-3041843149.log
  2024-12-02T13:24:43.052+0300    info    Quering server configuration from <nowiki>http://localhost:8080/api/public/server/info</nowiki>
  2024-12-02T13:24:43.052+0300    info    Quering server configuration from <nowiki>http://localhost:8080/api/public/server/info</nowiki>
Line 79: Line 79:
     --status <active|archive>
     --status <active|archive>
'''Пример:'''
'''Пример:'''
  ./bin/svacer user-provider update-status --user admin --password admin --username example321 --status 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    Log file location /tmp/svacer-2446325878.log
  2024-12-02T13:26:49.444+0300    info    Quering server configuration from <nowiki>http://localhost:8080/api/public/server/info</nowiki>
  2024-12-02T13:26:49.444+0300    info    Quering server configuration from <nowiki>http://localhost:8080/api/public/server/info</nowiki>
Line 94: Line 94:
     --name <name>
     --name <name>
     --permissions <permissions> (Укажите права вида "цель1(ALL, идентификатор ветки, идентификатор или имя проекта, имя проекта/имя ветки):правило(чтобы получить список разрешений используй команду list-permissions);цель2:правило; ... ,цельН:правило")
     --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 <nowiki>http://localhost:8080/api/public/server/info</nowiki>
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
  svacer role-provider delete
     --role <role name|id>
     --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 <nowiki>http://localhost:8080/api/public/server/info</nowiki>
2024-12-02T14:13:28.670+0300    info    Server version: [devel]
2024-12-02T14:13:28.695+0300    info    Role deleted successfully


==== Изменение роли ====
==== Изменение роли ====
Line 105: Line 121:
     --force <true|false> (Используйте, чтобы перезаписать правила для роли. По умолчанию указанные правила будут добавлены к уже существующим)
     --force <true|false> (Используйте, чтобы перезаписать правила для роли. По умолчанию указанные правила будут добавлены к уже существующим)
     --remove <true|false> (Используйте, чтобы удалить правила для роли. Правила, необходимые для удаления указываются в опции --permissions)
     --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 <nowiki>http://localhost:8080/api/public/server/info</nowiki>
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
  svacer role-provider get
     --target <user id|name> (имя или идентификатор пользователя, чьи роли запрашиваются, если данный флаг не указан, будут выведены все роли)
     --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 <nowiki>http://localhost:8080/api/public/server/info</nowiki>
2024-12-02T14:08:03.744+0300    info    Server version: [devel]
{
  "ID": "00000000-0000-0000-0000-000000000000",
  "firstName": "admin",
  "lastName": "admin"
...
}


==== Назначение роли пользователю ====
==== Назначение роли пользователю ====
Line 115: Line 150:
     --role <role name|id>тобы получить список разрешений используй команду list-permissions);цель2:правило; ... ,цельН:правило")
     --role <role name|id>тобы получить список разрешений используй команду list-permissions);цель2:правило; ... ,цельН:правило")
     --remove <true|false> (Используйте, чтобы перезаписать правила для роли. По умолчанию указанные правила будут добавлены к уже существующим)
     --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 <nowiki>http://localhost:8080/api/public/server/info</nowiki>
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
  svacer role-provider list-permissions
     --format <json|table> (Укажите формат вывода json или table (table выводится с применением, названием и описанием разрешения) (по умолчанию: json))
     --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 <nowiki>http://localhost:8080/api/public/server/info</nowiki>
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          |
+------------------+------------------------------+-------------------+---------------------------+
...

Latest revision as of 14:14, 2 December 2024

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          |
+------------------+------------------------------+-------------------+---------------------------+
...