sfGuardPlugin 5.0.0 を使用して Symfony 1.4 で開発されたアプリケーションでセキュリティを設定しようとしています。
要件では、管理者ユーザーはすべての操作を実行でき、閲覧者はレコードの一覧表示と表示のみを行うことができます。
これは、モジュールのディレクトリ構成で使用している security.yml です。
index:
is_secure: true
credentials: [[ admin, viewer ]]
show:
is_secure: true
credentials: [[ admin, viewer ]]
all:
is_secure: true
credentials: [ admin ]
しかし、ビューアに許可されたアクションの 1 つを作成しようとすると、理由がわかりません。「許可されていません」というメッセージで停止します。
スタック トレースは次のとおりです。
1 sfPatternRouting Connect sfRoute "sf_guard_signin" (/guard/login)
2 sfPatternRouting Connect sfRoute "sf_guard_signout" (/guard/logout)
3 sfPatternRouting Match route "homepage" (/) for / with parameters
array ( 'module' => 'strain', 'action' => 'index',)
4 sfFilterChain Executing filter "sfRenderingFilter"
5 sfFilterChain Executing filter "sfBasicSecurityFilter"
6 Doctrine_Connection_Mysql exec : SET NAMES 'UTF8' - ()
7 Doctrine_Connection_Statement execute : SELECT s.id AS s__id, s.first_name AS
s__first_name, s.last_name AS s__last_name, s.email_address AS s__email_address, s.username
AS s__username, s.algorithm AS s__algorithm, s.salt AS s__salt, s.password AS s__password,
s.is_active AS s__is_active, s.is_super_admin AS s__is_super_admin, s.last_login AS
s__last_login, s.avatar AS s__avatar, s.token AS s__token, s.notify_new_order AS
s__notify_new_order, s.notify_ready_order AS s__notify_ready_order, s.initials AS
s__initials, s.created_at AS s__created_at, s.updated_at AS s__updated_at FROM sf_guard_user
s WHERE (s.id = ?) LIMIT 1 - (25)
8 sfBasicSecurityFilter Action "strain/index" requires credentials
"[admin, viewer]", forwarding to "sfGuardAuth/secure"
9 sfFilterChain Executing filter "sfRenderingFilter"
10 sfFilterChain Executing filter "InboxFilter"
11 Doctrine_Connection_Statement execute : DELETE FROM notification WHERE
(status = ? AND updated_at < ?) - (2, 2012-05-19 14:21:05)
12 sfFilterChain Executing filter "sfExecutionFilter"
13 sfGuardAuthActions Call "sfGuardAuthActions->executeSecure()"
14 sfPHPView Render "sf_app_dir/modules/sfGuardAuth/templates/secureSuccess.php"
15 main Call "sfGuardAuth->executeSignin_form()"
16 sfPartialView Render "sf_app_dir/modules/sfGuardAuth/templates/_signin_form.php"
17 main Set slot "error_message"
18 sfPHPView Decorate content with "sf_app_dir/templates/login.php"
19 sfPHPView Render "sf_app_dir/templates/login.php"
20 main Get slot "error_message"
21 sfWebResponse Send status "HTTP/1.1 403 Forbidden"
22 sfWebResponse Send header "Content-Type: text/html; charset=utf-8"
どんな手掛かり?