diff options
author | Christopher Ng <chrng8@gmail.com> | 2021-08-23 23:01:22 +0000 |
---|---|---|
committer | Christopher Ng <chrng8@gmail.com> | 2021-08-24 23:00:36 +0000 |
commit | d738ca48b2a2092fa8c5b04fcde0c72b729ab02b (patch) | |
tree | a0acaff9044063e8fc6387f2d5aeb9b341522975 /apps/settings/src/utils/validate.js | |
parent | 5e67677d948d55314680c3d337c01d6a54118ed6 (diff) | |
download | nextcloud-server-d738ca48b2a2092fa8c5b04fcde0c72b729ab02b.tar.gz nextcloud-server-d738ca48b2a2092fa8c5b04fcde0c72b729ab02b.zip |
Refine input validation
- Remove usage of JS core checkValidity() in favour of custom backend compliant validation
- Rewrite and refactor with removal of form tag in favour of section
- Scope styles
- Remove many uses of $nextTick
- Refine disabled state logic
- Translate account property constants
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Diffstat (limited to 'apps/settings/src/utils/validate.js')
-rw-r--r-- | apps/settings/src/utils/validate.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/apps/settings/src/utils/validate.js b/apps/settings/src/utils/validate.js new file mode 100644 index 00000000000..abea6250f3f --- /dev/null +++ b/apps/settings/src/utils/validate.js @@ -0,0 +1,51 @@ +/** + * @copyright 2021, Christopher Ng <chrng8@gmail.com> + * + * @author Christopher Ng <chrng8@gmail.com> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +import { VALIDATE_EMAIL_REGEX } from '../constants/AccountPropertyConstants' + +/** + * Validate the display name input + * + * @param {string} input the input + * @returns {boolean} + */ +export function validateDisplayName(input) { + return input !== '' +} + +/** + * Validate the email input + * + * *Compliant with PHP core FILTER_VALIDATE_EMAIL validator* + * + * *Reference implementation https://github.com/mpyw/FILTER_VALIDATE_EMAIL.js/blob/71e62ca48841d2246a1b531e7e84f5a01f15e615/src/index.ts* + * + * @param {string} input the input + * @returns {boolean} + */ +export function validateEmail(input) { + return typeof input === 'string' + && VALIDATE_EMAIL_REGEX.test(input) + && input.slice(-1) !== '\n' + && input.length <= 320 + && encodeURIComponent(input).replace(/%../g, 'x').length <= 320 +} |