私はFedoraのディスコースサイトで管理者でもあり、参加者でもあります。それらの役割を分離できるようにしたいです。「公式投稿」には「スタッフカラー」がありますが、それは私の側からのものです。ログインしているときは常に管理者ツールやボタンがいたるところにあるのではなく、管理者モードをオン/オフするメニューのトグルを希望します。
また、以下のものもあります。
これらのプラグインはどちらも、スタッフメンバーとしての身元を偽装することができます。つまり、個人に直接結びつけることができない、より「公式」に見えるアカウントから投稿を作成できます。
しかし、それはあなたが求めているものとは少し違うのではないでしょうか?通常のユーザーと同じようにDiscourseの外観/感触を作成し、その後「sudoモードに入る」ことで、管理者専用の追加機能すべてを利用可能にしたいということでしょうか?
実装するのはかなり難しいと思いますが、それは素晴らしいでしょう!何年も前(私がチームに参加する前)に、私は自分のセルフホスト型フォーラムのためにこのコンポーネントを作成しました。それは同じような考え方(通常ユーザー/管理者権限を明白にする)ですが、1つの非常に特定のケースに限定されています。
もし、あなたのサイトで混乱を招きやすい、他の厳密なスコープのケースがあれば、管理者専用のアクションを実行する前に警告をポップアップ表示する同様のテーマコンポーネントを作成できるかもしれません。
はい、その通りです。おそらく、長年のシステム管理者としての経験から、「最小限必要な権限」という考え方が実践的に身についたからでしょう。(本番システムで間違った場所にrm -rfをrootで実行するのは、通過儀礼のようなものです!)
これも私にとっても興味深いことです。現在の回避策は、Chrome と Edge の両方を使用することです。Chrome では管理者アカウントを使用していますが、Edge では管理者アカウントで、期限切れのメールを持つユーザーアカウントをなりすましています。なりすましは、IT 部門と話したくないという理由だけです。
あなたの状況では、2 番目のログインを作成し、管理用のブラウザとユーザー用のブラウザを 1 つずつ持つことができます。完璧ではありませんが、私にとっては十分です。
ここに、これが役立つ良い例があります。
意図されたタグ付けルールに誤って違反したくないのです。(管理者以外のモデレーターも誤ってこれを行うことができますか?簡単にテストすることもできません。)
別の管理者アカウントを作成し、メインアカウントを通常のユーザーに降格させることもできますが、重要なフラグ通知やメッセージを見逃してしまうのではないかと心配しています。
これはブラウザ自体で処理されるもので、以下を参照してください。
ブラウザプロファイルを丸ごと切り替えられるだけのように見えますが、それは管理用のアカウントを完全に別に作成しない限り、役に立たないように思えます。
それとも、何か見落としているのでしょうか?例えば、@codinghorror さん、あなたのアカウントは こちら の管理者としてリストされていますが、私が完全に誤解していることをしていない限り、今は管理者モードで実行されていると仮定します。しかし、サイトユーザーとしても活動していますよね。例えば、設定されたタグのルールに従わない投稿を誤って作成してしまうようなことはありませんか?(私は以前、誤って何度もそのようなことをしてしまいました…)
いや、そうではありません。管理者の役割は、自分が持つ責任と尊重しなければならない境界線を理解することです。それができないのであれば、管理者権限を持つべきではありません。
しかし、超安全策を取りたい人にも共感できます。そのような人には、2つのアカウントを使用し、_絶対に確実_にしたい場合は一般ユーザーとしてログインすることを推奨します。ブラウザのプロファイルサポートが組み込まれているため、これは非常に簡単に行えます。
まあ、それは常にLinuxシステムでrootとして実行するのと似ています。境界を尊重するだけでなく、そこに存在することに気づかずに誤って踏み越えないようにすることです。設定に入ることのようなものは、誤って起こることはありませんが、管理者が何かバイパスされていることを示さずに設定をバイパスするような小さなことがたくさんあるようです。
上記で述べたように、2番目のアカウントを持つことは実際にはあまり良くありません。なぜなら、そのアカウントの通知はめったに見ないからです。
懸念は理解できますが、少なくともこのプロジェクトに10年間携わってきた中で、実際には大きな問題ではありません。
(また、スタッフのアクセス権限は自動的に取り消され、長期間不在のスタッフにはメールでの再検証が必要になることも考慮してください。これにより、IMOのほとんどの問題は自動的に修正されます。)
マットさん、こんにちは!
補足ですが、管理者ユーザーが一般ユーザーとして動作する可能性は、管理関連の承認ロジックすべてに、さらに別の次元を追加することになります。
そのロジックの大部分は guardian.rb と /lib/guardian/*.rb に集中していますが、そのような変更による複雑さとバグの可能性は非常に大きく、この機能の必要性はそれをはるかに上回る必要がありますが、代替手段を考慮するとそうではありません。
もっと偶発的に起こりうる事柄に対して、より的を絞った「保護」を検討することは可能でしょうか?例えば、「スタッフはカテゴリタグ付け規則に従わなければならない」という設定などです。正直、それだけでも私が直面している実用的な問題のほとんどが解決するでしょう。
あるいは…他の事柄、例えば投稿の長さなどが管理者であっても保護されているのは、少し奇妙に思えます…実際、この特定の問題は、オプションを追加するのではなく、それが機能するようにすることだけの問題かもしれません。
投稿の長さを追加するには、データベース全体を変更する必要があります。フィールドごとにデータベースに保存できる最大文字数があります。
これは私には論理的飛躍のように思えますが、何か見落としているだけかもしれません。つまり、
- 管理者で、
min post lengthより短い投稿をしようとすると、通常の ومع ذلك メッセージが表示され、続行できません。 - 管理者で、タグが必要なカテゴリにタグなしで投稿しようとすると、そのまま進むことができます。
ここでデータベースに格納されているのは何ですか?
申し訳ありません、投稿/タイトルの長さのみを意味していました。実際のデータベースフィールドに保存されている投稿の長さのコンテンツには最大サイズがあります。投稿タイトルにも同様のルールがあり、データベースのその特定のフィールドに割り当てられた最大文字数があります。
したがって、管理者が「90万文字の投稿をしたい」または「500文字のタイトルの投稿をしたい」と判断した場合、データベースを変更しない限り、それは不可能です。
これは実際には技術的な問題ですが、投稿の長さについて言及されたので、それについて考えていました。
ああ、そうですか。それは私が懸念している問題とは全く逆ですね ![]()
OPはほとんどの場合、通常のユーザーとして機能することを意図していたと推測します。私自身も、シンプルなユーザーのように感じたいです。
- ボタンを少なくする
- モデレーター/管理者アクションへのアクセスをなくす
- シンプルなユーザーケースを使用する
アップグレードや調整の後、誤解を避けるために、通常のユーザーが見ているようにフォーラムとやり取りしたいと思います。
私のコミュニティでは、管理者モードはアップグレードやプラグイン、UIのテストにのみ必要です。常にモデレーターである必要もありません。また、私のような人にとっては、2つのアカウントを持つよりも、一時的に管理者に切り替える方が良いと思います。
OPはsudoについて書いていました。これはほとんど同じですが、逆です。通常、私はいくつかのケースを確認するために一時的に匿名に切り替えます。いずれにしても、特別な通常のユーザーアカウントの下で「impersonate」のような、管理モードを有効にするための軽量なオプションがあると素晴らしいでしょう。
数日前に起こったことを思い出させます。フォーラムを移行中です。
古いフォーラムの管理者に管理者権限を付与しました。
彼は他の2つのフォーラムでもDiscourseユーザーであり、モデレーターでもあります。そのため、Discourseのインターフェースとナビゲーションについて多少知っています。
彼の管理者アカウントから(ガイドラインは書かず、彼に発見させることにしました)、他のユーザーのダイレクトメッセージにアクセスできることに驚いたと私に言いました。彼は公開プロフィールページをランダムにクリックし、ダイレクトメッセージのリストを見て、驚きました。
彼は突然「ああ、ここはいるべきではない場所のようだ」(管理/モデレーションの目的がない限り、ここにいるべきではない、という意味です)と考えたと私に言いました。
自分のプロフィールからダイレクトメッセージにアクセスするのと同じくらい簡単に、インターフェースからこれらのメッセージにアクセスできるとは知りませんでした。
また、2018年から2つのDiscourseフォーラムの管理者であるにもかかわらず、数週間前に私も同じことがありました… ![]()
私の意見では、ユーザーの公開プロフィールの「ダイレクトメッセージ」タブには、管理者として、それをクリックすることがモデレーションまたは管理アクションであることを示すアイコンまたは何らかの警告があるべきです。なぜなら、「プライベート」なもの(いずれにせよ、ユーザーの99%がそう考えているはずです)を目にすることになるからです。 ![]()
それで…このことについて考えていたのですが、それほど大きな変更ではないという確信が薄れてきました。確かに、ロジックは散在していますが、すべて is_admin または is_staff のチェックに行き着くのではないでしょうか?
「sudo」は単に「staff_mode」トグルを追加するだけでよく、is_staff および is_admin 関数は、そのトグルの状態と user.admin または user.staff フラグをチェックできます。(もちろん、トグルをアクティブ化するには、user.admin または user.staff の値だけを見る特別なチェックが必要になります。)