確認しましたが、API を使用してフィールドを非表示にすることはできますが、そのユーザーが承認されているかどうかを知るための信頼できるデータが見つかりません(設定ページのコンテキストで):thinking:
これが今のところの私の進捗です。
罪悪感を感じるべきかどうかわかりません。少しハッキーかもしれませんが。 ![]()
js
<script type="text/discourse-plugin" version="0.8">
const { setting } = require("discourse/lib/computed");
api.modifyClass("controller:preferences/account", {
pluginId: "hide-name-in-preferences",
get canEditName() {
const enables_name = setting("enable_names");
if (enables_name && this.isCurrentUser && !this.model.staff) {
if (this.model.name) {
// 入力フィールドのみを非表示にする(名前は表示される)
this.model.can_edit_name = false;
} else {
// セクション全体を非表示にする
return false;
}
}
return enables_name;
},
});
</script>