mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	iam: Add user - duplicated password field (#217)
Fixes #175 Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
		
							parent
							
								
									bb1e135b52
								
							
						
					
					
						commit
						7f591e71ea
					
				| @ -53,7 +53,7 @@ export default { | ||||
|       icon: 'plus', | ||||
|       label: 'label.add.account', | ||||
|       listView: true, | ||||
|       args: ['username', 'password', 'email', 'firstname', 'lastname', 'domainid', 'account', 'roleid', 'timezone', 'networkdomain'] | ||||
|       args: ['username', 'password', 'confirmpassword', 'email', 'firstname', 'lastname', 'domainid', 'account', 'roleid', 'timezone', 'networkdomain'] | ||||
|     }, | ||||
|     { | ||||
|       api: 'ldapCreateAccount', | ||||
|  | ||||
| @ -29,7 +29,7 @@ export default { | ||||
|       icon: 'plus', | ||||
|       label: 'label.add.user', | ||||
|       listView: true, | ||||
|       args: ['username', 'password', 'email', 'firstname', 'lastname', 'timezone', 'account', 'domainid'] | ||||
|       args: ['username', 'password', 'confirmpassword', 'email', 'firstname', 'lastname', 'timezone', 'account', 'domainid'] | ||||
|     }, | ||||
|     { | ||||
|       api: 'updateUser', | ||||
|  | ||||
| @ -539,6 +539,7 @@ | ||||
| "label.confirmation": "Confirmation", | ||||
| "label.confirmdeclineinvitation": "Are you sure you want to decline this project invitation?", | ||||
| "label.confirmpassword": "Confirm Password", | ||||
| "label.confirmpassword.description": "Please type the same password again", | ||||
| "label.congratulations": "Congratulations!", | ||||
| "label.connectiontimeout": "Connection Timeout", | ||||
| "label.conservemode": "Conserve mode", | ||||
|  | ||||
| @ -231,12 +231,21 @@ | ||||
|                   :placeholder="field.description" | ||||
|                 /> | ||||
|               </span> | ||||
|               <span v-else-if="field.name==='password' || field.name==='currentpassword'"> | ||||
|               <span v-else-if="field.name==='password' || field.name==='currentpassword' || field.name==='confirmpassword'"> | ||||
|                 <a-input-password | ||||
|                   v-decorator="[field.name, { | ||||
|                     rules: [{ required: field.required, message: `${$t('message.error.required.input')}` }] | ||||
|                     rules: [ | ||||
|                       { | ||||
|                         required: field.required, | ||||
|                         message: `${$t('message.error.required.input')}` | ||||
|                       }, | ||||
|                       { | ||||
|                         validator: validateTwoPassword | ||||
|                       } | ||||
|                     ] | ||||
|                   }]" | ||||
|                   :placeholder="field.description" | ||||
|                   @blur="($event) => handleConfirmBlur($event, field.name)" | ||||
|                 /> | ||||
|               </span> | ||||
|               <span v-else-if="field.name==='certificate' || field.name==='privatekey' || field.name==='certchain'"> | ||||
| @ -357,7 +366,8 @@ export default { | ||||
|       treeData: [], | ||||
|       treeSelected: {}, | ||||
|       actionData: [], | ||||
|       formModel: {} | ||||
|       formModel: {}, | ||||
|       confirmDirty: false | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
| @ -609,6 +619,7 @@ export default { | ||||
|       this.currentAction = {} | ||||
|     }, | ||||
|     execAction (action) { | ||||
|       const self = this | ||||
|       this.form = this.$form.createForm(this) | ||||
|       this.formModel = {} | ||||
|       this.actionData = [] | ||||
| @ -635,6 +646,14 @@ export default { | ||||
|         } | ||||
|         if (args.length > 0) { | ||||
|           this.currentAction.paramFields = args.map(function (arg) { | ||||
|             if (arg === 'confirmpassword') { | ||||
|               return { | ||||
|                 type: 'password', | ||||
|                 name: 'confirmpassword', | ||||
|                 required: true, | ||||
|                 description: self.$t('label.confirmpassword.description') | ||||
|               } | ||||
|             } | ||||
|             return paramFields.filter(function (param) { | ||||
|               return param.name.toLowerCase() === arg.toLowerCase() | ||||
|             })[0] | ||||
| @ -908,6 +927,40 @@ export default { | ||||
|     }, | ||||
|     finishLoading () { | ||||
|       this.loading = false | ||||
|     }, | ||||
|     handleConfirmBlur (e, name) { | ||||
|       if (name !== 'confirmpassword') { | ||||
|         return | ||||
|       } | ||||
|       const value = e.target.value | ||||
|       this.confirmDirty = this.confirmDirty || !!value | ||||
|     }, | ||||
|     validateTwoPassword (rule, value, callback) { | ||||
|       if (!value || value.length === 0) { | ||||
|         callback() | ||||
|       } else if (rule.field === 'confirmpassword') { | ||||
|         const form = this.form | ||||
|         const messageConfirm = this.$t('message.validate.equalto') | ||||
|         const passwordVal = form.getFieldValue('password') | ||||
|         if (passwordVal && passwordVal !== value) { | ||||
|           callback(messageConfirm) | ||||
|         } else { | ||||
|           callback() | ||||
|         } | ||||
|       } else if (rule.field === 'password') { | ||||
|         const form = this.form | ||||
|         const confirmPasswordVal = form.getFieldValue('confirmpassword') | ||||
|         if (!confirmPasswordVal || confirmPasswordVal.length === 0) { | ||||
|           callback() | ||||
|         } else if (value && this.confirmDirty) { | ||||
|           form.validateFields(['confirmpassword'], { force: true }) | ||||
|           callback() | ||||
|         } else { | ||||
|           callback() | ||||
|         } | ||||
|       } else { | ||||
|         callback() | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user