Plain password reset for a user

This commit is contained in:
Johannes Zellner
2021-09-16 14:35:17 +02:00
parent 14478919e6
commit ea3726f88b
5 changed files with 30 additions and 72 deletions

View File

@@ -321,34 +321,26 @@
</div>
</div>
<!-- Modal invite/reset -->
<div class="modal fade" id="invitationModal" tabindex="-1" role="dialog">
<!-- Modal password reset -->
<div class="modal fade" id="passwordResetModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">{{ 'users.passwordResetDialog.title' | tr:{ username: (invitation.user.username || invitation.user.email) } }}</h4>
<h4 class="modal-title">{{ 'users.passwordResetDialog.title' | tr:{ username: (passwordReset.user.username || passwordReset.user.email) } }}</h4>
</div>
<div class="modal-body">
<div ng-hide="invitation.setupLink">
<div ng-hide="passwordReset.resetLink">
<p>{{ 'users.passwordResetDialog.resetLinkExplanation' | tr }}</p>
<button type="button" class="btn btn-primary" ng-click="invitation.generateNewLink()" ng-disabled="invitation.busyNew"><i class="fa fa-circle-notch fa-spin" ng-show="invitation.busyNew"></i> {{ 'users.passwordResetDialog.newLinkAction' | tr }}</button>
<button type="button" class="btn btn-primary" ng-click="passwordReset.submit()" ng-disabled="passwordReset.busy"><i class="fa fa-circle-notch fa-spin" ng-show="passwordReset.busy"></i> {{ 'users.passwordResetDialog.newLinkAction' | tr }}</button>
</div>
<div ng-show="invitation.setupLink">
<p>{{ 'users.passwordResetDialog.description' | tr:{ username: (invitation.user.username || invitation.user.email) } }}</p>
<div ng-show="passwordReset.resetLink">
<p>{{ 'users.passwordResetDialog.description' | tr:{ username: (passwordReset.user.username || passwordReset.user.email) } }}</p>
<div class="input-group" style="margin-bottom: 10px">
<input type="text" id="setupLinkInput" class="form-control" ng-value="invitation.setupLink" readonly/>
<input type="text" id="passwordResetLinkInput" class="form-control" ng-value="passwordReset.resetLink" readonly/>
<span class="input-group-btn">
<button class="btn btn-default" id="setupLinkButton" type="button" data-clipboard-target="#setupLinkInput"><i class="fa fa-clipboard"></i></button>
<button class="btn btn-default" id="setupLinkButton" type="button" data-clipboard-target="#passwordResetLinkInput"><i class="fa fa-clipboard"></i></button>
</span>
</div>
<button type="button" class="btn btn-success" ng-click="invitation.email()" ng-hide="invitation.successSend" ng-disabled="invitation.busySend"><i class="fa fa-circle-notch fa-spin" ng-show="invitation.busySend"></i> {{ 'users.passwordResetDialog.sendEmailLinkAction' | tr }}</button>
<b class="text-success" ng-show="invitation.successSend">{{ 'users.passwordResetDialog.emailSent' | tr }}</b>
</div>
<hr/>
<div>
<p ng-hide="invitation.user.twoFactorAuthenticationEnabled">{{ 'users.passwordResetDialog.no2FASetup' | tr }}</p>
<p ng-show="invitation.user.twoFactorAuthenticationEnabled">{{ 'users.passwordResetDialog.2FAIsSetup' | tr }}</p>
<button type="button" class="btn btn-danger" ng-click="invitation.reset2FA()" ng-disabled="!invitation.user.twoFactorAuthenticationEnabled || invitation.reset2FABusy"><i class="fa fa-circle-notch fa-spin" ng-show="invitation.reset2FABusy"></i> {{ 'users.passwordResetDialog.reset2FAAction' | tr }}</button>
</div>
</div>
<div class="modal-footer">
@@ -530,7 +522,7 @@
<td class="text-right no-wrap" style="vertical-align: bottom">
<button ng-show="isMe(user) && userInfo.role === 'owner' && user.role === 'owner' && !config.features.userRoles" class="btn btn-xs btn-default" ng-click="transferOwnership.show()" uib-tooltip="{{ 'users.users.transferOwnershipTooltip' | tr }}"><i class="fas fa-random"></i></button>
<button ng-disabled="!canEdit(user) || isMe(user) || user.source" class="btn btn-xs btn-default" ng-click="invitation.show(user)" uib-tooltip="{{ 'users.users.resetPasswordTooltip' | tr }}"><i class="fas fa-paper-plane"></i></button>
<button ng-disabled="!canEdit(user) || isMe(user) || user.source" class="btn btn-xs btn-default" ng-click="passwordReset.show(user)" uib-tooltip="{{ 'users.users.resetPasswordTooltip' | tr }}"><i class="fas fa-key"></i></button>
<button ng-disabled="!canEdit(user)" class="btn btn-xs btn-default" ng-click="useredit.show(user)" uib-tooltip="{{ 'users.users.editUserTooltip' | tr }}"><i class="fa fa-pencil-alt"></i></button>
<button ng-disabled="!canEdit(user) || isMe(user)" class="btn btn-xs btn-danger" ng-click="userremove.show(user)" uib-tooltip="{{ 'users.users.removeUserTooltip' | tr }}"><i class="far fa-trash-alt"></i></button>
</td>