2016-08-03 5 views
0

私はAppDescriptorというpermissionsプロパティをチェックしていましたが、AccessDefinitiongetRolesは実際には推奨されていません。誰もそれが非難されている理由を知っていますか?アプリ内で権限の役割を設定してはならないということですか?私はこれを尋ねました。私のコードでは、アプリケーションで定義された役割を取得したいと思っています。既に廃止されていてもこのコードを使用するのがいいのかどうかわかりません。MagnoliaのAccessDefinitionクラスから廃止されたロール

AccessDefinition.javaからコード:

/** @deprecated */ 
@Deprecated 
Collection<String> getRoles(); 

答えて

2

それは我々がアプリに許可の役割を設定してはならないことを意味するのでしょうか?

いいえ、アプリの実行に必要な役割を設定できます。

メソッドは、スーパーユーザーがアプリを使用するためのオーバーライド権が設定されているかどうかにかかわらず、アプリの実行に必要な役割を返すだけなので、非推奨となりました。

hasAccess(User user)方法は、のように、より複雑なルール(例えばAccessDefinitionのカスタム実装を紹介したい場合がありますことをアカウントまたは任意の他の規則にスーパーユーザーのオーバーライド許可を取って)、同時に通常のgetRoles()方法を維持する(上のようなチェックを可能にするために導入されましたsetRoles(Collection<String> roles)で設定されたものを返します)。

それが理由です。

0

あなたは同じメソッドシグネチャを経由してUserの下でそれらを設定する必要があります。

User.getRoles(); 
+0

しかし、ユーザーの役割ではなく、コンテンツアプリに設定されている役割を知りたい。実際にはさらに調べると、MagnoliaがAccessDefinitonの "boolean hasAccess(User var1)"関数を使用し、getRolesを決して使用しないことを望んでいるため、非推奨と考えています。 –

関連する問題