Feature expose roles groups in projects - ICU-4512 (#1192)

* chore: 🤖 add scope column to role principals and group members

* chore: 🤖 add recursion and filtering to user and group mocks

* feat: 🎸 expose groups and roles on projects
This commit is contained in:
Randall Morey authored and GitHub committed 2022-07-18 16:15:51 -07:00
1 parent c2083aefab
commit 31cf696902
5 files changed
+56 -27

No files matched your search

+3
View File
@@ -51,5 +51,8 @@ export default function (server) {
server.createList('target', 2, { scope }, 'withAssociations');
// Sessions have target data. Create it after targets.
server.createList('session', 4, { scope }, 'withAssociations');
// Create IAM resources for project
server.createList('group', 3, { scope });
server.createList('role', 3, { scope });
});
}
@@ -44,12 +44,23 @@
</row.headerCell>
<row.cell>{{principal.id}}</row.cell>
<row.cell>
<Rose::Badge>{{t
<Rose::Badge
@icon={{if
(eq principal.constructor.modelName 'group')
'flight-icons/svg/folder-users-16'
'flight-icons/svg/user-16'
}}
>
{{t
(concat
'resources.role.principal.types.'
principal.constructor.modelName
)
}}</Rose::Badge>
}}
</Rose::Badge>
</row.cell>
<row.cell>
<ScopeBadge @scope={{principal.scopeModel}} />
</row.cell>
<row.cell>
<ScopeBadge @scope={{principal.scopeModel}} />
+29 -22
View File
@@ -107,40 +107,47 @@
</Rose::Nav::Sidebar>
{{/if}}
{{#unless @model.isProject}}
<Rose::Nav::Sidebar @title={{t 'titles.iam'}} as |nav|>
<Rose::Nav::Sidebar @title={{t 'titles.iam'}} as |nav|>
{{! Users are available only for org/global scopes }}
{{#unless @model.isProject}}
{{#if (can 'navigate model' @model collection='users')}}
<nav.link @route='scopes.scope.users'>
<Rose::Icon @name='flight-icons/svg/users-16' @size='medium' />
{{t 'resources.user.title_plural'}}
</nav.link>
{{/if}}
{{#if (can 'navigate model' @model collection='groups')}}
<nav.link @route='scopes.scope.groups'>
<Rose::Icon
@name='flight-icons/svg/folder-users-16'
@size='medium'
/>
{{t 'resources.group.title_plural'}}
</nav.link>
{{/if}}
{{#if (can 'navigate model' @model collection='roles')}}
<nav.link @route='scopes.scope.roles'>
<Rose::Icon
@name='flight-icons/svg/identity-user-16'
@size='medium'
/>
{{t 'resources.role.title_plural'}}
</nav.link>
{{/if}}
{{/unless}}
{{! Groups and roles are available for all scopes }}
{{#if (can 'navigate model' @model collection='groups')}}
<nav.link @route='scopes.scope.groups'>
<Rose::Icon
@name='flight-icons/svg/folder-users-16'
@size='medium'
/>
{{t 'resources.group.title_plural'}}
</nav.link>
{{/if}}
{{#if (can 'navigate model' @model collection='roles')}}
<nav.link @route='scopes.scope.roles'>
<Rose::Icon
@name='flight-icons/svg/identity-user-16'
@size='medium'
/>
{{t 'resources.role.title_plural'}}
</nav.link>
{{/if}}
{{! Auth methods are available only for org/global scopes }}
{{#unless @model.isProject}}
{{#if (can 'navigate model' @model collection='auth-methods')}}
<nav.link @route='scopes.scope.auth-methods'>
<Rose::Icon @name='flight-icons/svg/lock-16' @size='medium' />
{{t 'resources.auth-method.title_plural'}}
</nav.link>
{{/if}}
</Rose::Nav::Sidebar>
{{/unless}}
{{/unless}}
</Rose::Nav::Sidebar>
{{#if @model.isOrg}}
{{#if this.session.data.authenticated.isGlobal}}
@@ -72,7 +72,7 @@
<message.description>
{{#if (can 'list model' this.scope collection='roles')}}
{{! can list (at least): show default welcome message}}
{{t 'resources.roles.description'}}
{{t 'resources.role.description'}}
{{else if (can 'create model' this.scope collection='roles')}}
{{! can create (only): show create-but-not-list welcome message}}
{{t
@@ -62,9 +62,17 @@
</Copyable>
</row.cell>
<row.cell>
<Rose::Badge>{{t
<Rose::Badge
@icon={{if
(eq principal.type 'group')
'flight-icons/svg/folder-users-16'
'flight-icons/svg/user-16'
}}
>
{{t
(concat 'resources.role.principal.types.' principal.type)
}}</Rose::Badge>
}}
</Rose::Badge>
</row.cell>
<row.cell>
<ScopeBadge @scope={{principal.model.scopeModel}} />