足場ビューに移動してトランザクションを調べるとき、各ユーザーが自分のトランザクションのみを表示していることをどのように知ることができますか?
正しく機能するには、スキャフォールドビューを変更する必要があります。
@Secured(['ROLE_USER'])
def list() {
def authenticatedUser = User.findByUsername(springSecurityService.principal.username)
def transactions = Transaction.findAllByUser(authenticatedUser)
[transactions: transactions]
}
上記は、認証されたユーザーのみがlist()メソッドにアクセスすることを許可し、ログインしたユーザーのすべてのトランザクションを取得します。
逆に、すべてのユーザーのすべてのトランザクションを表示できるユーザーを作成するにはどうすればよいですか?
それらすべてを表示できるユーザーを作成するのではなく、特定のユーザーがそれらすべてを表示できるようにするメソッドをコントローラーに作成します。次に例を示します。
@Secured(['ROLE_USER', 'ROLE_ADMIN'])
def list() {
def authenticatedUser = User.findByUsername(springSecurityService.principal.username)
def transactions = []
if (SpringSecurityUtils.ifAnyGranted('ROLE_ADMIN')) {
transactions = Transaction.list()
}else{
transactions = Transaction.findAllByUser(authenticatedUser)
}
[transactions: transactions]
}
とにかく、そのようなもの。必要に応じて微調整します。