WEB开发网
开发学院软件开发Java 精通 Grails: 身份验证和授权 阅读

精通 Grails: 身份验证和授权

 2009-10-26 00:00:00 来源:WEB开发网   
核心提示: 您可以(也应该)使用相同的四行代码锁定 delete 和 update 闭包,如果来回复制和粘帖相似代码的工作非常繁琐(并且应当会如此),精通 Grails: 身份验证和授权(7),那么可以创建一个单一的私有方法并在所有三个闭包中调用它,如果发现在许多控制器内使用的是相同的 beforeInte

您可以(也应该)使用相同的四行代码锁定 delete 和 update 闭包。如果来回复制和粘帖相似代码的工作非常繁琐(并且应当会如此),那么可以创建一个单一的私有方法并在所有三个闭包中调用它。如果发现在许多控制器内使用的是相同的 beforeInterceptor 和私有方法,那么可以将常见的行为解析为单个主控制器,并使用其他控制器扩展它,就像在任何 Java 类中所做的那样。

可以向授权基础设施添加另外一项内容以使它变得更加健壮:角色

添加角色

为 User 分配角色是一种方便的分组方法。随后可以向组分配权限,而不是向个人分配权限。例如,现在任何人都可以创建一个新的 User。仅仅检查某个用户是否登录还远远不够。我希望限制管理员管理 User 帐户的权限。

清单 9 向 User 添加了一个角色字段以及一条限制,限制 author 或 admin 的值:


清单 9. 向 User 添加一个角色字段
class User { 
 static constraints = { 
  login(unique:true) 
  password(password:true) 
  name() 
  role(inList:["author", "admin"]) 
 } 
  
 static hasMany = [entries:Entry] 
  
 String login 
 String password 
 String name 
 String role = "author" 
  
 String toString(){ 
  name 
 } 
} 

注意,role 默认值为 author。inList 限制给出了一个复选框,只显示了两个有效选项。图 4 展示了它的实际使用:


图 4. 将新用户角色限制为 author 或 admin
精通 Grails: 身份验证和授权

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:精通 Grails 身份

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接