欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
Ralasafe/user/hello world
来自开放百科 - 灰狐
(版本间的差异)
(→Ralasafe功能) |
(→查询权限) |
||
第15行: | 第15行: | ||
org.ralasafe.Ralasafe.query(int privilegeId, User user, java.util.Map context); | org.ralasafe.Ralasafe.query(int privilegeId, User user, java.util.Map context); | ||
+ | </pre> | ||
+ | |||
+ | 通过API告诉Ralasafe当前是谁(User user),打算进行什么操作(int privilegeId,也相当于请求查询什么数据)。API本身并不包含任何权限信息。这种层级查询权限,交由Ralasafe设计器解决。Ralasafe设计器设计权限策略。当应用程序调用Ralasafe API的时候,将由Ralasafe专业引擎解析权限策略,并进行数据库查询,返回查询结果。以下是该场景设计权限策略: | ||
+ | |||
+ | [插入图片] | ||
+ | |||
+ | Ralasafe同时还提供了分页查询和自定义查询API。 | ||
+ | |||
+ | <pre> | ||
+ | package org.ralasafe; | ||
+ | |||
+ | |||
+ | |||
+ | import org.ralasafe.entitle.QueryResult; | ||
+ | |||
+ | ... | ||
+ | |||
+ | public class Ralasafe { | ||
+ | |||
+ | //分页查询 | ||
+ | |||
+ | public static QueryResult query(int privilegeId, User user, java.util.Map context, int first, int max); | ||
+ | |||
+ | //自定义条件查询 | ||
+ | |||
+ | public static QueryResult query(int privilegeId, User user, java.util.Map context, | ||
+ | |||
+ | CustomizedWhere where); | ||
+ | |||
+ | //自定义条件并分页查询 | ||
+ | |||
+ | public static QueryResult query(int privilegeId, User user, java.util.Map context, | ||
+ | |||
+ | CustomizedWhere where, int first, int max); | ||
+ | |||
+ | } | ||
+ | |||
+ | ... | ||
+ | |||
+ | package org.ralasafe.entitle; | ||
+ | |||
+ | public class QueryResult { | ||
+ | |||
+ | //查询结果记录数 | ||
+ | |||
+ | public int getTotalCount(); | ||
+ | |||
+ | } | ||
</pre> | </pre> |
2011年6月12日 (日) 15:02的版本
Ralasafe功能
从某种意义来说,Ralasafe给权限管理领域带来一种全新思考。它是从业务功能角度出发,并非从编程角度出发;提供最简单实用的API,供开发人员集成到业务系统,将复杂的权限逻辑全部交给Ralasafe;并非提供某种强大而又神奇的模板,或者某些强大而又神奇的权限设置界面。
通过API调用和Ralasafe设计器设计工作,减少很多编程工作。Ralasafe提供的界面完全面向开发人员和IT管理员,因此开发人员还需要为业务系统编写“权限管理”相关界面。(仅仅是界面,不需要在各处业务应用做权限逻辑验证等开发工作)
查询权限
场景举例:总公司用户查询所有员工;北京分公司用户只能查询北京分公司及下属子公司员工;海淀营业部用户只能查询海淀营业部员工。
Ralasafe的查询API,可以满足以上场景:
//返回QueryResult对象, //通过QueryResult.getData()获取查询值Collectio<定制的ViewObject/Javabean> org.ralasafe.Ralasafe.query(int privilegeId, User user, java.util.Map context);
通过API告诉Ralasafe当前是谁(User user),打算进行什么操作(int privilegeId,也相当于请求查询什么数据)。API本身并不包含任何权限信息。这种层级查询权限,交由Ralasafe设计器解决。Ralasafe设计器设计权限策略。当应用程序调用Ralasafe API的时候,将由Ralasafe专业引擎解析权限策略,并进行数据库查询,返回查询结果。以下是该场景设计权限策略:
[插入图片]
Ralasafe同时还提供了分页查询和自定义查询API。
package org.ralasafe; import org.ralasafe.entitle.QueryResult; ... public class Ralasafe { //分页查询 public static QueryResult query(int privilegeId, User user, java.util.Map context, int first, int max); //自定义条件查询 public static QueryResult query(int privilegeId, User user, java.util.Map context, CustomizedWhere where); //自定义条件并分页查询 public static QueryResult query(int privilegeId, User user, java.util.Map context, CustomizedWhere where, int first, int max); } ... package org.ralasafe.entitle; public class QueryResult { //查询结果记录数 public int getTotalCount(); }
分享您的观点