Viewing File: /usr/local/cpanel/base/frontend/jupiter/user_manager/views/editView.ptt

<ol class="breadcrumb">
    <li><a href="" ng-click="loadView('list/rows', { loadFromCache: true }, { clearAlerts: true})">[% locale.maketext('User Manager') %]</a></li>
    <li class="active">[% locale.maketext('Edit User') %]</li>
</ol>
<span spinner id="loadingSpinner" class="headerSpinner" glyph-class="fas fa-sync" title="[% locale.maketext('Loading …') %]"></span>

<cp-alert-list></cp-alert-list>
<cp-issue-list issues="ui.user.issues" id-prefix="edit_view"></cp-issue-list>
<div class="section">
    <form novalidate name="form" prevent-navigation-on-backspace class="ng-hide" ng-show="!ui.isLoading">
        <input id="hiddenGuid" type="hidden" name="guid" ng-model="ui.user.guid">
        <h4 class="section-heading">
            [% locale.maketext('Basic Information') %]
        </h4>
        <div class="section-body">
            <div class="row form-group ng-hide" ng-show="canPromote(ui.user)">
                <div class="col-xs-12">
                    <label for="full-name">
                        [% locale.maketext('Full Name') %]
                    </label>
                </div>
                <div class="col-xs-12">
                    <div class="row">
                        <div class="col-xs-12 col-sm-8 col-md-6">
                            <input  id="full-name"
                                    name="full-name"
                                    class="form-control"
                                    placeholder="John S. Doe"
                                    title="[% locale.maketext('The user’s full name.') %]"
                                    ng-model="ui.user.real_name"
                                    ng-maxlength="256"
                                    pattern="[^<>&]*"
                                    auto-focus="canPromote(ui.user)"
                                    ng-disabled="ui.isSaving">
                        </div>
                        <div class="col-xs-12 col-sm-4 col-md-6">
                           <ul validation-container field-name="full-name">
                               <li validation-item field-name="full-name" validation-name="pattern" id="val-full-name-invalid-pattern">
                                   [% locale.maketext('The full name cannot include the following special characters: [list_or_quoted,_1].', ['<','>','&']) %]
                               </li>
                               <li validation-item field-name="full-name" validation-name="maxlength" id="val-full-name-max-length">
                                   [% locale.maketext('The full name cannot exceed 256 characters.') %]
                               </li>
                           </ul>
                        </div>
                    </div>
                </div>
            </div>

            <div class="row form-group">
                <div class="col-xs-12">
                    <label for="username">
                        [% locale.maketext('Username') %]
                    </label>
                </div>
                <div class="col-xs-12">
                    <div class="row">
                        <div class="col-xs-12 col-sm-8 col-md-6">
                            <div class="input-group">
                                <input  id="username"
                                        name="username"
                                        required
                                        readonly
                                        username="cpanel"
                                        class="form-control"
                                        title="[% locale.maketext('The user’s username.') %]"
                                        ng-model="ui.user.username">
                                <span class="input-group-addon">@</span>
                            </div>
                        </div>
                        <div class="col-xs-12 col-sm-4 col-md-6">
                        </div>
                    </div>
                </div>
            </div>

            <div class="row form-group">
                <div class="col-xs-12">
                    <label for="domain">
                        [% locale.maketext('Domain') %]
                    </label>
                </div>
                <div class="col-xs-12">
                    <div class="row">
                        <div class="col-xs-12 col-sm-8 col-md-6">
                            <input id="domain"
                                   name="domain"
                                   class="form-control"
                                   readonly
                                   title="[% locale.maketext('The user’s domain.') %]"
                                   ng-model="ui.user.domain">
                        </div>
                        <div class="col-xs-12 col-sm-4 col-md-6">
                        </div>
                    </div>
                </div>
            </div>

            <div class="row form-group ng-hide" ng-show="canPromote(ui.user)">
                <div class="col-xs-6">
                    <toggle-label-info
                         for="recovery-email"
                         label-text="[% locale.maketext('Contact Email Address') %]"
                         label-id="lblRecoveryEmail"
                         info-icon-id="icoRecoveryEmail"
                         info-block-id="txtRecoverEmailInfo"
                         show-info-block="false">
                         [% locale.maketext('The system sends account notifications and password reset confirmations to this email address.') %]
                    </toggle-label-info>
                </div>
                <div class="col-xs-12">
                    <div class="row">
                        <div class="col-xs-12 col-sm-8 col-md-6">
                            <input  id="recovery-email"
                                    name="recovery-email"
                                    email="rfc"
                                    email-not-reserved-include-sub-addresses="{{ ui.user.username + '@' + ui.user.domain }}"
                                    class="form-control"
                                    placeholder="alt.email@another.domain.tld"
                                    title="[% locale.maketext('Enter an alternate email address for the user.') %]"
                                    ng-model="ui.user.alternate_email"
                                    ng-disabled="ui.isSaving">
                        </div>
                        <div class="col-xs-12 col-sm-4 col-md-6">
                           <ul validation-container field-name="recovery-email">
                               <li validation-item field-name="recovery-email" validation-name="required" id="val-recovery-email-required">
                                   [% locale.maketext('You must complete this field.') %]
                               </li>
                           </ul>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <h4 class="section-heading">
            [% locale.maketext('Security Information') %]
        </h4>

        <!-- prevent password autofill -->
        <input type="text" style="display:none">
        <input type="password" autocomplete='off' style="display:none">

        <div class="section-body">
            <div class="row form-group">
                <div class="col-xs-12">
                    <label for="password">
                        [% locale.maketext('Password') %]
                    </label>
                </div>
                <div class="form-group col-xs-12">
                    <div class="row">
                        <div class="col-xs-12 col-sm-8 col-md-6">
                            <password name="password"
                                      auto-focus="!canPromote(ui.user)"
                                      title="[% locale.maketext('The user’s password.') %]"
                                      minimum-strength="{{minimumPasswordStrength}}"
                                      placeholder="[% locale.maketext('Enter Password') %]"
                                      password="ui.user.password"
                                      show-meter="true"
                                      show-strength="true"
                                      show-generator="true"
                                      minimum-length="5"
                                      generate-button-tab-index="-1"
                                      toggle-view-button-tab-index="-1"
                                      generate-settings-tab-index="-1"
                                      strength-meets-template="[% locale.lextext('This password has a strength of [numf,_1] which meets or exceeds the system requirement of [numf,_2].') %]"
                                      strength-does-not-meet-template="[% locale.lextext('The password has a strength of [numf,_1], but your system requires a strength of [numf,_2].') %]"
                                      password-strength="passwordStrength"
                                      ng-disabled="ui.isSaving">
                        </div>
                        <div class="col-xs-12 col-sm-4 col-md-6">
                           <ul validation-container field-name="password">
                               <li validation-item field-name="password" validation-name="minlength" id="val-password-minlength">
                                   [% locale.maketext('You must provide a password with at least 5 characters.') %]
                               </li>
                               <li validation-item field-name="password" validation-name="maxlength" id="val-password-maxlength">
                                   [% locale.maketext('You must provide a password with no more than 18 characters.') %]
                               </li>
                               <li validation-item field-name="password" validation-name="minimumPasswordStrength" id="val-password-minimum-strength">
                                   [% locale.maketext('You must provide a stronger password.') %]
                               </li>
                           </ul>
                        </div>
                    </div>
                </div>
            </div>

            <div class="row form-group">
                <div class="col-xs-12">
                    <label for="password-confirm">
                        [% locale.maketext('Password (Again)') %]
                        <label-suffix for="password-confirm"></label-suffix>
                    </label>
                </div>
                <div class="col-xs-12 col-sm-8 col-md-6">
                    <input  id="password-confirm"
                            name="password-confirm"
                            type="password"
                            class="form-control"
                            autocomplete="new-password"
                            validate-equals="form.password"
                            title="[% locale.maketext('Confirm the user’s password.') %]"
                            ng-model="ui.user.passwordConfirm"
                            ng-disabled="ui.isSaving"
                            ng-required="ui.user.password">
                </div>
                <div class="col-xs-12 col-sm-4 col-md-6">
                   <ul validation-container field-name="password-confirm">
                        <li validation-item field-name="password-confirm" validation-name="required" id="val-password-confirm-required">
                           [% locale.maketext('You must confirm the password.') %]
                       </li>
                       <li validation-item field-name="password-confirm" validation-name="validateEquals" id="val-password-confirm-match">
                           [% locale.maketext('The passwords do not match.') %]
                       </li>
                   </ul>
                </div>
            </div>
        </div>

        <h4 id="servicesSectionHeader" class="section-heading"
            ng-if="ui.user.services.email.supports.allowed || ui.user.services.ftp.supports.allowed || ui.user.services.webdisk.supports.allowed">
                [% locale.maketext('Services') %]
        </h4>
        <div id="servicesSection" class="section-body"
             ng-if="((emailDaemon.enabled && features.email) || (!emailDaemon.enabled && ui.originalServices.email.enabled)) || ((ftpDaemon.enabled && features.ftp) || (!ftpDaemon.enabled && ui.originalServices.ftp.enabled)) || ((webdiskDaemon.enabled && features.webdisk) || (!webdiskDaemon.enabled && ui.originalServices.webdisk.enabled))">
            <div class="row">
                <div id="emailServiceSection" class="col-xs-12 col-sm-6 col-md-4" ng-if="(emailDaemon.enabled && features.email && isAllowed(ui.user, ui.user.services.email)) || (!emailDaemon.enabled && ui.originalServices.email.enabled)">
                    <div email-config
                         name="email-config"
                         ng-model="ui.user.services.email"
                         ng-disabled="ui.isSaving || (!ui.originalServices.email.enabled && !canAddServices(ui.user))"
                         show-toggle="canPromote(ui.user)"
                         show-unlink="showUnlink(ui.user, 'email')"
                         unlink-service="unlinkService(ui.user, 'email')"
                         is-in-progress="isInProgress()"
                         toggle-service="toggleService(ui.user.services.email)"
                         link-action="linkServices(ui.user)"
                         show-info="!ui.originalServices.email.enabled && ui.user.services.email.enabled && canAddServices(ui.user)"
                         info-message="[% locale.maketext('This service uses the [asis,Subaccount’s] password.') %]"
                         show-warning="(!ui.originalServices.email.enabled && !canAddServices(ui.user))"
                         warning-message="[% locale.maketext('You must provide a password to enable this service.') %]">
                    </div>
                </div>
                <div id="ftpServiceSection" class="col-xs-12 col-sm-6 col-md-4" ng-if="(ftpDaemon.enabled && features.ftp && isAllowed(ui.user, ui.user.services.ftp)) || (!ftpDaemon.enabled && ui.originalServices.ftp.enabled)">
                    <div ftp-config
                         name="ftp-config"
                         ng-model="ui.user.services.ftp"
                         ng-disabled="ui.isSaving || (!ui.originalServices.ftp.enabled && !canAddServices(ui.user))"
                         show-toggle="canPromote(ui.user)"
                         show-unlink="showUnlink(ui.user, 'ftp')"
                         unlink-service="unlinkService(ui.user, 'ftp')"
                         is-in-progress="isInProgress()"
                         toggle-service="toggleService(ui.user.services.ftp)"
                         link-action="linkServices(ui.user)"
                         show-info="!ui.originalServices.ftp.enabled && ui.user.services.ftp.enabled && canAddServices(ui.user)"
                         info-message="[% locale.maketext('This service uses the [asis,Subaccount’s] password.') %]"
                         show-warning="(!ui.originalServices.ftp.enabled && !canAddServices(ui.user))"
                         warning-message="[% locale.maketext('You must provide a password to enable this service.') %]">
                    </div>
                </div>
                <div id="webdiskServiceSection" class="col-xs-12 col-sm-6 col-md-4" ng-if="(webdiskDaemon.enabled && features.webdisk && isAllowed(ui.user, ui.user.services.webdisk)) || (!webdiskDaemon.enabled && ui.originalServices.webdisk.enabled)">
                    <div webdisk-config
                         name="webdisk-config"
                         ng-model="ui.user.services.webdisk"
                         ng-disabled="ui.isSaving || (!ui.originalServices.webdisk.enabled && !canAddServices(ui.user))"
                         show-toggle="canPromote(ui.user)"
                         show-unlink="showUnlink(ui.user, 'webdisk')"
                         unlink-service="unlinkService(ui.user, 'webdisk')"
                         is-in-progress="isInProgress()"
                         toggle-service="toggleService(ui.user.services.webdisk)"
                         link-action="linkServices(ui.user)"
                         enable-digest-controls="canEnableDigest(ui.user)"
                         show-digest-warning="showDigestRequiresPasswordWarning(ui.user)"
                         show-info="!ui.originalServices.webdisk.enabled && ui.user.services.webdisk.enabled && canAddServices(ui.user)"
                         info-message="[% locale.maketext('This service uses the [asis,Subaccount’s] password.') %]"
                         show-warning="(!ui.originalServices.webdisk.enabled && !canAddServices(ui.user))"
                         warning-message="[% locale.maketext('You must provide a password to enable this service.') %]">
                    </div>
                </div>
            </div>
        </div>

        <action-button id="btn-save"
                class="btn btn-primary"
                type="submit"
                cp-action="update(ui.user)"
                ng-disabled="isOverQuota || !form.$valid || isInProgress()">
                [% locale.maketext('Save') %]
        </action-button>
        <button id="btn-cancel-edit"
                class="btn btn-link"
                ng-click="loadView('list/rows', { loadFromCache: true }, { clearAlerts: true })">
                [% locale.maketext('Cancel') %]
        </button>

    </form>
</div>
Back to Directory File Manager