Option to lock user's password #215
Former-commit-id: e4f0afef51c437bd55c58f12f2f45ce8e8c84bb0 [formerly 549235edf9d6c43d1454a8a00d7b6f832bb8a3ca] [formerly 12d099aa44bff7d995b05680e405d8040f1e1850 [formerly fc9ca4f6a4eb9a9ed89e35c413158e801a18e25e]] Former-commit-id: e9666db20e2b473095f21c03d59f2a8fbf07929e [formerly 87ee9eb83daed5180c6a3714c0ddc861668d747b] Former-commit-id: 5a15b05320c1eb28324e50cad7ca980d3eebcb02
This commit is contained in:
		
							parent
							
								
									d838856711
								
							
						
					
					
						commit
						3ebe219e96
					
				|  | @ -263,7 +263,7 @@ export default { | |||
|           .then(req => { | ||||
|             this.checkConflict(files, req.items, base) | ||||
|           }) | ||||
|           .catch(error => { console.log(error) }) | ||||
|           .catch(this.$showError) | ||||
| 
 | ||||
|         return | ||||
|       } | ||||
|  |  | |||
|  | @ -75,7 +75,7 @@ export default { | |||
|         this.listing = req | ||||
|         this.updateLinks() | ||||
|       }) | ||||
|       .catch(error => { console.log(error) }) | ||||
|       .catch(this.$showError) | ||||
|   }, | ||||
|   beforeDestroy () { | ||||
|     window.removeEventListener('keyup', this.key) | ||||
|  |  | |||
|  | @ -124,6 +124,7 @@ settings: | |||
|   examples: Examples | ||||
|   globalSettings: Global Settings | ||||
|   language: Language | ||||
|   lockPassword: Prevent the user from changing the password | ||||
|   newPassword: Your new password | ||||
|   newPasswordConfirm: Confirm your new password | ||||
|   newUser: New User | ||||
|  |  | |||
|  | @ -145,6 +145,7 @@ settings: | |||
|   examples: Exemplos | ||||
|   globalSettings: Configurações Globais | ||||
|   language: Linguagem | ||||
|   lockPassword: Não permitir que o utilizador altere a palavra-passe | ||||
|   newPassword: Nova palavra-passe | ||||
|   newPasswordConfirm: Confirme a nova palavra-passe | ||||
|   newUser: Novo Utilizador | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ | |||
|       <p><input type="submit" :value="$t('buttons.update')"></p> | ||||
|     </form> | ||||
| 
 | ||||
|     <form @submit="updatePassword"> | ||||
|     <form v-if="!user.lockPassword" @submit="updatePassword"> | ||||
|       <h3>{{ $t('settings.changePassword') }}</h3> | ||||
|       <p><input :class="passwordClass" type="password" :placeholder="$t('settings.newPassword')" v-model="password" name="password"></p> | ||||
|       <p><input :class="passwordClass" type="password" :placeholder="$t('settings.newPasswordConfirm')" v-model="passwordConf" name="password"></p> | ||||
|  |  | |||
|  | @ -21,6 +21,8 @@ | |||
|         <languages id="locale" :selected.sync="locale"></languages> | ||||
|       </p> | ||||
| 
 | ||||
|       <p><input type="checkbox" :disabled="admin" v-model="lockPassword"> {{ $t('settings.lockPassword') }}</p> | ||||
| 
 | ||||
|       <h2>{{ $t('settings.permissions') }}</h2> | ||||
|       <p class="small">{{ $t('settings.permissionsHelp') }}</p> | ||||
| 
 | ||||
|  | @ -93,6 +95,7 @@ export default { | |||
|       allowEdit: false, | ||||
|       allowCommands: false, | ||||
|       allowPublish: false, | ||||
|       lockPassword: false, | ||||
|       permissions: {}, | ||||
|       password: '', | ||||
|       username: '', | ||||
|  | @ -120,6 +123,7 @@ export default { | |||
|       this.allowEdit = true | ||||
|       this.allowNew = true | ||||
|       this.allowPublish = true | ||||
|       this.lockPassword = false | ||||
|       for (let key in this.permissions) { | ||||
|         this.permissions[key] = true | ||||
|       } | ||||
|  | @ -141,6 +145,7 @@ export default { | |||
|         this.allowNew = user.allowNew | ||||
|         this.allowEdit = user.allowEdit | ||||
|         this.allowPublish = user.allowPublish | ||||
|         this.lockPassword = user.lockPassword | ||||
|         this.filesystem = user.filesystem | ||||
|         this.username = user.username | ||||
|         this.commands = user.commands.join(' ') | ||||
|  | @ -187,6 +192,7 @@ export default { | |||
|       this.allowPublish = false | ||||
|       this.permissins = {} | ||||
|       this.allowCommands = false | ||||
|       this.lockPassword = false | ||||
|       this.password = '' | ||||
|       this.username = '' | ||||
|       this.filesystem = '' | ||||
|  | @ -238,6 +244,7 @@ export default { | |||
|         ID: this.id, | ||||
|         username: this.username, | ||||
|         password: this.password, | ||||
|         lockPassword: this.lockPassword, | ||||
|         filesystem: this.filesystem, | ||||
|         admin: this.admin, | ||||
|         allowCommands: this.allowCommands, | ||||
|  |  | |||
|  | @ -286,6 +286,7 @@ var DefaultUser = User{ | |||
| 	AllowEdit:     true, | ||||
| 	AllowNew:      true, | ||||
| 	AllowPublish:  true, | ||||
| 	LockPassword:  false, | ||||
| 	Commands:      []string{}, | ||||
| 	Rules:         []*Rule{}, | ||||
| 	CSS:           "", | ||||
|  | @ -325,6 +326,9 @@ type User struct { | |||
| 	// Locale is the language of the user.
 | ||||
| 	Locale string `json:"locale"` | ||||
| 
 | ||||
| 	// Prevents the user to change its password.
 | ||||
| 	LockPassword bool `json:"lockPassword"` | ||||
| 
 | ||||
| 	// These indicate if the user can perform certain actions.
 | ||||
| 	AllowNew      bool `json:"allowNew"`      // Create files and folders
 | ||||
| 	AllowEdit     bool `json:"allowEdit"`     // Edit/rename files
 | ||||
|  |  | |||
|  | @ -287,6 +287,10 @@ func usersPutHandler(c *fm.Context, w http.ResponseWriter, r *http.Request) (int | |||
| 			return http.StatusBadRequest, fm.ErrEmptyPassword | ||||
| 		} | ||||
| 
 | ||||
| 		if id == c.User.ID && c.User.LockPassword { | ||||
| 			return http.StatusForbidden, nil | ||||
| 		} | ||||
| 
 | ||||
| 		c.User.Password, err = fm.HashPassword(u.Password) | ||||
| 		if err != nil { | ||||
| 			return http.StatusInternalServerError, err | ||||
|  |  | |||
|  | @ -1 +1 @@ | |||
| 8cd7343b99621ae03aa9fae0a5cb69dcf5b31963 | ||||
| 625c9d7a95a0ae5b69748035174471082ff86489 | ||||
		Loading…
	
		Reference in New Issue