网站后台权限管理

以前写的一篇文章

最近在做网站后台,做网站后台就涉及到权限管理,就以我现在做的后台为例采用分组方式,建立不同的组,不同组对不同栏目有不同的权限,子栏目继承父栏目的权限,即父栏目有写权限,好么该组对这个栏目下的子栏目就有写的权限,为了省事只能对组进行权限设置,没有对每个用户进行权限设置。

每个栏目有四种权限,分别为:删、写、改和读,就像Windows的权限设置一样。为了操作的方便,利用二进制方式对组进行每个栏目的权限设置和存储。

  • 删(1000)
  • 写(0100)
  • 改(0010)
  • 读(0001)
    举几个例子:

  • 读写:0001+0100=0101

  • 删改:1000+0010=1010
  • 读写删:0001+0100+1000=1101
    以此类推,二进制好像不好理解,我们可以换成十进制,删(8)、写(4)、改(2)、读(1),这样读写操作就应该是1+4=5,以此类推,不过最后还是要转成二进制操作方便,按位操作就可以了。

看了上面的介绍有些人会问只是有删和改的,都不能读,那怎样进行删和改操作呢?其实也不必定的太死板,一个用户组你想他有删除的权限,当然要设定读的权限给该组啦。

用MVC模型引导你的WEB设计思路-第二版

习惯于过程式的开发,一直向往着面向对象。无奈半路出家人,没有一点内力基础,看了一大堆面向对象的书也只是看得一头雾水。对于MVC的概念也是偶然了解到的,感觉能和WEB开发结合起来让项目面向对象化。以下是我一点点心得。
先介绍一下MVC的概念:
MVC(Model-View-Controller),即把一个应用的输入、输出、处理流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。
 模型(Model):就是业务流程/状态的处理以及业务规则的制定。即是MVC的主要核心。
 视图(View):代表用户交互界面,也就是Web的HTML界面。
 控制(Controller):可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。

以下以一个简单的留言板作为分析例子。

1)从上面的概念来看,留言板可以切成三部份。
 模型(M):包含 数据库链接、生成数据集、数据库更新操作。
 视图(V):包含 获取模型的数据集,将数据集内填充到各种显示界面内,如(留言板列表,管理控制页面,添加修改删除界面等一切用户看得到的页面。)
 控制(C):包含 数据库更新的数据校验,将更新完毕后的结果转交给视图进行呈现。

2)三部份已经出来,下面是更进一步的细化。
 模型(M)
  数据链接:数据链接参数、链接失败处理。
  数据操作:生成固定格式的数据集、运行单行SQL、解析固定格式的数据集更新数据库(内容包括有:留言记录,管理员帐号,系统设定)。
  文件操作:将文件内部格式封成数据集,并附带读取写入文件操作。(内容包括有:留言板样式设定、版权设定、搜索引擎关键字设定、留言板标题设定)
 视图(V)
数据显示:根据要求授权给控制器[C]向模型[M]请求数据集,然后根据数据集显示出界面。
操作结果显示:根据控制返回的数据资料决定显示的提示资料
具体资料包括有:
  留言添加页:判断留言者是否管理员、判断本次留言是回复还是新建留言。
  留言管理页:批量删除留言、查询留言、管理员帐号管理、系统设定等。
  留言显示页:判断留言是否为管理员专用、判断本留言是否为管理员发布、是否允许回复、是否显示留言者的敏感资料、留言是否需要审核后再显示。

 控制(C)
  数据/文件操作:接收操作资料,校验数据是否符合条件,引用模型的生成数据集类生成指定数据集,然后交给相应的模型操作方法操作,并获取操作结果以预定好的格式转交给视图处理

3)系统基本上细化完毕,下一步就是将以上分析出来的东西封装成Class
  模型(M):
    数据库链接和数据操作可以封成一个Class。
    数据库数据集的结构,可以引用Dictionary控件与数组完成。其间操作也可以封成一个Class具体可以仿造ASP.net中Dataset对象的部份机构。
    文件操作部份封装成一个Class
    文件结构定义可以封成一个Class以方便控制直接引用,然后转交给文件操作Class进行相应的操作。
  视图(V):
    视图部可均是以文件模式出现,也可以将部份代码封装后引用。也可以引用现有的模板类实现代码分离等。
  控制(C):
    数据校验:SQL注入防御处理、日文字符替换处理、特定常用校验正则式,这个是控制器常用的函数,可以封成Class也可以以函数型式存在独立文件,使用时直接引用。
    数据/文件更新操作:由于直接操作,可以避免使用Class,而是以文件模式出现,每个文件处理模型(M)中的某个类。并完成控制(C)的工作。
    视图[V]模型[C]链接器:接收视图[V]要求数据集的请求,将请求转换成模型[M]合适的SQL句,然后交给模型[M]数据集成生器生成数据集,然后返回给视图[V],这个处理比较麻烦,如果没必要作得太严谨的话可以直接使用字段名,并在视图[V]以SQL标准的条件句进向模型[M]请求数据。

 疑:
  视图[V]模型[C]链接器,对这个的设定我还是有点迟疑的。因为在MVC中,V对M的请求中是不需要C的掺和的,但是,这个链接器的操作确实很符合C的概念,所以这里我把它放在了控制器[C]里。或许他可以放至在视图[V]内。毕竟这个是视图[V]的事。这个就看每个人对MVC的理解了。

