Eliminated e107 dependency on the MySQL/MariaDB CREATE PROCEDURE permission
As a bonus, any attempt to use e107's native custom sorting (e.g.
`?field=cat_name&asc=desc`) will preserve the correct tree hierarchy. The past
behavior was to sort as requested but keep showing depth, even though the
apparent tree hierarchy would be wrong.
Fixes: #3015
Supercedes: #2929
db_verify::diffStructurePermissive() now checks for all MySQL/MariaDB numeric
types and permissively allows the expected and actual default values to be
strings rather than numerical.
Fixes: #3011
Related: #2998
Some e107 users and admins may use whitespace in their passwords, but the
client-side HTML validation currently prohibited them by default.
The server accepts passwords with whitespace if this client-side validation is
disabled, so there does not appear to be a technical reason for this
restriction.
This commit allows whitespaces in passwords by default.
Fixes: #3006
SMTP server max string length increased from 50 to 128
SMTP username max string length increased from 50 to 128
SMTP password max string length increased from 50 to 128
SMTP password is actually optional now, as intended
SMTP password now accepts spaces
SMTP password needs to be at least 4 characters long
Autocomplete disabled for Firefox 38+, Chrome 34+, and Internet Explorer 11+
Fixes: #3003
Regression in #2999 prevents db_verify from distinguishing fields from indices
This prevents database migrations where both the fields and the indices of a
field need to be updated in one migration.
This commit fixes that.
Fixes: #3001
Even if it's a new installation of e107, `db_verify` will be too strict in
validating database field defaults that are equivalent to each other.
This can happen on some MySQL or MariaDB servers that correct the field
definitions, which were not strictly correct in the table structures built into
e107 in the first place.
This commit introduces db_verify::validateFieldPermissive(), a
backwards-compatible way to validate database field defaults. It works
regardless of whether the MySQL server stores a corrected representation of the
schema and does not require fixing the schema in any existing table structure
files.
Fixes: #2998