In Jhipster, by default, user creates account by himself and admin activates it.
If we need to create fully working account by admin at once, some changes are necessary in code.
- In src/main/java/.../service/UserService.java
change:
String encryptedPassword = passwordEncoder.encode(RandomUtil.generatePassword()); user.setPassword(encryptedPassword); user.setResetKey(RandomUtil.generateResetKey()); user.setResetDate(ZonedDateTime.now()); user.setActivated(true); userRepository.save(user); userSearchRepository.save(user); log.debug("Created Information for User: {}", user); return user;
to:
// String encryptedPassword = passwordEncoder.encode(RandomUtil.generatePassword()); // user.setPassword(encryptedPassword); // user.setResetKey(RandomUtil.generateResetKey()); // user.setResetDate(ZonedDateTime.now()); user.setPassword(passwordEncoder.encode(managedUserVM.getPassword())); user.setActivated(true); // new user gets registration key user.setActivationKey(RandomUtil.generateActivationKey()); userRepository.save(user); userSearchRepository.save(user); log.debug("Created Information for User: {}", user); return user;
2. in /src/main/webapp/app/admin/user-management/user-management-dialog.html
change:
<div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true" ng-click="vm.clear()">×</button> <h4 class="modal-title" id="myUserLabel" data-translate="userManagement.home.createOrEditLabel"> Create or edit a User</h4> </div>
to:
<div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true" ng-click="vm.clear()">×</button> <h4 class="modal-title" id="myUserLabel" data-translate="userManagement.home.createOrEditLabel"> Create or edit a User</h4> <br> <div class="alert alert-danger" ng-show="(vm.user.password !== vm.confirmPassword)" data-translate="global.messages.error.dontmatch"> The password and its confirmation do not match! </div> </div>
add:
<div class="form-group"> <label class="control-label" for="password" data-translate="global.form.newpassword">New password</label> <input type="password" class="form-control" id="password" name="password" placeholder="{{'global.form.newpassword.placeholder' | translate}}" ng-model="vm.user.password" ng-minlength=4 ng-maxlength=50 required> <div ng-show="form.password.$dirty && form.password.$invalid"> <p class="help-block" ng-show="form.password.$error.required" data-translate="global.messages.validate.newpassword.required"> Your password is required. </p> <p class="help-block" ng-show="form.password.$error.minlength" data-translate="global.messages.validate.newpassword.minlength"> Your password is required to be at least 4 characters. </p> <p class="help-block" ng-show="form.password.$error.maxlength" data-translate="global.messages.validate.newpassword.maxlength"> Your password cannot be longer than 50 characters. </p> </div> <password-strength-bar password-to-check="vm.user.password"></password-strength-bar> </div> <div class="form-group"> <label class="control-label" for="confirmPassword" data-translate="global.form.confirmpassword">New password confirmation</label> <input type="password" class="form-control" id="confirmPassword" name="confirmPassword" placeholder="{{'global.form.confirmpassword.placeholder' | translate}}" ng-model="vm.confirmPassword" ng-minlength=4 ng-maxlength=50 required> <div ng-show="form.confirmPassword.$dirty && form.confirmPassword.$invalid"> <p class="help-block" ng-show="form.confirmPassword.$error.required" data-translate="global.messages.validate.confirmpassword.required"> Your confirmation password is required. </p> <p class="help-block" ng-show="form.confirmPassword.$error.minlength" data-translate="global.messages.validate.confirmpassword.minlength"> Your confirmation password is required to be at least 4 characters. </p> <p class="help-block" ng-show="form.confirmPassword.$error.maxlength" data-translate="global.messages.validate.confirmpassword.maxlength"> Your confirmation password cannot be longer than 50 characters. </p> </div> </div>
and change:
<button type="submit" ng-disabled="editForm.$invalid || isSaving" class="btn btn-primary">
to:
<button type="submit" ng-disabled="editForm.$invalid || isSaving || (vm.user.password !== vm.confirmPassword)" class="btn btn-primary">
uheuh
OdpowiedzUsuń