1

大きなウェブサイトのサブセットとして Trac をインストールしました。理想的には、trac インターフェース自体を使用せずに、ユーザーがメイン サイトから trac にログインできるようにしたいと考えています。メイン サイトは IIS 上の PHP で実装されています。さらに、ユーザーが Trac 経由でログインしている場合、ユーザー権限に基づいて PHP ページの一部から他の機能へのアクセスを提供できるようにしたいと考えています。

認証は trac で htpasswd ファイルを使用し、trac インターフェイスを介してユーザーを管理できると便利です。さらに、これは htpasswd ファイルを使用できるため、subversion には同じユーザー/パスが使用されます。これを IIS で使用して、仮想パスと認証ロールを介してログインすることはできません。LDAP/ActiveDirectory を使用したくない

ユーザーを実際に Trac にログインさせるログイン ページを PHP で実装できると便利です。ただし、適切な __FORM_TOKEN フィールドを PHP ページに追加する方法がわかりません。trac のログイン ページ自体を使用しても問題ありませんが、ログインした後、サイトの trac 部分のサブ URL でない場合、フォーム データで設定したリファラーではなく、trac wiki のホームページに移動します。 .

また、PHP から現在 trac にログインしているユーザーのパーミッションを照会できると便利です。おそらくこれは sqlite データベースを介して可能ですが、現在のユーザーが誰であるかを知るにはどうすればよいですか?

4

1 に答える 1

2

Ended up generating the trac_form_token cookie myself for my PHP login form, from a sub-url of the trac root (overriding that sub-url from within IIS so that it is not handled by trac but by php instead). Easy enough to do.

Checking the logged in user is easy enough to do if you configure trac to set the path of the trac_auth cookie to be the root of the site. You can then access this and query the trac sqlite database from PHP to get the user name and permissions.

Then for the PHP login, you generate the trac_form_token and do a POST curl request to trac and then pass on the cookies you need from the returned response header.

EDIT: change to trac.ini to make trac_auth cookie available site-wide and not just from /trac/

[trac] 
auth_cookie_path = \
于 2013-10-02T07:56:32.863 に答える