以上基本完成了留言板的结构分析与类的抽象,有不少的地方比较繁琐,甚至是啰嗦,一个留言板其实是没必要这样,不过,这个例子里作出来的不少Class可以直接使用在其它更大的项目中去,比如控制器[C]中的数据集请求转换器,校验部份、模型[M]中的数据库链接等,之所以遵循MVC模型进行编程不但是为了让程序设计更灵活,最重要一点是可以很快将项目拆开成一小块一小块,然后又将这些小块再折成更小的块,一直折到单个类的某个方法某个属性,等你完成这些小块代码后,那系统也就完成了。
其实这个已经是第二版,非常感谢蓝色经典里的5do8[老农],他看了我的第一版之后和我聊了不到十分钟,让我重新认识了MVC,更进一步的完善了这篇引导文章。我还在继续摸索中,也有可能会不断的更新这篇资料。希望对大家都有所帮助。
如果对上面的资料有什么想法和建议的可以到我的Blog找我,本篇文章的最新版可以到(http://blog.csdn.net/oyiboy/archive/2006/02/09/595164.aspx)查看。

春天还没有走?

自从“珍珠”来了以后就一直下雨,“珍珠”过后是有过一两天太阳,但之后又一直下雨了,很有春天的感觉,就是雨大了点,每天的空气都是出奇的好,我非常喜欢这样的天气,但是不好的是衣服,洗了一直不干,就算是干了的衣服也有一股臭味。

昨天晚上是初中同学聚会,已经两年没搞过了,但是这次比上次还要少人,以前都有来的人有些没有来,以前没有来过的人却出现了。大部份人都已经出来工作了,有少部份人还在读大学。令我比较尴尬的事是个个都记得我的名字,但我偏偏有某些人没什么印象,虽然隐约记得些名字,但完全不记得和他/她以前在学校的事,可能是因为太久没联系,或者和他/她在学校根本没什么值得记得的事,什么也好,我还是挺期待下一次聚会的,明年,后年,以后也是。。

停电

今天又停电了,已经不记得是第几次了,谁叫我们公司在工业区里面呢,用电高峰期一定会受连累的,刚刚“珍珠”走了就立即停电了,不知道到了七八月份每个月要停多少次呢,还好可能那时候我已经不在中山了,广州应该不会常停电。

今天也没做什么事,停了一早上,中午的时候玩玩游戏,下午在研究支付宝,自己写了一个类,其实昨天已经写好了,只是没试过,生成按钮是没什么问题了,不同的参数生成不同的按钮,今天就是把买家付款后通知卖家写好,但不知道为什么总是有点问题,明天再调试一下,支付宝的密码实在是太长,经常要输入密码,我越写越烦。。。不知道明天有没有电。。。

抉择

公司已经决定要把我们这个部门移上广州,和林颐的人重新组建一间公司,专门运营orangelam和天生快活人的电信增值服务,搬上广州意味着我又要长期在广州住了,毕业前我已经决定不在广州工作了,所以直接回到中山找工作,学校组织的招聘会一个我也没去,现在没办法了,逼着要去,我不像其它人就算自己不做家里也有钱,所以还是先做下去再算吧。

昨天把这个消息告诉他们的时候就问他们谁跟我上广州,其实已经说了一个月了,最主要是三个人上去其它留在中山做公司的其它业务,但结果另我失望,竟然一个也不去,就连我的好朋友也不跟我去,当时我只觉得自己很失败,我觉得自己并不是管理别人的料,一直以来我都是尽量用“哄”的方式去叫他们做事,可能是因为这点吧。不过想想也是,我和他们非亲非故,而且这个网站有没有“钱途”现在还是未知之数,况且除了志之外其它的都没试过在外面呆过这么长时间。

上广州是确定的了,现在要想的是以后怎样管理。

再次收到Gmail邮局的试用

昨晚收到了gmail for bubutang.com的试用邮件,立即登录激活,不过到现在还没有时间把MX记录转到gmail,刚刚上网又收到了gmail for tao.la的试用邮件,这个星期要找个时间试用一下,不过我最想的gmail for orangelam.com还没收到,不过可能明晚就会收到了:)

这两天找我要wml邀请的人又增多了,前段时间不是说可能登录了吗,不知道是不是新版本的问题,不理,反正live.com上不了,我虽然收到了有邀请的EMAIL,但还是发不了,等可以访问了再发吧。

p.s:明天又要去广州了,痛苦ing…

再次p.s:在百度搜索https 封锁竟然是我第一,不知伟大的墙因此封了我的BLOG