手机版

二维码 Wap移动客户端
进入手机端

Joomla用户权限管理—初级篇

作者:快乐逍遥


Joomla在中国大部分情况下仅仅被用作产品展示(无用户),或者是简单的所有者(superuser)+注册用户(resgister)模式。

这时你并不需要去深入了解joomla权限管理的机制。但当你的网站用户达到一定的规模,或者你希望用Joomla做社交之类更复杂的用途,你的用户群体被分为普通用户,会员,高级会员等,你也需要更多低级、高级管理人员协助你管理网站时,你就必须要了解Joomla的用户权限管理。

Joomla的用户系统是由com_users组件来完成的。在后台你可以看到用户这个菜单。

Joomla用户权限管理

在它的子菜单里,最重要的三项,用户,用户组,访问级别 ,这三者之间的关系就是用户权限管理的核心。

用户在系统中的操作(权限)大体分为四种:创建,查看,更新,删除。也就是我们常说到的CRUD。

这其中用户组控制创建,更新,删除,而访问级别控制在前台的查看。

Joomla用户权限管理

以下是系统默认的用户组和访问级别,这些都是可以根据需要自己进行增减修改的

Joomla用户权限管理

Joomla用户权限管理

一.用户组

先说用户和用户组的关系

每一个用户都需要拥有一定的权限才可以在网站中做一些操作,这些权限或大或小。你不可能一一为每个用户去赋予权限,所以出现了用户组这个概念。你可以直接对组赋予权限,所有属于这个组的用户都拥有这个组所拥有的权限。

所以每个新增用户,你都需赋予他一个用户组。默认是Registered用户组,也就是注册用户。

Joomla用户权限管理

进入全局设置——用户管理,也能看到,对前台注册也做了设置。当用户自己在前台注册时,会被自动添加到Registered这个用户组里。

Joomla用户权限管理

不同的用户组直接关系到用户可以在这个网站里做什么,你的admin可以访问后台而普通用户不行,就是因为所属的用户组不同。如果你不给用户任何用户组,那么他在这个网站里什么也做不了。

上面一直在说,不同的用户组具有不同的权限,这种不同是在哪里设定的?

Joomla用户权限管理

这里定义了不同用户组在网站分别可以做什么。

Joomla用户权限管理

上面这张图,应该分两部分来看,这四项是网站层面的权限。

Joomla用户权限管理

这六项是组件层面的权限

Joomla用户权限管理

①网站层面

先说说图中设置项里"继承"的含义。用户组是存在层级之分的,可以明显的看到,Public是最底层的,也就是权限最低的用户组。Guest、Manager、Registered、Super User是比Public高一层的用户组,都是Public权限的继承者。

Guest的设置全部是"继承",意思是继承Public的相应权限,然而Public没有任何权限,所以Guest也没有任何权限。

Joomla用户权限管理

Manager在"超级管理"和"扩展的管理界面访问权"两项是继承,也就是继承自Public。Public并没有这两种权限,所以Manager也没有这两个权限。而其他的八项设置都是允许,所以Manager获得了其他八种的权限。

Joomla用户权限管理

Administrator是Manager的继承者,在继承了Manager已经拥有的权限的基础上,又允许了"扩展的管理界面访问权"这一权限,所以除了"超级管理"这一权限,Administrator拥有了九项权限。

Joomla用户权限管理

Regisered在"登录前台"这一项是允许,其他的权限继承于public,所以Registered(默认的用户组)用户只能登陆前台。

看到这里,大家已经知道了普通用户不能访问后台的原因。其他的同理,不再一一说了。

②组件层面

说完网站层面的权限设置,再说说组件层面的六项权限设置。

很简单,关于组件的增删改已经访问、设置权限。

这些设置其实是总体的预设置,相当于默认值这个概念。Joomla的用户系统是由com_users组件实现,文章系统由com_content组件实现,菜单导航由com_menus组件来实现。虽然是不同的组件,但对对权限的需求大体都是增删改看。就以创 "建任何内容"这条设置为例,在com_users中,它代表创建用户的权限,在com_content中,它代表创建文章。

Joomla用户权限管理

但是,很多时候,网站有自己更精确的权限控制需求。也许在我的网站上,我需要Manager这个用户组有创建文章的权限,却不希望它有创建用户的权限。

所以通过这一条设置,并不能满足所有情况。

那么,我们需要进入到各个组件的权限设置里,进行精确设置。

Joomla用户权限管理

在全局设置下方,是你网站所有的组件的列表。

Joomla用户权限管理

每个组件都有自己的权限设置,这里的权限就是针对当前组件的。你可以在这里对用户组作更精确的权限设置。

这里要提一句的是,还是继承。

以Author为例,它在创建任何内容、编辑自己的内容两项是允许,设置是"继承"。但是打开它的上一级,也就是Registered,却并没有这两项权限。那么Auther关于这两项的权限继承自哪里?

答案是全局设置里的Auther的设置。这也就是我前面说的总体的预设置。

这里Auther是同时继承当前组件Registered组的权限和全局设置里Auther的权限,是一个多重继承。

综合以上所说的,大家想想很多国外的Joomla扩展商的demo网站。它会给你一个账号试用他的产品,你可以用这个账号登录到他的后台,但是只能看到这一个组件的界面,其他的用户、菜单的项一个都看不到。其实就是建立了一个用户组,只给了访问后台的权限,并只在这一个扩展里赋予了"扩展的管理界面访问权"权限。给你的账号就属于这个用户组,所以你只能在后台管理这一个扩展,其他的都看不到。

所以如果大家以后有开放后台给用户展示的需要,或者建站的用户索要管理员账号我们却不希望用户看到太多后台的东西,就可以把不想让用户看到的组件,不给"扩展的管理界面访问权"权限到用户所在的用户组。

二.访问级别

Joomla用户权限管理

访问级别,就是用来控制用户在网站前台"看"的权限。我们通过菜单组件建立的每个页面都需要指定访问权限,通过文章组件新建的每一篇内容都需要指定访问权限。因为很多时候,我们只想把一些内容对指定的人开放。

说说用户组和访问级别之间的关系。一个用户组可以属于多个访问级别,一个访问级别也可以包含多个用户组,是一个单纯的多对多关系。它不像用户组那样存在层级关系,访问级别不存在大小高低之分,仅仅是包含的用户组不同而已。

Joomla用户权限管理

举个例子,我的网站有初级会员,中级会员,高级会员,初级管理员,高级管理员五种用户组。我发布了三篇文章A、B、C。我希望初级用户、中级用户看到文章A,高级用户、初级管理员看到文章B,高级管理员看到文章C。

那么我就可以创建一个访问级别X,包含初级会员,中级会员。访问级别Y,包含高级会员,初级管理员。访问级别Z,包含高级管理员。

然后分别在这三篇文章指定以上XYZ三个访问级别即可。

以上就是我对Joomla用户权限管理的一点点粗浅的认识,不对的地方欢迎指出。

后面还有一篇开发Joomla扩展时如何控制权限的教程,过段时间发布。主要是涉及到代码的部分如何实现,属于给程序员看的,不搞代码的人就不用看啦!


路过

雷人

握手

鲜花
该文章已有0人参与评论

请发表评论

全部评论

零度号 © 2011-2020   蜀ICP备13025384号-8

      安全联盟认证