[%
# Copyright 2025 WebPros International, LLC
# All rights reserved.
# copyright@cpanel.net http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited.
USE Net;
USE CPSort;
USE JSON;
USE Whostmgr;
USE AccountEnhancements;
USE NVData;
USE ExpVar;
SET enhancements = AccountEnhancements.list();
SET spamassassin_disabled_title = locale.maketext('You cannot disable this option when the “[asis,Apache SpamAssassin™]: Forced Global ON” setting is enabled in the “[_1]” interface.', locale.maketext('Exim Configuration Manager'));
SET worker_settings = {};
FOR worker = data.mail_workers;
worker_settings.${worker.alias} = worker.system_settings;
END;
SET pkg_system_default_values = {};
FOR pkg = data.package_defaults.keys;
pkg_system_default_values.${pkg} = data.package_defaults.$pkg.default;
END;
IF data.locked_to_mail_worker;
SET spamassassin_globally_enabled = worker_settings.values().0.Mail.globalspamassassin;
ELSE;
SET spamassassin_globally_enabled = data.spamassassin_globally_enabled;
END;
SET over_account_limit = 0;
IF data.number_of_accounts_remain <= 0 && data.check_user_account_limits;
over_account_limit = 1;
END;
SET manual_resources_help = [];
SET custom_controls = [];
SET no_package_defaults = {};
SET acl_add_pkg = 'settings-acl_add-pkg';
SET acl_not_edit_account = 'settings-acl_not_edit-account';
SET acl_edit_account = 'settings-acl_edit-account';
# The below (10**12 - 1) is used purely for display purposes to ensure
# a reasonable width on the type=number inputs:
SET DEFAULT_NUMBER_LIMIT = 999999999999;
SET reboot_url = "$cp_security_token/scripts/graceful_reboot_landing?suggest=1";
WRAPPER 'master_templates/master.tmpl'
app_key = 'create_a_new_account'
breadcrumburl = '/scripts5/wwwacctform'
theme = 'bootstrap'
scripts = [
'/js/sorttable.js',
'/templates/accounts/createacct.min.js',
'/templates/common/collapsible_wrapper/collapsible_wrapper.min.js'
]
stylesheets = [
'/cjt/css/ajaxapp-min.css',
'/templates/common/revised_notices.min.css',
'/templates/packages/common.min.css',
'/templates/accounts/createacct.min.css',
'/templates/common/collapsible_wrapper/collapsible_wrapper.min.css'
]
extrastyle = ''
include_legacy_stylesheets = 1
-%]
[%# TODO: Copy this to account transfers. -%]
[% IF Whostmgr.get_max_users() && Whostmgr.minimum_accounts_needed( Whostmgr.get_max_users() ) %]
[%- PROCESS 'menu/_license_excess_create.tmpl' -%]
[% ELSIF !data.$acl_edit_account && !data.all_pkgs.size && !data.invalid_nameserver_setup -%]
[% locale.maketext('Your nameserver setup in [output,url,_1,Basic WebHost Manager® Setup] is invalid. Please enter at least two nameservers there before attempting to create an account.', "$cp_security_token/scripts/editsets") %]
[% ELSE -%]
[% locale.maketext('A strong password is very important to maintain security. Web servers are usually more powerful and have access to greater bandwidth than your personal computer, which makes them a prime target for [output,url,_1,password crackers,target,_blank].', "http://en.wikipedia.org/wiki/Password_cracking") %]
[% locale.maketext("We [output,strong,strongly recommend] that you use the built-in password generator to create your password.") %]
[% SET show_limits_summary = 'settings-show_limits_summary' %]
[% IF data.$show_limits_summary %]
[% SET limits_accounts = 'settings-limits_accounts' %]
[% IF data.$limits_accounts %]
[% locale.maketext("Account Limits") %]
| Limit |
|
Information |
[% SET limits_number_of_accounts = 'settings-limits_number_of_accounts' %]
[% IF data.$limits_number_of_accounts %]
| [% locale.maketext("Number of Accounts") %] |
[% data.number_of_accounts %] / [% data.number_of_accounts_allowed %] |
[% IF over_account_limit %]
| [% locale.maketext("You have reached your account limit quota. You cannot create new accounts.") %]
|
[% END %]
[% END %]
[% SET limits_resources = 'settings-limits_resources' %]
[% IF data.$limits_resources %]
| [% locale.maketext("Disk Space") %] |
[% data.disk_used %] / [% data.disk_allowed %] |
[% SET overselling_disk = 'settings-overselling_disk' %]
[% IF data.$overselling_disk %]
[% locale.maketext("Your Disk Usage Limit is calculated based on how much disk space all your accounts have used.") %]
[% ELSE %]
[% locale.maketext("Your Disk Usage Limit is calculated based on how much disk space all your accounts have been allocated.") %]
[% END %]
|
| [% locale.maketext("Bandwidth") %] |
[% data.bw_used %] / [% data.bw_allowed %] |
[% SET overselling_bw = 'settings-overselling_bw' %]
[% IF data.$overselling_bw %]
[% locale.maketext("Your Bandwidth Usage Limit is calculated based on how much bandwidth all your accounts have used.") %]
[% ELSE %]
[% locale.maketext("Your Bandwidth Usage Limit is calculated based on how much bandwidth all your accounts have been allocated.") %]
[% END %]
|
[%# limits_resources %]
[% END %]
[%# limits_accounts %]
[% END %]
[% SET limits_resources = 'settings-limits_resources' %]
[% IF data.$limits_resources %]
[% locale.maketext("Accounts Limits Based on Resources") %]
[% locale.maketext("The following limits show how many accounts could be created based on your remaining resources. If account creation is limited by a specific number of accounts then you may not be able to create as many accounts as listed below.") %]
| [% locale.maketext("Package") %] |
|
[% locale.maketext("Limiting Factor") %] |
[% FOREACH resource_package IN data.resource_pkg_list %]
| [% resource_package.pkg %] |
[% resource_package.current %] / [% resource_package.max_allowed %] |
![[% resource_package.limit_image %]](/images/[% resource_package.limit_image %]_24.gif) |
[% END %]
[% SET incompat_pkgs = 'settings-incompat_pkgs' %]
[% IF data.$incompat_pkgs %]
[% locale.maketext("The following packages have been disabled because they have unlimited bandwidth or quota limits:") %]
[% FOREACH incompatible_package IN data.incompat_pkg_list %]
- [% incompatible_package.pkg %]
[% END %]
[% END %]
[%# limits_resources %]
[% END %]
[% SET show_limits_number_of_packages = 'settings-show_limits_number_of_packages' %]
[% IF data.$show_limits_number_of_packages %]
[% locale.maketext("Per Account Quantity Limits") %]
| Package |
|
[% FOREACH number_package IN data.number_pkg_list %]
| [% number_package.pkg %] |
[% number_package.current %] / [% number_package.max_allowed %] |
[% END %]
[% END %]
[%# show_limits_summary %]
[% END -%]
[%~ MACRO manualSettingControl(prefix, resource_obj, defaultvalue, min, max) BLOCK ~%]
[% SET select_unlimited = resource_obj.default == 'unlimited' -%]
[% END %]
[%~ MACRO manualResource(resource_name) BLOCK ~%]
[% SET resource_obj = data.package_schema.$resource_name -%]
[% SET unlimited = resource_obj.default == 'unlimited' ? 1 : 0 %]
[% SET default_value = unlimited ? resource_obj.min : resource_obj.default %]
[% custom_controls.push( {
name => resource_name,
label => resource_obj.label,
min => resource_obj.min,
max => resource_obj.max,
default => resource_obj.default,
} ) -%]
[% locale.makevar(resource_obj.label) -%]
[% IF resource_obj.help_text -%]
[% manual_resources_help.push([resource_name, resource_obj]) %]
[% END -%]
[% manualSettingControl(resource_name, resource_obj, default_value, resource_obj.min, resource_obj.max) %]
[% END %]
[%-
SET whm_variables = Whostmgr.template_vars;
SET show_reboot_banner = Whostmgr.check_flag('CPCONF=show_reboot_banner'),
needs_reboot_result = whm_variables.needs_reboot;
-%]
[%- IF Whostmgr.hasroot() && show_reboot_banner && needs_reboot_result.needs_cloudlinux -%]
[% locale.maketext('[output,strong,Warning:] You must [output,url,_1,reboot,target,_blank] your server to start using [output,strong,CloudLinux features].', reboot_url) %]
[%- END -%]
[%- IF Whostmgr.exists('.cpanel-onboot') -%]
[% locale.maketext('[output,strong,Warning:] Please wait for [output,strong,cpanel-onboot.service] to finish before creating one account. [output,em,Please Refresh this page to update this warning]') %]
[%- END -%]
[% END #invalid_nameserver_setup -%]
[% PROCESS '_ajaxapp_footer.tmpl' -%]
[% END %]
[% IF data.mail_workers.size %]
[% END -%]
[% END #wrapper -%]