1 <cd-loading-panel *
ngIf=
"!pwdExpirationSettings"
2 i18n
>Loading...
</cd-loading-panel>
4 <div class=
"cd-col-form">
8 *
ngIf=
"pwdExpirationSettings"
11 <div i18n=
"form title|Example: Create Pool@@formTitle"
12 class=
"card-header">{{ action | titlecase }} {{ resource | upperFirst }}
</div>
13 <div class=
"card-body">
16 <div class=
"form-group row">
17 <label class=
"cd-col-form-label"
18 [ngClass]=
"{'required': mode !== userFormMode.editing}"
21 <div class=
"cd-col-form-input">
22 <input class=
"form-control"
24 placeholder=
"Username..."
27 formControlName=
"username"
30 <span class=
"invalid-feedback"
31 *
ngIf=
"userForm.showError('username', formDir, 'required')"
32 i18n
>This field is required.
</span>
33 <span class=
"invalid-feedback"
34 *
ngIf=
"userForm.showError('username', formDir, 'notUnique')"
35 i18n
>The username already exists.
</span>
40 <div class=
"form-group row"
41 *
ngIf=
"!authStorageService.isSSO()">
42 <label class=
"cd-col-form-label"
44 <ng-container i18n
>Password
</ng-container>
45 <cd-helper *
ngIf=
"passwordPolicyHelpText.length > 0"
47 html=
"{{ passwordPolicyHelpText }}">
50 <div class=
"cd-col-form-input">
51 <div class=
"input-group">
52 <input class=
"form-control"
54 placeholder=
"Password..."
57 autocomplete=
"new-password"
58 formControlName=
"password">
59 <span class=
"input-group-append">
62 cdPasswordButton=
"password">
66 <div class=
"password-strength-level">
67 <div class=
"{{ passwordStrengthLevelClass }}"
69 title=
"{{ passwordValuation }}">
72 <span class=
"invalid-feedback"
73 *
ngIf=
"userForm.showError('password', formDir, 'required')"
74 i18n
>This field is required.
</span>
75 <span class=
"invalid-feedback"
76 *
ngIf=
"userForm.showError('password', formDir, 'passwordPolicy')">
77 {{ passwordValuation }}
82 <!-- Confirm password -->
83 <div class=
"form-group row"
84 *
ngIf=
"!authStorageService.isSSO()">
86 class=
"cd-col-form-label"
87 for=
"confirmpassword">Confirm password
</label>
88 <div class=
"cd-col-form-input">
89 <div class=
"input-group">
90 <input class=
"form-control"
92 placeholder=
"Confirm password..."
94 name=
"confirmpassword"
95 autocomplete=
"new-password"
96 formControlName=
"confirmpassword">
97 <span class=
"input-group-append">
100 cdPasswordButton=
"confirmpassword">
103 <span class=
"invalid-feedback"
104 *
ngIf=
"userForm.showError('confirmpassword', formDir, 'match')"
105 i18n
>Password confirmation doesn't match the password.
</span>
107 <span class=
"invalid-feedback"
108 *
ngIf=
"userForm.showError('confirmpassword', formDir, 'required')"
109 i18n
>This field is required.
</span>
113 <!-- Password expiration date -->
114 <div class=
"form-group row"
115 *
ngIf=
"!authStorageService.isSSO()">
116 <label class=
"cd-col-form-label"
117 [ngClass]=
"{'required': pwdExpirationSettings.pwdExpirationSpan > 0}"
118 for=
"pwdExpirationDate">
119 <ng-container i18n
>Password expiration date
</ng-container>
120 <cd-helper class=
"text-pre"
121 *
ngIf=
"pwdExpirationSettings.pwdExpirationSpan == 0">
123 The Dashboard setting defining the expiration interval of
124 passwords is currently set to
<strong>0</strong>. This means
125 if a date is set, the user password will only expire once.
128 Consider configuring the Dashboard setting
129 <a routerLink=
"/mgr-modules/edit/dashboard"
130 class=
"alert-link">USER_PWD_EXPIRATION_SPAN
</a>
131 in order to let passwords expire periodically.
135 <div class=
"cd-col-form-input">
136 <div class=
"input-group">
140 placeholder=
"Password expiration date..."
141 [bsConfig]=
"bsConfig"
144 id=
"pwdExpirationDate"
145 name=
"pwdExpirationDate"
146 formControlName=
"pwdExpirationDate">
147 <span class=
"input-group-append">
148 <button type=
"button"
149 class=
"btn btn-light"
150 (click)=
"clearExpirationDate()">
151 <i class=
"icon-prepend {{ icons.destroy }}"></i>
154 <span class=
"invalid-feedback"
155 *
ngIf=
"userForm.showError('pwdExpirationDate', formDir, 'required')"
156 i18n
>This field is required.
</span>
162 <div class=
"form-group row">
164 class=
"cd-col-form-label"
165 for=
"name">Full name
</label>
166 <div class=
"cd-col-form-input">
167 <input class=
"form-control"
169 placeholder=
"Full name..."
172 formControlName=
"name">
177 <div class=
"form-group row">
179 class=
"cd-col-form-label"
180 for=
"email">Email
</label>
181 <div class=
"cd-col-form-input">
182 <input class=
"form-control"
184 placeholder=
"Email..."
187 formControlName=
"email">
189 <span class=
"invalid-feedback"
190 *
ngIf=
"userForm.showError('email', formDir, 'email')"
191 i18n
>Invalid email.
</span>
196 <div class=
"form-group row">
197 <label class=
"cd-col-form-label"
199 <div class=
"cd-col-form-input">
200 <span class=
"no-border full-height"
202 <cd-select-badges [data]=
"userForm.controls.roles.value"
204 [messages]=
"messages"></cd-select-badges>
210 <div class=
"form-group row"
211 *
ngIf=
"!isCurrentUser()">
212 <div class=
"cd-col-form-offset">
213 <div class=
"custom-control custom-checkbox">
214 <input type=
"checkbox"
215 class=
"custom-control-input"
218 formControlName=
"enabled">
219 <label class=
"custom-control-label"
226 <!-- Force change password -->
227 <div class=
"form-group row"
228 *
ngIf=
"!isCurrentUser() && !authStorageService.isSSO()">
229 <div class=
"cd-col-form-offset">
230 <div class=
"custom-control custom-checkbox">
231 <input type=
"checkbox"
232 class=
"custom-control-input"
233 id=
"pwdUpdateRequired"
234 name=
"pwdUpdateRequired"
235 formControlName=
"pwdUpdateRequired">
236 <label class=
"custom-control-label"
237 for=
"pwdUpdateRequired"
238 i18n
>User must change password at next logon
</label>
244 <div class=
"card-footer">
245 <div class=
"button-group text-right">
246 <cd-submit-button (submitAction)=
"submit()"
247 i18n=
"form action button|Example: Create Pool@@formActionButton"
248 [form]=
"formDir">{{ action | titlecase }} {{ resource | upperFirst }}
</cd-submit-button>
249 <cd-back-button></cd-back-button>
256 <ng-template #removeSelfUserReadUpdatePermissionTpl
>
257 <p><strong i18n
>You are about to remove
"user read / update" permissions from your own user.
</strong></p>
259 <p i18n
>If you continue, you will no longer be able to add or remove roles from any user.
</p>
261 <ng-container i18n
>Are you sure you want to continue?
</ng-container>