destinations
1 year ago
modal
10 months ago
settings
1 week ago
404.htm
1 year ago
alerts.htm
1 year ago
backups.htm
1 year ago
dashboard.htm
1 year ago
destinations.htm
9 months ago
downloads.htm
1 year ago
jobs.htm
1 year ago
main.htm
1 year ago
mfa.htm
1 year ago
queue.htm
1 year ago
schedules.htm
1 year ago
settings.htm
1 year ago
system.htm
11 months ago
mfa.htm
84 lines
| 1 | <div ng-controller="mfa" class="jb-list-backups-container jb-grey-0"> |
| 2 | |
| 3 | <div class="row" navigation active="menuItem"></div> |
| 4 | <div class="row rounded-4 jb-white-0 jb-panel-row shadow-lg"> |
| 5 | |
| 6 | <!-- Main Title Section --> |
| 7 | <div class="jb-main-title rounded-3"> |
| 8 | {{ isFirstTime ? lang.t("Enable Multi-Factor Authentication (MFA)") : lang.t("Multi-Factor Authentication (MFA)") }} |
| 9 | <p>{{ isFirstTime ? lang.t("Secure your plugin by enabling MFA. Scan the QR code below and enter the generated code to activate MFA for your account.") : lang.t("This account has MFA protection enabled.") }}</p> |
| 10 | </div> |
| 11 | |
| 12 | <div class="row justify-content-center"> |
| 13 | <!-- MFA Activation for First Time Users --> |
| 14 | <div ng-if="isFirstTime" class="col-md-6 p-4 rounded bg-white"> |
| 15 | |
| 16 | <!-- QR Code Section --> |
| 17 | <div class="text-center mb-4"> |
| 18 | <h5 class="fw-semibold">{{ lang.t("Scan the QR Code") }}</h5> |
| 19 | <p class="text-muted">{{ lang.t("Use your preferred authenticator app to scan the QR code below:") }}</p> |
| 20 | <div class="border rounded p-3"> |
| 21 | <img ng-src="{{qrCode}}" alt="{{ lang.t('QR Code') }}" class="img-fluid"> |
| 22 | </div> |
| 23 | </div> |
| 24 | |
| 25 | <!-- Input Section --> |
| 26 | <div class="mb-4"> |
| 27 | <h5 class="fw-semibold">{{ lang.t("Enter the Code") }}</h5> |
| 28 | <p class="text-muted">{{ lang.t("After scanning the QR code, enter the 6-digit code generated by your authenticator app below:") }}</p> |
| 29 | <div class="input-group"> |
| 30 | <input type="text" max="6" class="form-control" placeholder="{{ lang.t('Enter MFA Code') }}" ng-model="mfaCode"> |
| 31 | </div> |
| 32 | <small class="text-muted d-block mt-2">{{ lang.t("Ensure the code is entered before it expires in your app.") }}</small> |
| 33 | </div> |
| 34 | |
| 35 | |
| 36 | <!-- Action Buttons --> |
| 37 | <div class="text-center"> |
| 38 | <button class="btn btn-primary w-100 jb_button" |
| 39 | ng-click="validateMFA(mfaCode)" |
| 40 | ng-disabled="isValidating"> |
| 41 | <span ng-if="isValidating" class="spinner-border spinner-border-sm me-2" role="status" aria-hidden="true"></span> |
| 42 | {{ lang.t("Activate MFA") }} |
| 43 | </button> |
| 44 | <button class="btn btn-outline-secondary w-100 mt-2" |
| 45 | ng-click="skipMfa()" |
| 46 | ng-disabled="isSkipping"> |
| 47 | <span ng-if="isSkipping" class="spinner-border spinner-border-sm me-2" role="status" aria-hidden="true"></span> |
| 48 | {{ lang.t("Skip for Now") }} |
| 49 | </button> |
| 50 | </div> |
| 51 | |
| 52 | </div> |
| 53 | |
| 54 | <!-- MFA Validation for Existing Users --> |
| 55 | <div ng-if="!isFirstTime" class="col-md-6 p-4 rounded bg-white"> |
| 56 | |
| 57 | <!-- Input Section --> |
| 58 | <div class="mb-4"> |
| 59 | <h5 class="fw-semibold">{{ lang.t("Enter the Code") }}</h5> |
| 60 | <div class="input-group"> |
| 61 | <input type="text" max="6" class="form-control" placeholder="{{ lang.t('Enter MFA Code') }}" ng-model="mfaCode"> |
| 62 | </div> |
| 63 | <small class="text-muted d-block mt-2">{{ lang.t("Ensure the code is entered before it expires in your app.") }}</small> |
| 64 | </div> |
| 65 | |
| 66 | <!-- Action Buttons --> |
| 67 | <div class="text-center"> |
| 68 | <button class="btn btn-primary w-100 jb_button" |
| 69 | ng-click="validateMFA(mfaCode)" |
| 70 | ng-disabled="isValidating"> |
| 71 | <span ng-if="isValidating" class="spinner-border spinner-border-sm me-2" role="status" aria-hidden="true"></span> |
| 72 | {{ lang.t("Validate MFA") }} |
| 73 | </button> |
| 74 | </div> |
| 75 | |
| 76 | |
| 77 | |
| 78 | </div> |
| 79 | |
| 80 | </div> |
| 81 | |
| 82 | </div> |
| 83 | </div> |
| 84 |