We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 5898
    • 13 Posts
    MODxを使って、複数の人間でサイトを管理していきたいと思っているのですが。
    アクセス許可&ユーザー管理の機能の部分で質問があります。

    私は、各ドキュメントごとに、任意のユーザーを割り当てて、その他のユーザーが「編集/保存/公開/削除」をすることができない仕組みにしたいのですが。
    ユーザーグループとドキュメントグループを関連付けて、ドキュメントごとにアクセス許可を設定し、任意のユーザーでアクセスした場合、
    親ドキュメントにアクセス許可がないと、その下の階層のドキュメントはすべて、modx上では非表示になってしまいます。それは当たり前だと怒られてしまう
    かもしれないのですが。私としては、各ドキュメントを親子に関係なく個々に「編集/保存/公開/削除」をできるようにしたいのです。現状ではアクセス許可がないドキュメントはmodx上では表示されない仕組みのようなのですが、これを全て表示させるようにし、編集などの作業は許可されたドキュメントのみに行なえる仕組みにできれば、解決するような気がするのですが、半月くらい試行錯誤しているのですが、もう手も足も出ない状況です。どなたかアドバイスをいただけないでしょうか。

    ちなみに、modx管理画面内のツリー構造は、サイトマップと同じ表示にしたいので、ツリー構造をあまり崩さない形でお願いします。(ユーザビリティーの配慮とサイトマップの自動生成や、wayfinderによるナビゲーションメニューの自動生成、の都合上)

    よろしくお願い致します。
      • 33014 ☆ A M B ☆
      • 1,231 Posts
      コア改造ということでよければ調べてみます。日本語版の対応が始まったところなので後回しになるかもですが・・
        • 15497
        • 117 Posts
        そのものズバリの解決ではないかもしれませんが、
        代替として、親ドキュメントをManagerManagerでユーザーによって入力できなくするという方法はどうでしょう?

        ManagerManagerはロール&テンプレート単位(ともに複数指定可能)で入力項目を切り替えることができるので、
        ロールとテンプレートを適切に用意して、親ドキュメントにそのテンプレートを使えば、
        親ドキュメントの入力項目はロール単位(複数指定可能)に非表示にしたりすることができます。
        (つまり、編集画面を開いたり保存操作はできるのですが、「入力欄が無い=入力内容を変更することができない」となります)

        #
        テンプレートで使ってない入力項目があれば、一つ非表示にせず残しておき、
        そこに「このドキュメントは入力する権限がありません」等と入れておけば親切かも?
          ★日本公式フォーラム2009年9月1日本格始動!★
          http://modxcms-jp.com/bb/

          ▼ウェブ屋のCMS→modxヒキダス流(備忘録)
          http://d.hatena.ne.jp/hikidas_ikeda/
          ▼制作済みHTMLページをmodxで更新するデモ
          http://www.hikidas.com/hikidas/modx_document/modx_demo_osc2009kansai.php
          • 26012
          • 324 Posts
          cradleさんはじめまして

          modxの機能の中でもかなり理解しづらい部分ですので、ご質問の趣旨や実現したいことがしっかり把握できずに間違ったことを言ったらお許しを。

          Quote from: cradle at May 19, 2009, 08:08 PM

          私は、各ドキュメントごとに、任意のユーザーを割り当てて、その他のユーザーが「編集/保存/公開/削除」をすることができない仕組みにしたいのですが。
          可能です。半月チャレンジされたとのことから詳細は割愛します。

          Quote from: cradle at May 19, 2009, 08:08 PM

          ユーザーグループとドキュメントグループを関連付けて、ドキュメントごとにアクセス許可を設定し、任意のユーザーでアクセスした場合、親ドキュメントにアクセス許可がないと、その下の階層のドキュメントはすべて、modx上では非表示になってしまいます。
          設定の仕方によってはそうなることがあるかもしれませんが、親ドキュメントへのアクセス権限がなくとも、その子ドキュメントがアクセス可能になっていれば、管理画面のツリーには、親を除外した形(つまりひとつ上の階層のドキュメントとして)で表示されます。私の環境で設定したところ、親を除外した形(つまりひとつ上の階層のドキュメントとして)で表示されました。(操作手順や細かい設定の差異をこの返信ですべて網羅することは厳しそうなので後ほど?)
          [5/20]仰るとおり、親のアクセス許可だけを外す設定自体は可能ですが、ツリー表示の際に親のアクセス権限が子に継承され非表示になります。以前、ツリーに表示させるところまではチャレンジしたのですが、その後の処理に不整合が起こるためハックをロールバックした経緯があります。

          Quote from: cradle at May 19, 2009, 08:08 PM

          それは当たり前だと怒られてしまうかもしれないのですが。私としては、各ドキュメントを親子に関係なく個々に「編集/保存/公開/削除」をできるようにしたいのです。
          システムによってはそのように実装されてるものもあると思いますが、上記のとおり可能だと思います。

          Quote from: cradle at May 19, 2009, 08:08 PM

          現状ではアクセス許可がないドキュメントはmodx上では表示されない仕組みのようなのですが、
          仰るとおりです。触れないものは見せない/見えない/隠す、という基本理念でシステムが組まれてるのだと思います。

          Quote from: cradle at May 19, 2009, 08:08 PM

          これを全て表示させるようにし、編集などの作業は許可されたドキュメントのみに行なえる仕組みにできれば、解決するような気がするのですが、半月くらい試行錯誤しているのですが、もう手も足も出ない状況です。どなたかアドバイスをいただけないでしょうか。
          これは無理かもしれません。上記「触れないものは見せない/見えない/隠す、という理念」が優先するため、ドキュメントへのアクセスを無効にしたユーザは、当該ドキュメントを見ることはできません。
          但し、全てのドキュメント階層をリードオンリーで見せることは可能です。リードオンリーで見せるには、ドキュメントへの書き込み権限を剥奪したロールを作り、当該グループにユーザを配置します。動きとしては、保存操作のタイミングで書き込むことができない、とシステムから怒られます。

          Quote from: cradle at May 19, 2009, 08:08 PM

          ちなみに、modx管理画面内のツリー構造は、サイトマップと同じ表示にしたいので、ツリー構造をあまり崩さない形でお願いします。(ユーザビリティーの配慮とサイトマップの自動生成や、wayfinderによるナビゲーションメニューの自動生成、の都合上)
          上記のようなわけで、すべての要求を満足することはできそうにありません [5/20]現状ではできそうにありません。
          要求事項は理解できますが、発想を変えて考えてみますと、すべてのドキュメントが見えてしまうと、どれが自分の触れるドキュメントかを判別しづらくなるかもしれません。あらかじめ、アイコンなどで触れるものと触れないものを明示する機能が加わればこの弊害は緩和されると思いますが、触れないものが見えないということは、ある種ユーザを考えた優しさと私は理解してます。
            • 26012
            • 324 Posts
            いきなり訂正。。。^^;

            [5/20]下記は、コアソースをハックした私の環境で検証した結果でした。配布媒体のままでは、ダメかもしれません。
            ハック箇所を特定しますので、暫くお時間ください。


            Quote from: cradle at May 19, 2009, 08:08 PM

            ユーザーグループとドキュメントグループを関連付けて、ドキュメントごとにアクセス許可を設定し、任意のユーザーでアクセスした場合、親ドキュメントにアクセス許可がないと、その下の階層のドキュメントはすべて、modx上では非表示になってしまいます。
            設定の仕方によってはそうなることがあるかもしれませんが、親ドキュメントへのアクセス権限がなくとも、その子ドキュメントがアクセス可能になっていれば、管理画面のツリーには、親を除外した形(つまりひとつ上の階層のドキュメントとして)で表示されます。私の環境で設定したところ、親を除外した形(つまりひとつ上の階層のドキュメントとして)で表示されました。(操作手順や細かい設定の差異をこの返信ですべて網羅することは厳しそうなので後ほど?)
            [5/20]仰るとおり、親のアクセス許可だけを外す設定自体は可能ですが、ツリー表示の際に親のアクセス権限が子に継承され非表示になります。以前、ツリーに表示させるところまではチャレンジしたのですが、その後の処理に不整合が起こるためハックをロールバックした経緯があります。

            [5/20]確認ミスで期待をさせてしまい申し訳ありません。
              • 5898
              • 13 Posts
              みなさん貴重なご意見ありがとうございます。

              >>yamaさん
              よろしくお願いいたします。

              >>kazuikeさん
              ManagerManagerを応用するやり方は、有用かもしれませんね。
              私も一度、ManagerManagerを使う方法を考えたのですが、もう一度再検討してみようと思います。


              >>sama55さん
              仰るとおりで、触れないものを見せないというのは、ユーザーに配慮した上では当然の実装なのでしょうね。
              とりあえず現状では、ManagerManagerを利用した方法を再検討してみようと思います。
              ありがとうございました。