jQuery の In Place Editor プラグインを作ってみた
2010年02月21日
独立心旺盛で、新しい技術で新しいWebサービスを作りたいと思っているけれど、ひとりでやることに限界を感じているフリーのエンジニアの方。あなたの期待にこたえられる仲間と環境を、八角研究所なら提供できると思います。社員としてではない関わり方も、あるかもしれません。
この会社の特徴を知る
このカテゴリの記事はまだ投稿されていません
など 3 記事
など 24 記事
どこだかの研修で Trac を導入しようとしてます。Trac Lightning 2.1 をつかいます。グループ演習なので、グループごとにプロジェクトをひとつ作成して、次のように権限設定したいわけです。
Group A と Group B があるとし、Group A のプロジェクトを ProjectA として、図にすると、以下のような感じ。

とりあえずすこし調査した上で思いついた方法をつかって設定してみます。もしかすると根本的に何かが間違っているかもしれないので、あまり参考にしなくていいです。グループやメンバーの人数が増えると非常に面倒になってくる箇所があるので、もっとよい方法があるのかもしれません。あったら教えてほしいであります。
以下では、とりあえず検証用に次のようなプロジェクトとユーザを想定してみます。
プロジェクト
ユーザ
まずプロジェクトを作成。
>create-project ProjectA >create-project ProjectB
次にウェブから admin でログインして、ProjectA に leader_a と member_a、ProjectB に leader_b と member_b を Add external user しておきます。
manager は外部からログイン可能にしたいのですけど、どこのプロジェクトに属しているわけでもないのですが………。こういう場合どうすればいいんだろう。実用上問題なさそうなので、とりあえず ProjectA 上でユーザ作成してみましたが。
あと、
WARNING: [leader_a, member_a, manager] users are not added to the team
みたいのが表示されるのがうざいです………。このユーザたちは ProjectB チームには所属しないのだから、別に are not added でいいのに。警告がでるとか、そんなにイレギュラーなつかいかたしてるのかー。
まず各プロジェクトの初期状態の権限設定を確認しておきます。ProjectA を例に権限の一覧を表示してみると、次のような感じです。
>trac-admin path-to-ProjectA permission list User Action -------------------------------- admin CODE_REVIEW_MGR admin TRAC_ADMIN anonymous BROWSER_VIEW anonymous CHANGESET_VIEW anonymous DISCUSSION_VIEW anonymous FILE_VIEW anonymous LOG_VIEW anonymous MILESTONE_VIEW anonymous REPORT_SQL_VIEW anonymous REPORT_VIEW anonymous ROADMAP_VIEW anonymous SEARCH_VIEW anonymous TICKET_VIEW anonymous TIMELINE_VIEW anonymous WIKI_VIEW authenticated CODE_REVIEW_DEV authenticated DISCUSSION_APPEND authenticated TICKET_CREATE authenticated TICKET_EDIT_CC authenticated TICKET_MODIFY authenticated WIKI_CREATE authenticated WIKI_MODIFY developer authenticated guest developer leader CODE_REVIEW_MGR leader MILESTONE_CREATE leader MILESTONE_MODIFY leader TICKET_ADMIN
まず anonymous と authenticated に付与されている権限を見直す必要がありそうです。たとえば Group B のメンバーは、たとえ認証されていたとしても ProjectA で WIKI の編集とかしてほしくないですから、認証済みというだけでユーザに閲覧以上の権限を与える必要はないわけです。ついでに、認証してないユーザというか、アカウントをもたないユーザというのは今回想定しないので、その気になれば誰でも authenticated になることができるわけなので、anonymous と authenticated を区別する必要はなさそうです。
また、他のグループの開発物がソースコードまで見れてしまうとズルする人がでてくるかもしれないので、リポジトリブラウザによるファイル内容の閲覧は、自分のプロジェクトに限ります。ファイル一覧くらいは、見れてもよいかな、ということにしておきます。
developer、guest、leader といったグループですが、今回の目的にはつかえそうにないので、つかいません。
そんなかんじで anonymous & authenticated のもつ閲覧権限をベースに、自分の属するグループに対する権限については、別途ユーザごとに追加していきます。
以上まとめると次のような感じ。
anonymous、authenticated、他グループの権限設定からはじめます。次のようにコマンドを実行して……
>trac-admin path-to-ProjectA permission remove anonymous FILE_VIEW CHANGESET_VIEW >trac-admin path-to-ProjectA permission remove authenticated * >trac-admin path-to-ProjectA permission remove leader * >trac-admin path-to-ProjectA permission remove developer * >trac-admin path-to-ProjectA permission remove guest *
もういちど list コマンドで権限一覧を確認してみます。
User Action -------------------------- admin CODE_REVIEW_MGR admin TRAC_ADMIN anonymous BROWSER_VIEW anonymous DISCUSSION_VIEW anonymous LOG_VIEW anonymous MILESTONE_VIEW anonymous REPORT_SQL_VIEW anonymous REPORT_VIEW anonymous ROADMAP_VIEW anonymous SEARCH_VIEW anonymous TICKET_VIEW anonymous TIMELINE_VIEW anonymous WIKI_VIEW
次にプロジェクトのリーダーとメンバー、あとマネージャにそれっぽい権限付与を行います。メンバーが複数いると、メンバーの人数分だけコマンド実行が必要になりますが……。なんかいい方法はないものか。
>trac-admin path-to-ProjectA permission add leader_a FILE_VIEW CHANGESET_VIEW TICKET_ADMIN MILESTONE_ADMIN REPORT_ADMIN WIKI_ADMIN >trac-admin path-to-ProjectA permission add member_a FILE_VIEW CHANGESET_VIEW TICKET_CREATE TICKET_APPEND TICKET_CHGPROP TICKET_MODIFY WIKI_CREATE WIKI_MODIFY WIKI_DELETE >trac-admin path-to-ProjectA permission add manager FILE_VIEW CHANGESET_VIEW
ともかく、以上は ProjectA にたいする設定ですが、同じことを、ProjectB と leader_b、member_b についても行います。
うむ、問題なさそう。
さて実は、プロジェクトメンバー以外は、リポジトリブラウザではファイルの中身を見ることはできないのですが、Subversion クライアントでリポジトリにアクセスするとあっさりチェックアウトできてしまいます。なので、次に Subversion クライアントからのリポジトリへのアクセスも制限を加えないといけません。
TracLight/projects/svnauthz が Subversion のアクセス権限を詳細に設定するためのファイルです(このファイルをつかうということ自体は TracLight/CollabNetSVN/httpd/conf/httpd.conf で宣言されてます )。これを次のように編集。
[groups] project_a = leader_a, member_a project_b = leader_b, member_b [/] admin = rw [ProjectA:/] @project_a = rw admin = rw manager = r * = [ProjectB:/] @project_b = rw admin = rw manager = r * =
これで、自分のプロジェクト以外の Subversion リポジトリへのアクセスはできなくなります。ただし、admin ユーザはすべてのプロジェクトで読み書き可能、manager ユーザはすべてのプロジェクトで閲覧のみ可能としました。
そして、今回はリポジトリブラウザ上では自分のプロジェクトでなくてもファイル一覧までは閲覧可能という変なポリシーなわけですが、ここで設定した Subversion リポジトリへのアクセス制御をリポジトリブラウザによる閲覧にも反映させたければ、trac.ini に次のように(太字部分)エントリを追加すれば実現できます。
[trac] repository_dir = ...(略) authz_module_name = ProjectA authz_file = svnauthz
「モテる」の定義を考えてみた - モテる=たくさんの人に好意を寄せられること ではない モテをテーマに書く以上、定義ははっきりさせねば! ということで、「モテる」ってどういうことなのか、考えてみました。 一般的なモテる人のイメージは、 多くの異性に告白される人 いつも周囲に人が集まる人気者 人をたぶらかすテクニックを身につけた詐欺師まがい といった感じでしょうか。   確かに、どれも、「人から好意を寄せられる」という点では モテている人ですよね。 でも、みんな本当に、そういうモテ方をしたいの...
メンバー紹介
2010年02月21日
2010年02月21日
2009年09月07日
2009年09月01日
2009年08月22日
2009年08月15日
2009年08月07日
2009年08月07日
2009年07月28日
コメント