]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-details/rgw-user-details.component.html
bump version to 16.2.6-pve2
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / ceph / rgw / rgw-user-details / rgw-user-details.component.html
1 <ng-container *ngIf="selection">
2 <ul ngbNav
3 #nav="ngbNav"
4 class="nav-tabs"
5 cdStatefulTab="rgw-user-details">
6 <li ngbNavItem="details">
7 <a ngbNavLink
8 i18n>Details</a>
9 <ng-template ngbNavContent>
10 <div *ngIf="user">
11 <table class="table table-striped table-bordered">
12 <tbody>
13 <tr>
14 <td i18n
15 class="bold w-25">Tenant</td>
16 <td class="w-75">{{ user.tenant }}</td>
17 </tr>
18 <tr>
19 <td i18n
20 class="bold w-25">User ID</td>
21 <td class="w-75">{{ user.user_id }}</td>
22 </tr>
23 <tr>
24 <td i18n
25 class="bold w-25">Username</td>
26 <td class="w-75">{{ user.uid }}</td>
27 </tr>
28 <tr>
29 <td i18n
30 class="bold">Full name</td>
31 <td>{{ user.display_name }}</td>
32 </tr>
33 <tr *ngIf="user.email?.length">
34 <td i18n
35 class="bold">Email address</td>
36 <td>{{ user.email }}</td>
37 </tr>
38 <tr>
39 <td i18n
40 class="bold">Suspended</td>
41 <td>{{ user.suspended | booleanText }}</td>
42 </tr>
43 <tr>
44 <td i18n
45 class="bold">System</td>
46 <td>{{ user.system === 'true' | booleanText }}</td>
47 </tr>
48 <tr>
49 <td i18n
50 class="bold">Maximum buckets</td>
51 <td>{{ user.max_buckets | map:maxBucketsMap }}</td>
52 </tr>
53 <tr *ngIf="user.subusers && user.subusers.length">
54 <td i18n
55 class="bold">Subusers</td>
56 <td>
57 <div *ngFor="let subuser of user.subusers">
58 {{ subuser.id }} ({{ subuser.permissions }})
59 </div>
60 </td>
61 </tr>
62 <tr *ngIf="user.caps && user.caps.length">
63 <td i18n
64 class="bold">Capabilities</td>
65 <td>
66 <div *ngFor="let cap of user.caps">
67 {{ cap.type }} ({{ cap.perm }})
68 </div>
69 </td>
70 </tr>
71 </tbody>
72 </table>
73
74 <!-- User quota -->
75 <div *ngIf="user.user_quota">
76 <legend i18n>User quota</legend>
77 <table class="table table-striped table-bordered">
78 <tbody>
79 <tr>
80 <td i18n
81 class="bold w-25">Enabled</td>
82 <td class="w-75">{{ user.user_quota.enabled | booleanText }}</td>
83 </tr>
84 <tr>
85 <td i18n
86 class="bold">Maximum size</td>
87 <td *ngIf="!user.user_quota.enabled">-</td>
88 <td *ngIf="user.user_quota.enabled && user.user_quota.max_size <= -1"
89 i18n>Unlimited</td>
90 <td *ngIf="user.user_quota.enabled && user.user_quota.max_size > -1">
91 {{ user.user_quota.max_size | dimlessBinary }}
92 </td>
93 </tr>
94 <tr>
95 <td i18n
96 class="bold">Maximum objects</td>
97 <td *ngIf="!user.user_quota.enabled">-</td>
98 <td *ngIf="user.user_quota.enabled && user.user_quota.max_objects <= -1"
99 i18n>Unlimited</td>
100 <td *ngIf="user.user_quota.enabled && user.user_quota.max_objects > -1">
101 {{ user.user_quota.max_objects }}
102 </td>
103 </tr>
104 </tbody>
105 </table>
106 </div>
107
108 <!-- Bucket quota -->
109 <div *ngIf="user.bucket_quota">
110 <legend i18n>Bucket quota</legend>
111 <table class="table table-striped table-bordered">
112 <tbody>
113 <tr>
114 <td i18n
115 class="bold w-25">Enabled</td>
116 <td class="w-75">{{ user.bucket_quota.enabled | booleanText }}</td>
117 </tr>
118 <tr>
119 <td i18n
120 class="bold">Maximum size</td>
121 <td *ngIf="!user.bucket_quota.enabled">-</td>
122 <td *ngIf="user.bucket_quota.enabled && user.bucket_quota.max_size <= -1"
123 i18n>Unlimited</td>
124 <td *ngIf="user.bucket_quota.enabled && user.bucket_quota.max_size > -1">
125 {{ user.bucket_quota.max_size | dimlessBinary }}
126 </td>
127 </tr>
128 <tr>
129 <td i18n
130 class="bold">Maximum objects</td>
131 <td *ngIf="!user.bucket_quota.enabled">-</td>
132 <td *ngIf="user.bucket_quota.enabled && user.bucket_quota.max_objects <= -1"
133 i18n>Unlimited</td>
134 <td *ngIf="user.bucket_quota.enabled && user.bucket_quota.max_objects > -1">
135 {{ user.bucket_quota.max_objects }}
136 </td>
137 </tr>
138 </tbody>
139 </table>
140 </div>
141 </div>
142 </ng-template>
143 </li>
144 <li ngbNavItem="keys"
145 *ngIf="keys.length">
146 <a ngbNavLink
147 i18n>Keys</a>
148 <ng-template ngbNavContent>
149 <cd-table [data]="keys"
150 [columns]="keysColumns"
151 columnMode="flex"
152 selectionType="multi"
153 forceIdentifier="true"
154 (updateSelection)="updateKeysSelection($event)">
155 <div class="table-actions">
156 <div class="btn-group"
157 dropdown>
158 <button type="button"
159 class="btn btn-accent"
160 [disabled]="!keysSelection.hasSingleSelection"
161 (click)="showKeyModal()">
162 <i [ngClass]="[icons.show]"></i>
163 <ng-container i18n>Show</ng-container>
164 </button>
165 </div>
166 </div>
167 </cd-table>
168 </ng-template>
169 </li>
170 </ul>
171
172 <div [ngbNavOutlet]="nav"></div>
173 </ng-container>