Ralasafe/user/hello world

来自开放百科 - 灰狐
2011年6月12日 (日) 15:02Grady (讨论 | 贡献)的版本

跳转到: 导航, 搜索

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();

}
分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