既存のロールにロールを追加するたびに、User
機能しなくなります。
ログにエラーはありません。また、try catch でコントローラーにアクセスしましたが、うまくいきませんでした。
ここに私のaddRole
閉鎖があります:
def addRole = {
def role = Role.get(params.addRoleAutoComplete_id)
def user = User.get(params.id)
if (!role) {
flash.message = "Select role from list"
} else {
try{
UserRole.create( user, role)
}catch(Exception e){e.printStackTrace()}
}
redirect action:'edit', id:user.id
}
Grails 2.3、grails spring セキュリティ プラグイン、および STS 3.2 を使用
ここに私の UserRole.Groovy があります:
class UserRole implements Serializable {
User user
Role role
boolean equals(other) {
if (!(other instanceof UserRole)) {
return false
}
other.user?.id == user?.id &&
other.role?.id == role?.id
}
int hashCode() {
def builder = new HashCodeBuilder()
if (user) builder.append(user.id)
if (role) builder.append(role.id)
builder.toHashCode()
}
static UserRole create(User user, Role role, boolean flush = false) {
new UserRole(user: user, role: role).save(flush: flush, insert: true)
}
static boolean remove(User user, Role role, boolean flush = false) {
UserRole instance = UserRole.findByUserAndRole(user, role)
if (!instance) {
return false
}
instance.delete(flush: true)
true
}
static mapping = {
id composite: ['role', 'user']
version false
}
}