0

次のコードは、1 人のユーザーに複数のロールを追加します。アプリを起動するたびにロールとユーザーを定義しようとするため、これは 1 つのセッションでのみ機能することに注意してください。データベースのチェックを追加し、存在しない場合はロールとユーザーを作成します。

import trippinspring.*

class BootStrap {

def init = { servletContext ->

  def adminRole = new SpringRole(authority: 'ROLE_ADMIN').save(flush: true)
  def userRole = new SpringRole(authority: 'ROLE_USER').save(flush: true)

  def testUser = new SpringUser(username: 'me', enabled: true, password: 'password')
  testUser.save(flush: true)

if (!testUser.authorities.contains(adminRole)) {
new SpringUserSpringRole(springUser: testUser, springRole: adminRole).save(flush: true,failOnError: true)
}

if (!testUser.authorities.contains(userRole)) {
new SpringUserSpringRole(springUser: testUser, springRole: userRole).save(flush: true,failOnError: true)
}
}
}

ほとんどのコードは Aram Arabyan の回答への直接の参照であり、Ian Roberts は私のコードで動作するようにいくつかの修正をコメントしています。

4

2 に答える 2

1
  if (!testUser.authorities.contains(adminRole)) {
    new SpringUserSpringRole(user: testUser, role: adminRole).save(flush: true,failOnError: true)
  }

 if (!testUser.authorities.contains(userRole)) {
    new SpringUserSpringRole(user: testUser, role: userRole).save(flush: true,failOnError: true)
  }
于 2012-09-24T12:41:31.030 に答える
0

1 人のユーザーに 2 つのロールを追加するのではなく、ロールの階層を作成してみてください: doc を参照してください。

于 2012-09-26T21:25:05.990 に答える