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