网上搜索了一番,用于控制flex UI组件的权限的框架只有chimp相近一些.
但是不喜欢他的基于flex annotation的权限控制方式.遂决定自己写一套flex权限控制框架。
如果你熟悉作者的另外一套javascript 表单验证框架rapid-validation,将会对下面的使用方式有似曾相识的感觉。
一.快速开始
1) 下载并添加flex_security.swf在你的flex libs中
2) 启动权限控制
//启动权限控制,permissions为用户拥有的权限字符串列表
SecurityControler.start(permissions,'visible');
3) 通过增加styleName=security(permission,controlBy)为你的按钮增加权限控制
<mx:Button label="new user" styleName="security(user_new)" />
<mx:Button label="update user" styleName="security(user_update)"/>
如上,如果用户拥有这两个权限(permissions):user_new,user_update,则可以见到这两个按钮,然后执行相关操作
注意:如果你不喜欢styleName添加权限保护,还有其它方式:如实现接口,编程方式增加,请查看后面的demo
二.ActionScript代码的权限控制
if(SecurityControler.isPermitted('blog_delete'))
{
//execute delete blog action
}
三.在线demo
四.详细描述
1) styleName: security(permission,controlBy)
- permission: 权限标识,用户拥有该权限,才可以执行相关操作。可选参数,如果为空,则会取该comp.id作为permission
- controlBy: 按什么方式来控制权限,有(visible,enabled,includeInLayout,remove)。可选参数,如果为空,则取SecurityControler?.start(perms,defaultControlBy)中的defaultControlBy的值,默认是visible
2) controlBy: 按什么方式来控制权限
- visible : 可见性,有权限为true,没有权限为false
- enabled : 激活状态,有权限为true,没有权限为false
- includeInLayout : 有权限为true,没有权限为false
- remove : 使用removeChild()将对象从parent中remove掉,有权限不remove,没有权限则remove
- all : 包含前面所讲的:visible,enabled,includeInLayout,但不包含remove
3) SecurityControler类,包含全部的主要权限控制操作
/**
* 启动权限控制
* permissions: 字符串列表,为拥有的权限
* default_control_by: 按那种方式控制权限,可选值: visible,enabled,remove,includeInLayout
*/
public static function start(permissions:ArrayCollection = null,default_control_by : String = "visible"):void
//停止权限控制
public static function stop():void
// 移除所有权限
public static function removeAllPerms():void
/**
* 更新拥有的权限
* perms: 字符串列表,用户拥有的权限
*/
public static function updatePerms(perms:ArrayCollection):void
//增加一条权限
public static function addPerm(permName:String):void
// 减少一条权限
public static function removePerm(permName:String):void
// 判断是否拥有权限
//示例: if(SecurityControler.isPermitted('blog_delete')) { do some thing}
public static function isPermitted(perm:String):boolean
项目地址: http://code.google.com/p/flex-security/
分享到:
相关推荐
5. **企业级应用设计**:在企业级应用中,数据管理、权限控制、状态管理、错误处理等都是核心部分。本书会介绍如何利用Flex构建可扩展、可维护的系统结构,以及如何处理大规模应用中的性能优化问题。 6. **富互联网...
`cfw-flex` 是一个基于J2EE架构并采用Flex技术的通用系统框架,专门设计用于构建企业级应用。它集成了登录验证、主页面展示、功能导航以及精细的权限管理控制,旨在提高开发效率,同时提供用户友好的界面和安全的...
《Flex+Java权限管理系统配置详解》 在信息技术领域,权限管理是系统安全的重要组成部分,它涉及到用户访问控制、角色分配以及...理解并掌握这个系统的配置和实现,对于提升企业级应用开发能力具有重要的实践意义。
总之,Flex学生成绩管理系统是一个集成了数据管理、查询、统计和权限控制的综合应用,展示了Flex在构建企业级Web应用程序中的强大能力。通过深入学习和实践,你可以更好地掌握Flex的开发技巧,并将其应用于更多的...
- **Flex Data Service**:这一组件允许Flex应用与后端服务器进行实时通信,支持高级数据服务,如数据推送、数据缓存和数据同步,使Flex成为构建企业级应用的理想选择。 - **Flex Builder**:作为一款集成开发环境...
Flex流程设计器是一款基于Adobe Flex技术开发的业务流程设计工具,其源码的提供为开发者提供了...总的来说,Flex流程设计器源码的开放为开发者提供了宝贵的实践和学习资源,有助于提升在企业级应用开发中的技能和经验。
Flex作为前端UI技术,提供用户友好的图形界面,而Spring作为企业级Java应用的中心框架,负责管理对象和服务,Hibernate则作为持久层框架,处理数据库操作。 1. **Flex技术**:Flex是一种基于ActionScript和MXML的...
4. **企业级的特征**:Flex 提供了安全的数据传输和强大的数据管理,适合构建大型企业级应用,如数据可视化、实时协作工具等。 5. **消除页面加载**:通过使用数据缓存和异步通信,Flex 应用可以减少对服务器的依赖...
2. **LCDS (LiveCycle Data Services)**: Adobe LiveCycle Data Services是Adobe Flex企业级解决方案的一部分,主要用于增强Flex与服务器端系统的集成。LCDS提供了实时数据服务,包括 Blaze DS、 Granite DS 和 ...
Flex与Java结合的学生管理系统是一个典型的企业级Web应用开发案例,它展示了如何利用Adobe Flex作为前端展示层技术,与Java后端进行数据交互,实现高效、动态的用户界面。在这个项目中,LCDS(LiveCycle Data ...
- **安全性和权限管理**:对于企业级应用而言,安全性和权限管理是至关重要的。本书详细讨论了如何在Spring与Flex集成的过程中实现这些功能。 #### 五、总结 《Pro Flex on Spring》这本书为希望在现有Spring应用...
在IT行业中,Spring框架是Java应用开发中的一个关键组件,主要用于构建企业级应用程序,而Flex则是一种用于创建富互联网应用程序(RIA)的前端技术。"flex_spring示例代码"这个压缩包提供了一个将这两者结合使用的...
10. **Flex的应用场景**:Flex常用于企业级应用、数据可视化、多媒体项目、游戏开发等,它的强大功能和便捷性使其在一段时间内成为RIA开发的首选技术。 文件名为"flexaweb",可能是指一个Flex开发的Web应用程序实例...
10. **Flex的应用场景**:Flex常用于构建企业级Web应用程序,如数据可视化工具、内容管理系统、在线协作平台等,尤其适合需要动态交互和丰富用户体验的场合。 这个"Flex 入门_2007"教程可能会涵盖以上提到的诸多...
通过学习和实践这个项目,Flex初学者不仅可以掌握Flex4的UI设计和Java服务器的交互,还能深入了解企业级应用的开发流程和最佳实践。同时,MySQL的集成增强了数据管理能力,使得整个系统更加完整和实用。
Spring Security 2.04版本提供了更强大的安全性,包括对角色、URL、方法级别的权限控制。 3. **Struts2**:作为MVC(模型-视图-控制器)框架,Struts2负责处理HTTP请求,将数据绑定到业务层,然后更新视图。它提供...
而J2EE则为开发者提供了强大的企业级服务,如事务管理、安全控制、集群支持等。 总的来说,Flex与J2EE的结合是现代企业级应用开发中常见的一种模式,它结合了前端的易用性和后端的强大功能,是构建复杂Web应用的...
同时,Spring的AOP(Aspect-Oriented Programming)支持可以方便地实现切面功能,如日志记录、权限控制等。 3. **Hibernate持久化**:Spring可以与Hibernate无缝集成,处理数据持久化。开发者可以通过编写DAO(Data...
它通过依赖注入(DI)和面向切面编程(AOP)等概念,简化了企业级应用的开发。Spring还包含了一个强大的数据访问层,支持JDBC、Hibernate、MyBatis等多种ORM工具,以及Web MVC框架,方便前后端的交互。 2. Adobe ...
SSH则负责处理系统的登录验证、权限控制、工作流管理、数据存储等核心功能。例如,Struts2可以定义控制器来处理用户操作,Spring可以管理服务层和DAO层的bean,而Hibernate则用于与数据库交互。 在文件名“flex_...