mirror of
https://github.com/discourse/discourse.git
synced 2025-03-07 19:59:33 +00:00
Anonymous users are only possible if allow_anonymous_posting is true, which means that 'user.is_anonymous' check implies that allow_anonymous_posting is true.
61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
import RestrictedUserRoute from "discourse/routes/restricted-user";
|
|
|
|
export default RestrictedUserRoute.extend({
|
|
showFooter: true,
|
|
|
|
model() {
|
|
return this.modelFor("user");
|
|
},
|
|
|
|
renderTemplate() {
|
|
return this.render({ into: "user" });
|
|
},
|
|
|
|
setupController(controller, model) {
|
|
controller.setProperties({ model, newUsername: model.get("username") });
|
|
controller.set("loading", true);
|
|
|
|
model
|
|
.loadSecondFactorCodes("")
|
|
.then(response => {
|
|
if (response.error) {
|
|
controller.set("errorMessage", response.error);
|
|
} else {
|
|
controller.setProperties({
|
|
errorMessage: null,
|
|
loaded: !response.password_required,
|
|
dirty: !!response.password_required,
|
|
totps: response.totps,
|
|
security_keys: response.security_keys
|
|
});
|
|
}
|
|
})
|
|
.catch(controller.popupAjaxError)
|
|
.finally(() => controller.set("loading", false));
|
|
},
|
|
|
|
actions: {
|
|
willTransition(transition) {
|
|
this._super(...arguments);
|
|
|
|
const controller = this.controllerFor("preferences/second-factor");
|
|
const user = controller.get("currentUser");
|
|
const settings = controller.get("siteSettings");
|
|
|
|
if (
|
|
transition.targetName === "preferences.second-factor" ||
|
|
!user ||
|
|
user.is_anonymous ||
|
|
user.second_factor_enabled ||
|
|
(settings.enforce_second_factor === "staff" && !user.staff) ||
|
|
settings.enforce_second_factor === "no"
|
|
) {
|
|
return true;
|
|
}
|
|
|
|
transition.abort();
|
|
return false;
|
|
}
|
|
}
|
|
});
|