Nexus Repo Manager - Как получить роли на основе имени Repo? - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь перечислить все роли, которые в настоящее время имеют доступ к Nexus repo A.

1 Ответ

1 голос
/ 29 марта 2019

Нет менеджера репо, который идет в этом направлении.Но вы могли бы написать отличный сценарий, который пересекает дерево ролей / привилегий, и таким образом получать информацию.

Вот простой скрипт, который должен помочь вам двигаться в правильном направлении:

allRoles = security.getSecuritySystem().listRoles()
allPrivileges = security.getSecuritySystem().listPrivileges()


log.info("\n  ---------------------------- \n Listing Roles and Privileges \n" +
        "  ---------------------------- ")
roleSize = allRoles.size()
log.info("Roles found: $roleSize")
for (r in allRoles) {
    log.info("Role --> RoleId: $r.roleId, Name: $r.name, Source: $r.source")

    log.info("Role --> RoleId: $r.roleId, Name: $r.name, Source: $r.source")
    for(p in r.privileges) {
        rolePrivilege = allPrivileges.find { it.id == (p) }
        if (rolePrivilege) {
            log.info("Privilege for role '$r.name' --> Id: $rolePrivilege.id, Name: $rolePrivilege.name, Desc: $rolePrivilege.description")
        }
    }
}

Вы можете запустить это в «system / tasks» в интерфейсе администратора, создав «admin -выполнить сценарий "или как REST API, как описано здесь:

https://help.sonatype.com/display/NXRM3/Script+API

Я бы также настоятельно рекомендовал настроить среду IDE для разработки сценариев, так как вы можете использовать кодзавершение и перейдите непосредственно к исходному коду Nexus из ваших сценариев:

https://support.sonatype.com/hc/en-us/articles/115015812727-Nexus-3-Groovy-Script-development-environment-setup

...