`
we1818
  • 浏览: 60148 次
  • 性别: Icon_minigender_1
  • 来自: 湖州
社区版块
存档分类
最新评论

joomla源代码探析续(二十六)JUser对象和用户权限判断

    博客分类:
  • php
PHP 
阅读更多
每一个访问Joomla网站的用户都对应这一个JUser对象,通过$user =& JFactory::getUser() 就可以获得这个对象引用并访问对象的成员函数和属性。

下面的代码就是显示用户的名称,邮件的一段代码:

echo "

Your name is {$user->name}, your email is {$user->email}, and your username is {$user->username}
";
echo "

Your usertype is {$user->usertype} which has a group id of {$user->gid}.
";


我们来看看JUser的属性和成员函数:

id - 用户唯一编号
name - 姓名
username - 帐号
email - 邮件
password - 密码
password_clear - 用户修改密码的时候设置真
usertype - 用户类型(Super Administrator, Editor)
gid - 用户的类型id ,与usertype对应
block - 是否被阻止,如果阻止就设为1
registerDate - 注册日期
lastvisitDate - 最后一次登录日期
guest - 如果用户未登录就设置为1,其他以上的字段都设置为空

以上的属性都可以直接访问,如果想获取数据库中其他的参数,可以通过 getParam函数来获得,下面的代码获取的用户的语言参数:

$user =& JFactory::getUser();
$language = $user->getParam('language', 'the default');

echo "

Your language is set to {$language}.
";

通常判断用户是否登录都是通过guest来判断的,当然通过id是否大于0也可以。


用户访问权限

不同的Joomla用户可能会有不同的权限,可以通过 authorize()成员函数来判断一个用户是否具有执行某项任务的权利。authorize()有四个参数,第一个是我们要验证组件或者函数,第二个是任务,第三,四个分别是记录类型record types和ownership respectively相对关系,(英文很清晰,中文怎么这么难懂)。

libraries/joomla/user /authorization.php文件中包含了所有的用户权限项。我们来看下面的代码:

$user =& JFactory::getUser();

if ($user->authorize('com_content', 'edit', 'content', 'all')) {
echo "

You may edit all content.
";
} else {
echo "

You may not edit all content.
";
}

if ($user->authorize('com_content', 'publish', 'content', 'own')) {
echo "

You may publish your own content.
";
} else {
echo "

You may not publish your own content.
";
}

上面的第一段代码就是判断用户是否可以编辑所有的文章,第二段则是判断是否可以发布自己的文章。

如果你自己开发了扩展,标准的权限也许并不合适你,那么你还可以添加自定义的权限项。以下是添加权限的代码例子:

$auth =& JFactory::getACL();

$auth->addACL('com_userinfo15', 'persuade', 'users', 'super administrator');
$auth->addACL('com_userinfo15', 'persuade', 'users', 'administrator');
$auth->addACL('com_userinfo15', 'persuade', 'users', 'manager');

$user =& JFactory::getUser();

if ($user->authorize('com_userinfo15', 'persuade')) {
echo "

You may persuade the system to do what you wish.
";
} else {
echo "

You are not very persuasive.
";
}

在我们自己的扩展中,进入组件或者插件的前部,就写如这样的代码,就可以判断是否有访问和执行某项任务的权限了。
分享到:
评论

相关推荐

    joomla源代码探析

    joomla源代码探析,比较详细阐述了joomla框架

    joomla 组件 开发 详解 (附带源代码)

    joomla 组件 开发 详解 (附带源代码) joomla 组件 开发 详解 (附带源代码) joomla 组件 开发 详解 (附带源代码)

    Joomla2.5.16源代码

    Joomla模板,用于本地测试安装

    joomla模块用户列表

    提供Joomla展示用户列表的功能,已中文化

    joomla_1.5_源代码ipnu.docx

    比较详细的分析joomla1.5源码。可以对应着源码一起学习

    joomla漏洞利用代码

    joomla漏洞利用代码,影响版本joomla1.5-3.4.最开始检测到利用该漏洞实施入侵的是 Securi 安全团队

    文章内容阅读权限控制插件(joomla2.5.x)

    例如,第一部分只允许名叫“Tom”的用户阅读,第二部分只允许名叫“Jack”和“Emy”的两位用户阅读。 Core Design Access Text plugin 除了“按用户名控制阅读权限”,还允许“按用户级别控制阅读权限”,例如某...

    joomla第三方登录开发过程

    joomlaQQ登录、微信登录等第三方登录等经验解析

    Joomla! 用户宝典

    Joomla! A User's Guide: Building a Successful Joomla! Powered Website中文版。...扩展(Extending)消息,你可以跳到第六章,“扩展Joomla!”另外,附录里还额外介绍了关于Joomla!各个方面的一些有价值的信息。

    joomla代码分析

    joomla代码分析 对于二次开发有帮助 喜欢的可以下

    joomla 免费企业模版

    joomla 免费企业模版,精美模版

    joomla资料 joomla开发 joomla教程

    您可以在这里免费获得joomla资料,您也可以分享您的joomla心得,方便发大家互相学习。聚集Joomla爱好者,彻底改变Joomla在中国发展的面貌。我们的目标是让全世界最优秀的CMS系统—Joomla真正的走向中国,为Joomla在...

    joomla表结构介绍

    joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构...

    joomla1.5使用教程 - 中文手册

    Building.Websites.with.Joomla1.5 & joomla 1.5建站宝典 第一单元:术语,概念,和审议 joomla 1.5安装方法 第三单元 前台内容 第三单元 前台内容? 第三单元 后台 Joomla 管理配置! 帮助菜单 网站菜单 用户管理器...

    joomla模板仿制教程第二集

    joomla模板仿制教程第二集,基础入门教程

    joomla and joomla

    joomla

    Joomla CSS JS代码压缩插件

    Joomla CSS JS代码压缩插件 Joomla2.5 Joomla 3X可用

    joomla! 的介绍和使用

    有关joomla的介绍 I Want a Web Site and I Want It Blue — How Much Will That Cost?

    joomla七牛插件

    joomla七牛插件,加速网站的速度。系统会自动将你网站的静态内容同步到你的七牛空间,让你的Joomla网站飞起来!

    Joomla1.5升级为Joomla2.5(

    zmax程序人 将Joomla1.5版本的模板移植到Joomla2.5上的经验总结

Global site tag (gtag.js) - Google Analytics