Added webapps helptext for php options
This commit is contained in:
parent
890708d85f
commit
58c2e778c4
36
TODO.md
36
TODO.md
|
@ -4,27 +4,16 @@ TODO ====
|
||||||
* Don't store passwords and other service parameters that can be changed by the services i.e. mailman, vps etc. Find an execution mechanism that trigger `change_password()`
|
* Don't store passwords and other service parameters that can be changed by the services i.e. mailman, vps etc. Find an execution mechanism that trigger `change_password()`
|
||||||
|
|
||||||
* abort transaction on orchestration when `state == TIMEOUT` ?
|
* abort transaction on orchestration when `state == TIMEOUT` ?
|
||||||
* filter and other user.is_main refactoring
|
|
||||||
* use format_html_join for orchestration email alerts
|
* use format_html_join for orchestration email alerts
|
||||||
|
|
||||||
* generic form for change and display passwords and crack change password form
|
|
||||||
* enforce an emergency email contact and account to contact contacts about problems when mailserver is down
|
* enforce an emergency email contact and account to contact contacts about problems when mailserver is down
|
||||||
|
|
||||||
* add `BackendLog` retry action
|
* add `BackendLog` retry action
|
||||||
* PHPbBckendMiixin with get_php_ini
|
|
||||||
* webmail identities and addresses
|
* webmail identities and addresses
|
||||||
* user.roles.mailbox its awful when combined with addresses:
|
|
||||||
* address.mailboxes filter by account is crap in admin and api
|
|
||||||
* address.mailboxes api needs a mailbox object endpoint (not nested user)
|
|
||||||
* Its not intuitive, users expect to create mailboxes, not users!
|
|
||||||
* Mailbox is something tangible, not a role!
|
|
||||||
* System user vs virtual user:
|
|
||||||
* system user automatically hast @domain.com address :(
|
|
||||||
|
|
||||||
* use Code: https://github.com/django/django/blob/master/django/forms/forms.py#L415 for domain.refresh_serial()
|
* use Code: https://github.com/django/django/blob/master/django/forms/forms.py#L415 for domain.refresh_serial()
|
||||||
* Permissions .filter_queryset()
|
* Permissions .filter_queryset()
|
||||||
|
|
||||||
|
|
||||||
* git deploy in addition to FTP?
|
* git deploy in addition to FTP?
|
||||||
* env vars instead of multiple settings files: https://devcenter.heroku.com/articles/config-vars ?
|
* env vars instead of multiple settings files: https://devcenter.heroku.com/articles/config-vars ?
|
||||||
* optional chroot shell?
|
* optional chroot shell?
|
||||||
|
@ -65,14 +54,6 @@ Remember that, as always with QuerySets, any subsequent chained methods which im
|
||||||
|
|
||||||
* help_text on readonly_fields specialy Bill.state. (eg. A bill is in OPEN state when bla bla )
|
* help_text on readonly_fields specialy Bill.state. (eg. A bill is in OPEN state when bla bla )
|
||||||
|
|
||||||
* Transaction states: CREATED, PROCESSED, EXECUTED, COMMITED, ABORTED (SECURED, REJECTED?)
|
|
||||||
* bill.send() -> transacction.EXECUTED when source=None
|
|
||||||
* transaction.secured() -> bill.paid when bill.total == transaction.value else Error
|
|
||||||
* bill.paid() -> transacton.SECURED
|
|
||||||
* bill.bad_debt() -> transaction.ABORTED
|
|
||||||
* transaction.ABORTED -> bill.bad_debt
|
|
||||||
- Issue new transaction when current transaction is ABORTED
|
|
||||||
|
|
||||||
* underescore *every* private function
|
* underescore *every* private function
|
||||||
|
|
||||||
* create log file at /var/log/orchestra.log and rotate
|
* create log file at /var/log/orchestra.log and rotate
|
||||||
|
@ -149,22 +130,15 @@ Remember that, as always with QuerySets, any subsequent chained methods which im
|
||||||
|
|
||||||
* REST PERMISSIONS
|
* REST PERMISSIONS
|
||||||
|
|
||||||
* caching based on def text2int(textnum, numwords={}) ?:
|
* caching based on "def text2int(textnum, numwords={}):"
|
||||||
|
|
||||||
|
|
||||||
* Subdomain saving should not trigger bind slave
|
|
||||||
|
|
||||||
* multiple files monitoring
|
* multiple files monitoring
|
||||||
|
|
||||||
* Domain validation has to be done with injected records and subdomains
|
* Split plans into a separate app (plans and rates / services ) interface ?
|
||||||
|
|
||||||
* Names: lower andupper case allow or disallow ? webapps/account.username etc
|
|
||||||
|
|
||||||
* Split plans into a separate app (plans and rates / services ) ?
|
|
||||||
|
|
||||||
* sync() ServiceController method that synchronizes orchestra and servers (delete or import)
|
* sync() ServiceController method that synchronizes orchestra and servers (delete or import)
|
||||||
|
|
||||||
* validate address.forward: if mailbox in account.mailboxes then: _("Please use mailboxes field") or consider removing mailbox support on forward (user@pangea.org instead)
|
* consider removing mailbox support on forward (user@pangea.org instead)
|
||||||
|
|
||||||
* remove ordering in account admin and others admininlines
|
* remove ordering in account admin and others admininlines
|
||||||
|
|
||||||
|
@ -198,7 +172,3 @@ Remember that, as always with QuerySets, any subsequent chained methods which im
|
||||||
* validate systemuser.home
|
* validate systemuser.home
|
||||||
|
|
||||||
* webapp backend option compatibility check?
|
* webapp backend option compatibility check?
|
||||||
|
|
||||||
* miscellaneous.indentifier.endswith(('.org', '.es', '.cat'))
|
|
||||||
|
|
||||||
* miscservic icon miscellaneous icon + scissors
|
|
||||||
|
|
|
@ -41,15 +41,6 @@ class ResourceAdmin(ExtendedModelAdmin):
|
||||||
change_readonly_fields = ('name', 'content_type')
|
change_readonly_fields = ('name', 'content_type')
|
||||||
prepopulated_fields = {'name': ('verbose_name',)}
|
prepopulated_fields = {'name': ('verbose_name',)}
|
||||||
|
|
||||||
def add_view(self, request, **kwargs):
|
|
||||||
""" Warning user if the node is not fully configured """
|
|
||||||
if request.method == 'POST':
|
|
||||||
messages.warning(request, mark_safe(_(
|
|
||||||
"Restarting orchestra and celerybeat is required to fully apply changes.<br> "
|
|
||||||
"Remember that new allocated values will be applied when objects are saved."
|
|
||||||
)))
|
|
||||||
return super(ResourceAdmin, self).add_view(request, **kwargs)
|
|
||||||
|
|
||||||
def change_view(self, request, object_id, form_url='', extra_context=None):
|
def change_view(self, request, object_id, form_url='', extra_context=None):
|
||||||
""" Remaind user when monitor routes are not configured """
|
""" Remaind user when monitor routes are not configured """
|
||||||
if request.method == 'GET':
|
if request.method == 'GET':
|
||||||
|
|
|
@ -119,8 +119,6 @@ class Resource(models.Model):
|
||||||
else:
|
else:
|
||||||
PeriodicTask.objects.filter(
|
PeriodicTask.objects.filter(
|
||||||
name=name,
|
name=name,
|
||||||
task='resources.Monitor',
|
|
||||||
args=[self.pk]
|
|
||||||
).delete()
|
).delete()
|
||||||
|
|
||||||
def get_scale(self):
|
def get_scale(self):
|
||||||
|
|
|
@ -123,7 +123,7 @@ class Service(models.Model):
|
||||||
"Related instance can be instantiated with <tt>instance</tt> keyword or "
|
"Related instance can be instantiated with <tt>instance</tt> keyword or "
|
||||||
"<tt>content_type.model_name</tt>.</br>"
|
"<tt>content_type.model_name</tt>.</br>"
|
||||||
"<tt> databaseuser.type == 'MYSQL'</tt><br>"
|
"<tt> databaseuser.type == 'MYSQL'</tt><br>"
|
||||||
"<tt> miscellaneous.active and miscellaneous.service.name.lower() == 'domain .es'</tt><br>"
|
"<tt> miscellaneous.active and miscellaneous.identifier.endswith(('.org', '.net', '.com'))'</tt><br>"
|
||||||
"<tt> contractedplan.plan.name == 'association_fee''</tt><br>"
|
"<tt> contractedplan.plan.name == 'association_fee''</tt><br>"
|
||||||
"<tt> instance.active</tt>"))
|
"<tt> instance.active</tt>"))
|
||||||
handler_type = models.CharField(_("handler"), max_length=256, blank=True,
|
handler_type = models.CharField(_("handler"), max_length=256, blank=True,
|
||||||
|
|
|
@ -107,7 +107,8 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', {
|
||||||
# Processes
|
# Processes
|
||||||
'timeout': (
|
'timeout': (
|
||||||
_("Process timeout"),
|
_("Process timeout"),
|
||||||
_("Maximum time in seconds allowed for a request to complete (a number between 0 and 999)."),
|
_("Maximum time in seconds allowed for a request to complete "
|
||||||
|
"(a number between 0 and 999)."),
|
||||||
# FCGID FcgidIOTimeout
|
# FCGID FcgidIOTimeout
|
||||||
# FPM pm.request_terminate_timeout
|
# FPM pm.request_terminate_timeout
|
||||||
# PHP max_execution_time ini
|
# PHP max_execution_time ini
|
||||||
|
@ -115,7 +116,8 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', {
|
||||||
),
|
),
|
||||||
'processes': (
|
'processes': (
|
||||||
_("Number of processes"),
|
_("Number of processes"),
|
||||||
_("Maximum number of children that can be alive at the same time (a number between 0 and 9)."),
|
_("Maximum number of children that can be alive at the same time "
|
||||||
|
"(a number between 0 and 9)."),
|
||||||
# FCGID MaxProcesses
|
# FCGID MaxProcesses
|
||||||
# FPM pm.max_children
|
# FPM pm.max_children
|
||||||
r'^[0-9]$',
|
r'^[0-9]$',
|
||||||
|
@ -128,25 +130,30 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', {
|
||||||
),
|
),
|
||||||
'PHP-allow_url_include': (
|
'PHP-allow_url_include': (
|
||||||
_("PHP - Allow URL include"),
|
_("PHP - Allow URL include"),
|
||||||
_("On or Off"),
|
_("Allows the use of URL-aware fopen wrappers with include, include_once, require, "
|
||||||
|
"require_once (On or Off)."),
|
||||||
r'^(On|Off|on|off)$'
|
r'^(On|Off|on|off)$'
|
||||||
),
|
),
|
||||||
'PHP-allow_url_fopen': (
|
'PHP-allow_url_fopen': (
|
||||||
_("PHP - allow_url_fopen"),
|
_("PHP - allow_url_fopen"),
|
||||||
_("On or Off"),
|
_("Enables the URL-aware fopen wrappers that enable accessing URL object like files "
|
||||||
|
"(On or Off)."),
|
||||||
r'^(On|Off|on|off)$'
|
r'^(On|Off|on|off)$'
|
||||||
),
|
),
|
||||||
'PHP-auto_append_file': (
|
'PHP-auto_append_file': (
|
||||||
_("PHP - Auto append file"),
|
_("PHP - Auto append file"),
|
||||||
|
_("Specifies the name of a file that is automatically parsed after the main file."),
|
||||||
r'^[\w\.,-/]+$'
|
r'^[\w\.,-/]+$'
|
||||||
),
|
),
|
||||||
'PHP-auto_prepend_file': (
|
'PHP-auto_prepend_file': (
|
||||||
_("PHP - Auto prepend file"),
|
_("PHP - Auto prepend file"),
|
||||||
|
_("Specifies the name of a file that is automatically parsed before the main file."),
|
||||||
r'^[\w\.,-/]+$'
|
r'^[\w\.,-/]+$'
|
||||||
),
|
),
|
||||||
'PHP-date.timezone': (
|
'PHP-date.timezone': (
|
||||||
_("PHP - date.timezone"),
|
_("PHP - date.timezone"),
|
||||||
_("Timezone string 'Europe/London'."),
|
_("Sets the default timezone used by all date/time functions "
|
||||||
|
"(Timezone string 'Europe/London')."),
|
||||||
r'^\w+/\w+$'
|
r'^\w+/\w+$'
|
||||||
),
|
),
|
||||||
'PHP-default_socket_timeout': (
|
'PHP-default_socket_timeout': (
|
||||||
|
@ -156,7 +163,8 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', {
|
||||||
),
|
),
|
||||||
'PHP-display_errors': (
|
'PHP-display_errors': (
|
||||||
_("PHP - Display errors"),
|
_("PHP - Display errors"),
|
||||||
_("On or Off"),
|
_("determines whether errors should be printed to the screen as part of the output or "
|
||||||
|
"if they should be hidden from the user (On or Off)."),
|
||||||
r'^(On|Off|on|off)$'
|
r'^(On|Off|on|off)$'
|
||||||
),
|
),
|
||||||
'PHP-extension': (
|
'PHP-extension': (
|
||||||
|
@ -165,32 +173,37 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', {
|
||||||
),
|
),
|
||||||
'PHP-magic_quotes_gpc': (
|
'PHP-magic_quotes_gpc': (
|
||||||
_("PHP - Magic quotes GPC"),
|
_("PHP - Magic quotes GPC"),
|
||||||
_("On or Off"),
|
_("Sets the magic_quotes state for GPC (Get/Post/Cookie) operations (On or Off) "
|
||||||
|
"<b>DEPRECATED as of PHP 5.3.0</b>."),
|
||||||
r'^(On|Off|on|off)$'
|
r'^(On|Off|on|off)$'
|
||||||
),
|
),
|
||||||
'PHP-magic_quotes_runtime': (
|
'PHP-magic_quotes_runtime': (
|
||||||
_("PHP - Magic quotes runtime"),
|
_("PHP - Magic quotes runtime"),
|
||||||
_("On or Off"),
|
_("Functions that return data from any sort of external source will have quotes escaped "
|
||||||
|
"with a backslash (On or Off) <b>DEPRECATED as of PHP 5.3.0</b>."),
|
||||||
r'^(On|Off|on|off)$'
|
r'^(On|Off|on|off)$'
|
||||||
),
|
),
|
||||||
'PHP-magic_quotes_sybase': (
|
'PHP-magic_quotes_sybase': (
|
||||||
_("PHP - Magic quotes sybase"),
|
_("PHP - Magic quotes sybase"),
|
||||||
_("On or Off"),
|
_("Single-quote is escaped with a single-quote instead of a backslash (On or Off)."),
|
||||||
r'^(On|Off|on|off)$'
|
r'^(On|Off|on|off)$'
|
||||||
),
|
),
|
||||||
'PHP-max_execution_time': (
|
'PHP-max_execution_time': (
|
||||||
_("PHP - Max execution time"),
|
_("PHP - Max execution time"),
|
||||||
_("Number between 0 and 999."),
|
_("Maximum time in seconds a script is allowed to run before it is terminated by "
|
||||||
|
"the parser (Integer between 0 and 999)."),
|
||||||
r'^[0-9]{1,3}$'
|
r'^[0-9]{1,3}$'
|
||||||
),
|
),
|
||||||
'PHP-max_input_time': (
|
'PHP-max_input_time': (
|
||||||
_("PHP - Max input time"),
|
_("PHP - Max input time"),
|
||||||
_("Number between 0 and 999."),
|
_("Maximum time in seconds a script is allowed to parse input data, like POST and GET "
|
||||||
|
"(Integer between 0 and 999)."),
|
||||||
r'^[0-9]{1,3}$'
|
r'^[0-9]{1,3}$'
|
||||||
),
|
),
|
||||||
'PHP-memory_limit': (
|
'PHP-memory_limit': (
|
||||||
_("PHP - Memory limit"),
|
_("PHP - Memory limit"),
|
||||||
_("Value between 0M and 999M."),
|
_("This sets the maximum amount of memory in bytes that a script is allowed to allocate "
|
||||||
|
"(Value between 0M and 999M)."),
|
||||||
r'^[0-9]{1,3}M$'
|
r'^[0-9]{1,3}M$'
|
||||||
),
|
),
|
||||||
'PHP-mysql.connect_timeout': (
|
'PHP-mysql.connect_timeout': (
|
||||||
|
@ -200,36 +213,39 @@ WEBAPPS_OPTIONS = getattr(settings, 'WEBAPPS_OPTIONS', {
|
||||||
),
|
),
|
||||||
'PHP-output_buffering': (
|
'PHP-output_buffering': (
|
||||||
_("PHP - output_buffering"),
|
_("PHP - output_buffering"),
|
||||||
_("On or Off"),
|
_("Turn on output buffering (On or Off)."),
|
||||||
r'^(On|Off|on|off)$'
|
r'^(On|Off|on|off)$'
|
||||||
),
|
),
|
||||||
'PHP-register_globals': (
|
'PHP-register_globals': (
|
||||||
_("PHP - Register globals"),
|
_("PHP - Register globals"),
|
||||||
_("On or Off"),
|
_("Whether or not to register the EGPCS (Environment, GET, POST, Cookie, Server) "
|
||||||
|
"variables as global variables (On or Off)."),
|
||||||
r'^(On|Off|on|off)$'
|
r'^(On|Off|on|off)$'
|
||||||
),
|
),
|
||||||
'PHP-post_max_size': (
|
'PHP-post_max_size': (
|
||||||
_("PHP - Post max size"),
|
_("PHP - Post max size"),
|
||||||
_("Value between 0M and 999M."),
|
_("Sets max size of post data allowed (Value between 0M and 999M)."),
|
||||||
r'^[0-9]{1,3}M$'
|
r'^[0-9]{1,3}M$'
|
||||||
),
|
),
|
||||||
'PHP-sendmail_path': (
|
'PHP-sendmail_path': (
|
||||||
_("PHP - sendmail_path"),
|
_("PHP - sendmail_path"),
|
||||||
|
_("Where the sendmail program can be found."),
|
||||||
r'^[^ ]+$'
|
r'^[^ ]+$'
|
||||||
),
|
),
|
||||||
'PHP-session.bug_compat_warn': (
|
'PHP-session.bug_compat_warn': (
|
||||||
_("PHP - session.bug_compat_warn"),
|
_("PHP - session.bug_compat_warn"),
|
||||||
_("On or Off"),
|
_("Enables an PHP bug on session initialization for legacy behaviour (On or Off)."),
|
||||||
r'^(On|Off|on|off)$'
|
r'^(On|Off|on|off)$'
|
||||||
),
|
),
|
||||||
'PHP-session.auto_start': (
|
'PHP-session.auto_start': (
|
||||||
_("PHP - session.auto_start"),
|
_("PHP - session.auto_start"),
|
||||||
_("On or Off"),
|
_("Specifies whether the session module starts a session automatically on request "
|
||||||
|
"startup (On or Off)."),
|
||||||
r'^(On|Off|on|off)$'
|
r'^(On|Off|on|off)$'
|
||||||
),
|
),
|
||||||
'PHP-safe_mode': (
|
'PHP-safe_mode': (
|
||||||
_("PHP - Safe mode"),
|
_("PHP - Safe mode"),
|
||||||
_("On or Off"),
|
_("Whether to enable PHP's safe mode (On or Off) <b>DEPRECATED as of PHP 5.3.0</b>"),
|
||||||
r'^(On|Off|on|off)$'
|
r'^(On|Off|on|off)$'
|
||||||
),
|
),
|
||||||
'PHP-suhosin.post.max_vars': (
|
'PHP-suhosin.post.max_vars': (
|
||||||
|
|
Loading…
Reference in a new issue