2012-04-03 1 views
2

私は(deadboltを使用して)私の見解で何か(play! framework)を制限しようと、私は、パラメータを渡すために持っているように:あなたは3は、例えばharcodedさに気づくデッドボルト問題

#{deadbolt.restrictedResource resourceKeys:['projectEdit'], resourceParameters:['projectId':'3'} 

(それが動作します) 。今のコードは、もはや動作しますが、それは例外をスローし、

#{deadbolt.restrictedResource resourceKeys:['projectEdit'], resourceParameters:['projectId':${project.alias}]} 

まあ:なぜこれが起こっている

Exception raised was MissingMethodException : No signature of method: Template_1012.$() is applicable for argument types: (Template_1012$_run_closure1_closure2) values: [[email protected]] Possible solutions: _(java.lang.String), is(java.lang.Object), run(), run(), any(), get(java.lang.String). 

あなたは知っていますか?しかし、私は次のように、それはダイナミックな必要はありませんか私の頭の上オフ

答えて

1

、それを引用してみてください。

#{deadbolt.restrictedResource resourceKeys:['projectEdit'], resourceParameters:['projectId':'${project.alias}']} 

はそれが動作するかどうか私に教えてください、そして、必要であれば、私たちはそこからそれを取ることができます。

+0

ありがとうございますが、それは文字列としてコードに現れます: '$ {project.alias}' ...私が見つけた回避策は、現在のURLからプロジェクトエイリアスを取得することです。 –

+0

#{deadbolt.restrictedResource resourceKeys:['projectEdit']、resourceParameters:['projectId':project.alias]あなたは$ {}を必要としません。 }}#{deadbolt.restrictedResource resourceKeys:['projectEdit']、resourceParameters:['projectId': '' + project.alias]} –

+0

ありがとう、それは '$ {}'のような 'project.alias'のように機能します。 –

関連する問題