`
varsoft
  • 浏览: 2438286 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

[转]发布一个权限管理程式

阅读更多

// 程序下载地址: http://phpx.com/happy/attachment.php?s=&postid=694646

这只是一个示例程序,因为时间关系,只写了一些简单的应用,其它的功能,靠你慢慢去发现。
权限是永恒的话题,如果本程序你有任何不明白的地方,都可以发信到我的邮箱 biedy_sun@eyou.com来询问
产品开发目的是用在小弟下个产品OA中,是个商业程序,先发放这个代码,希望大家喜欢。
程序并未经过DEBUG测试,如因使用程序遇到的问题,本人负责解答,但带来的一切后果,本人概不负责

本来是要提供后台实例的,但由于时间关系,就不提供了。
就麻烦你在数据库里直接操作了。或者你可以写个后台,应该是很简单的。

程序运行:
首先,得到用户所在的 groups 通过 member_groups_relation关联得到查询语句请查看perm类中的 getMemberGroups()方法;
其次得到用户组所在的groups权限内容,此操作通过查询 groups_perm_relation 关联得到。查询语句你可以从perm类中的 getGroupsPerm()方法得到。
接着,我们要得到此用户的附加权限,也就是区别于他所在的权限组的权限,此操作通过member_perm_relation 表得到,查询语句可能参考 perm 类中的 getMemberAddPerm()方法。
在完成了以上操作后,我们要进行权限合并了。
通过perm中的getMemberAllPerm()方法得到所有此用户所有权限id即pid,其中用到的合并数组函数array_merge()及array_unique()移除数组中重复的值函数, 你可以查一下手册,得到更详细的说明。

因为本实例是为开发OA用的权限系统,所以,加入了更多人想要的隐藏无权限分类及文件。perm函数中的 getFatherMenuID()是比较重要的一环,我思考了许久才做出来,因为第一次这样做,不知效率如何,望大家测试。主要通过此方法得到相应权限的父线索ID,在此方法中,去了没有权限的分类,然后通过 getMemberPermAllList() 得到所有当前用户的分类及分类下拥有权限的文件列表,大家可以对本程序评论一下。

其中的另一个重点是checkPriv.calss.php 文件中的check()类,这个文件决定了是否有进入本页面的直接权限。工作原理如下:
1.首先得到当前文件需要的权限id即permission中的id
2.通过 check类中的checkFilePerm()方法检查用户是否有此项权限操作,根据获得的结果,返回true或者false
3.在相应的页面加入checkFilePerm()方法进入验证。至如如何得到的,请自行研究或者跟贴发问。

本例中所有用到的函数只有三个,都可以在includes/functin.php中找到,这是一个函数集。
之所以发表这个东西,是因为偶是第一次写这样的权限类,以前都是用别人的,也算是偶对村里的一个贡献吧,从村里获取的东西太多了。还有,以前答应了 PHP Family(31::838) 闲哥等人要求偶写的关于 php应用项目中的目录分配。其实这个目录分配还不够合理,但对于一般应用的企业网站来说。足够了。以后有机会把偶开发OA的目录架构方案拿出来供大家讨论。谢谢。

安装,新建数据库 perm 导入文件perm.sql。配置configs.inc.php,以配合程序运作。注意设置网站物理路径 define("ROOTPATH","x:/xxxxx");

因为时间紧没有写login程序,所以在index.php 声明了一个 $_SESSION['user']['uid'];如果你使用本程序,在设定session时,请遵守本程序的设定原则或者更改perm.class.php 文件中的 perm()方法:$this->mid = $_SESSION['user']['uid']为$this->mid = 你设定的session方法,如$_SESSION['userID'];

对,还有一点是此实例中包含了adodb及smarty的配置操作,前阵子大家讨论的比较多,初学者也可以通过此了解一点。不敢说是很棒的,但偶一直这样用,觉得很爽。

下载链接 http://phpx.com/happy/attachment.php?s=&postid=694646 // 里面是使用smart和adodb做的,推荐下载

分享到:
评论

相关推荐

    TourHost旅游电子商务套件

    【转自2ccc.com】程式使用数据库:MS SQL SERVER 2000程式采用的是ADO访问数据形式,所以能够较为方便的扩充至其他类型数据库.主要功能:会员管理(简单的客户关系管理)角色化的操作员权限公司员工信息库维护公司部门...

    小程序运营管理系统源码.zip

    可拖拽式DIY布局,开启自定义功能新征程,无需繁琐操作,轻松拖拽即可实现界面布局;同步实时预览,可视化操作让您所见即所得,随心打造个性小程序。 丰富功能组件,应多种场景需求 多样的功能组件,不受行业框架...

    138CMS网站管理系统 V3.0版发布

    前台会员登录保存Cookies控制、后台多管理员及权限控制、前台会员上传图片控制 13.站内关键字链接、根据词库自动获取标题关键字 14.数据库表名前缀自定义 15.后台多管理员及权限控制、前台会员上传图片控制 ...

    高端发布-Zoomla!逐浪CMS2.0开启网站内核新纪元

    ●增加Oracle数据库安装程式(仅供商业版客户购买) ●网店系统发布 ●提出全新的用户模型理念,使会员结构自由灵活,打造自主的“会员魔方” ●开放SNS系统,可以建立高品质的SNS平台,与主站完全一体,是国内首家...

    小程序运营管理系统源码 自由DIY布局 一键生成小程序.rar

    可拖拽式DIY布局,开启自定义功能新征程,无需繁琐操作,轻松拖拽即可实现界面布局;同步实时预览,可视化操作让您所见即所得,随心打造个性小程序。 丰富功能组件,应多种场景需求 多样的功能组件,不受行业...

    cms!NT2.0版本源码

    遵从 GENERAL PUBLIC LICENSE(GPL) 开源协议,这意味着可以修改程序的一个或几个副本或程式的任何部分,以此形成基於这些程式的衍生作品。必须在修改过的档案中附有明显的说明:您修改了此一档案及任何修改的日期。...

    知识管理程序文件.pdf

    知 识 管 理 程 序 延锋彼欧 编号:YFPO-SS04-21 版本/版次:1/0 第 1 页 共 6 页 本程序公司网页发布版有效,其他方式的文件仅供参考。 资产类型:C 1.0 目的 为了规范公司各种知识的识别挖掘、维护管理和运用分享...

    Java EE常用框架.xmind

    shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证、用户授权 传统使用URL拦截的时候,要将所有的URL都配置起来,繁琐、不易维护 而我们的Shiro实现系统的权限管理,有效提高开发效率,从而...

    X3BLOG 单用户版 FOR ACCESS 1.0beta 源代码

    您必须让您发布或出版的作品,包括本程式的全部或一部分,或内含本程式的全部或部分所衍生的作品,允许第三方在此许可证条款下使用,并且不得因为此项授权行为而收费。 <br>功能与特点 <br> X3-BLOG完美的...

    X3BLOG AJAX国产大型开源多用户博客系统 1.1.0.beta1源码版

    X3-BLOG 遵从 GENERAL PUBLIC LICENSE(GPL) 开源协议,这意味着可以修改程序的一个或几个副本或程式的任何 部分,以此形成基於这些程式的衍生作品。必须在修改过的档案中附有明显的说明:您修改了此一档案及任何...

    X3BLOG AJAX国产大型开源多用户博客系统 1.1.0.beta1编译版

    X3-BLOG 遵从 GENERAL PUBLIC LICENSE(GPL) 开源协议,这意味着可以修改程序的一个或几个副本或程式的任何 部分,以此形成基於这些程式的衍生作品。必须在修改过的档案中附有明显的说明:您修改了此一档案及任何...

    chrome.exe

    本软件的程式码是基于其他开放源代码软件所撰写,包括WebKit和Mozilla,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。软件的名称是来自于又称作“Chrome”的网络浏览器图形使用者界面(GUI)...

    Memcached缓存资料

    由于memcached通常只是当作快取系统使用,所以使用memcached的应用程式在写回较慢的系统时(像是后端的数据库)需要额外的程式码更新memcached内的资料[1] memcached 是以LiveJournal 旗下Danga Interactive 公司的...

    新版Android开发教程.rar

    Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...

    逐浪CMS2 x2.0.zip

    4、执行安装程式/install/Default.aspx; 5、访问您的站点域名http://url/admin/login.aspx 进入后台,建立模型、标签和模板,即可开始您的建站之旅,更有优秀的模板云和微门户响应式接口满足高端数据挖掘需求。   ...

    010文件控制程序.doc

    " "3.0 相关部门职责和权限 " "3.1 总经理负责批准、发布质量手册和程序文件。 " "3.2 管理者代表/质量负责人负责审核质量手册和程序文件。 " "3.3 文控中心负责体系文件的发放和管理。 " "3.4 研发部负责技术文件...

    3C程序文件汇编.pdf

    XXXX 电气设备有限责任公司 【高低压成套开关设备和预装式变电站系列产品的生产和服务】 程 序 文 件 汇 编 WE/CX/2009 依据 GB/T19001—2008/ISO9001:2008 质量管理体系要求和电气电子产品类强制性认证 实施规则:...

Global site tag (gtag.js) - Google Analytics