mirror of
https://github.com/discourse/discourse.git
synced 2025-03-14 10:33:43 +00:00
DEV: remove user fields validation mixin (#31793)
Follow up to: https://github.com/discourse/discourse/pull/31670 This deletes the mixin. Did a search across our repos with `/mixins\/user-field/`, only still used in `plugin-api`.gjs which is being deleted in this PR.
This commit is contained in:
@ -120,7 +120,6 @@ import {
|
||||
import { addCustomUserFieldValidationCallback } from "discourse/lib/user-fields-validation-helper";
|
||||
import { registerUserMenuTab } from "discourse/lib/user-menu/tab";
|
||||
import { replaceFormatter } from "discourse/lib/utilities";
|
||||
import { addCustomUserFieldValidationCallback as addCustomUserFieldValidationCallbackDeprecated } from "discourse/mixins/user-fields-validation";
|
||||
import Composer, {
|
||||
registerCustomizationCallback,
|
||||
} from "discourse/models/composer";
|
||||
@ -1573,7 +1572,6 @@ class PluginApi {
|
||||
**/
|
||||
|
||||
addCustomUserFieldValidationCallback(callback) {
|
||||
addCustomUserFieldValidationCallbackDeprecated(callback);
|
||||
addCustomUserFieldValidationCallback(callback);
|
||||
}
|
||||
|
||||
|
@ -1,82 +0,0 @@
|
||||
import EmberObject, { computed } from "@ember/object";
|
||||
import { on } from "@ember/object/evented";
|
||||
import Mixin from "@ember/object/mixin";
|
||||
import { isEmpty } from "@ember/utils";
|
||||
import { i18n } from "discourse-i18n";
|
||||
|
||||
const addCustomUserFieldValidationCallbacks = [];
|
||||
export function addCustomUserFieldValidationCallback(callback) {
|
||||
addCustomUserFieldValidationCallbacks.push(callback);
|
||||
}
|
||||
|
||||
export default Mixin.create({
|
||||
_createUserFields: on("init", function () {
|
||||
if (!this.site) {
|
||||
return;
|
||||
}
|
||||
|
||||
let userFields = this.site.get("user_fields");
|
||||
if (userFields) {
|
||||
userFields = userFields
|
||||
.sortBy("position")
|
||||
.map((f) => EmberObject.create({ value: null, field: f }));
|
||||
}
|
||||
this.set("userFields", userFields);
|
||||
}),
|
||||
|
||||
userFieldsValidation: computed("userFields.@each.value", function () {
|
||||
if (!this.userFields) {
|
||||
return EmberObject.create({ ok: true });
|
||||
}
|
||||
|
||||
this.userFields.forEach((userField) => {
|
||||
let validation = EmberObject.create({ ok: true });
|
||||
|
||||
if (
|
||||
userField.field.required &&
|
||||
(!userField.value || isEmpty(userField.value))
|
||||
) {
|
||||
const reasonKey =
|
||||
userField.field.field_type === "confirm"
|
||||
? "user_fields.required_checkbox"
|
||||
: "user_fields.required";
|
||||
validation = EmberObject.create({
|
||||
failed: true,
|
||||
reason: i18n(reasonKey, {
|
||||
name: userField.field.name,
|
||||
}),
|
||||
element: userField.field.element,
|
||||
});
|
||||
} else if (
|
||||
this.accountPassword &&
|
||||
userField.field.field_type === "text" &&
|
||||
userField.value &&
|
||||
userField.value
|
||||
.toLowerCase()
|
||||
.includes(this.accountPassword.toLowerCase())
|
||||
) {
|
||||
validation = EmberObject.create({
|
||||
failed: true,
|
||||
reason: i18n("user_fields.same_as_password"),
|
||||
element: userField.field.element,
|
||||
});
|
||||
}
|
||||
|
||||
addCustomUserFieldValidationCallbacks.map((callback) => {
|
||||
const customUserFieldValidationObject = callback(userField);
|
||||
if (customUserFieldValidationObject) {
|
||||
validation = customUserFieldValidationObject;
|
||||
}
|
||||
});
|
||||
|
||||
userField.set("validation", validation);
|
||||
});
|
||||
|
||||
const invalidUserField = this.userFields.find((f) => f.validation.failed);
|
||||
if (invalidUserField) {
|
||||
return invalidUserField.validation;
|
||||
}
|
||||
|
||||
return EmberObject.create({ ok: true });
|
||||
}),
|
||||
});
|
Reference in New Issue
Block a user