mirror of https://github.com/portainer/portainer
130 lines
5.5 KiB
HTML
130 lines
5.5 KiB
HTML
<page-header
|
|
ng-if="ctrl.state.viewReady"
|
|
title="'Namespace access management'"
|
|
breadcrumbs="[
|
|
{ label:'Namespaces', link:'kubernetes.resourcePools' },
|
|
{
|
|
label:ctrl.pool.Namespace.Name,
|
|
link: 'kubernetes.resourcePools.resourcePool',
|
|
linkParams:{id: ctrl.pool.Namespace.Name}
|
|
},
|
|
'Access management'
|
|
]"
|
|
reload="true"
|
|
>
|
|
</page-header>
|
|
|
|
<kubernetes-view-loading view-ready="ctrl.state.viewReady"></kubernetes-view-loading>
|
|
|
|
<div ng-if="ctrl.state.viewReady">
|
|
<div class="row" ng-if="ctrl.pool">
|
|
<div class="col-sm-12">
|
|
<rd-widget>
|
|
<rd-widget-header icon="layers" title-text="Namespace"></rd-widget-header>
|
|
<rd-widget-body>
|
|
<table class="table">
|
|
<tbody>
|
|
<tr>
|
|
<td class="!pl-0">Name</td>
|
|
<td>
|
|
{{ ctrl.pool.Namespace.Name }}
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</rd-widget-body>
|
|
</rd-widget>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
<rd-widget ng-if="ctrl.availableUsersAndTeams">
|
|
<rd-widget-header icon="user-x" title-text="Create access"></rd-widget-header>
|
|
<rd-widget-body>
|
|
<form class="form-horizontal">
|
|
<div class="form-group">
|
|
<div
|
|
ng-if="!ctrl.isRBACEnabled"
|
|
class="small mx-[15px] mb-6 flex gap-1 rounded-lg border border-solid border-warning-5 bg-warning-2 p-4 text-warning-8 th-highcontrast:bg-yellow-11 th-highcontrast:text-white th-dark:bg-yellow-11 th-dark:text-white"
|
|
>
|
|
<div class="mt-0.5">
|
|
<pr-icon icon="'alert-triangle'" feather="true" class-name="'text-warning-7 th-dark:text-white th-highcontrast:text-white'"></pr-icon>
|
|
</div>
|
|
<div>
|
|
<p> Your cluster does not have Kubernetes role-based access control (RBAC) enabled. </p>
|
|
<p> This means you can't use Portainer RBAC functionality to regulate access to environment resources based on user roles. </p>
|
|
<p class="mb-0">
|
|
To enable RBAC, start the <a
|
|
class="th-highcontrast:text-blue-4 th-dark:text-blue-7"
|
|
href="https://kubernetes.io/docs/concepts/overview/components/#kube-apiserver"
|
|
target="_blank"
|
|
>API server</a
|
|
> with the <code class="bg-gray-4 box-decoration-clone th-highcontrast:bg-black th-dark:bg-black">--authorization-mode</code> flag set to a
|
|
comma-separated list that includes <code class="bg-gray-4 th-highcontrast:bg-black th-dark:bg-black">RBAC</code>, for example:
|
|
<code class="bg-gray-4 box-decoration-clone th-highcontrast:bg-black th-dark:bg-black">kube-apiserver --authorization-mode=Example1,RBAC,Example2</code>.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<span class="col-sm-12 small text-warning">
|
|
<p class="vertical-center">
|
|
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon>
|
|
Adding user access will require the affected user(s) to logout and login for the changes to be taken into account.
|
|
</p>
|
|
</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="col-sm-3 col-lg-2 control-label text-left" for="users-selector"> Select user(s) and/or team(s) </label>
|
|
<div class="col-sm-9 col-lg-4">
|
|
<span class="small text-muted" ng-if="ctrl.availableUsersAndTeams.length === 0">
|
|
No user nor team access has been set on the environment. Head over to the
|
|
<a ui-sref="portainer.endpoints">Environments view</a> to manage them.
|
|
</span>
|
|
<namespace-access-users-selector
|
|
ng-if="ctrl.availableUsersAndTeams.length > 0"
|
|
input-id="users-selector"
|
|
value="ctrl.formValues.multiselectOutput"
|
|
options="ctrl.availableUsersAndTeams"
|
|
on-change="(ctrl.onUsersAndTeamsChange)"
|
|
></namespace-access-users-selector>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- actions -->
|
|
<div class="form-group">
|
|
<div class="col-sm-12">
|
|
<button
|
|
type="submit"
|
|
class="btn btn-primary btn-sm vertical-center !ml-0"
|
|
ng-disabled="ctrl.formValues.multiselectOutput.length === 0 || ctrl.actionInProgress"
|
|
ng-click="ctrl.authorizeAccess()"
|
|
button-spinner="ctrl.actionInProgress"
|
|
>
|
|
<span class="vertical-center" ng-hide="ctrl.state.actionInProgress"><pr-icon icon="'plus'" class="vertical-center"></pr-icon> Create access</span>
|
|
<span ng-show="ctrl.state.actionInProgress">Creating access...</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<!-- !actions -->
|
|
</form>
|
|
</rd-widget-body>
|
|
</rd-widget>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
<access-datatable
|
|
ng-if="ctrl.authorizedUsersAndTeams"
|
|
title-text="Namespace access"
|
|
title-icon="user-x"
|
|
table-key="kubernetes_resourcepool_access"
|
|
order-by="Name"
|
|
dataset="ctrl.authorizedUsersAndTeams"
|
|
remove-action="ctrl.unauthorizeAccess"
|
|
>
|
|
</access-datatable>
|
|
</div>
|
|
</div>
|
|
</div>
|