每一个访问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.
";
}
在我们自己的扩展中,进入组件或者插件的前部,就写如这样的代码,就可以判断是否有访问和执行某项任务的权限了。
下面的代码就是显示用户的名称,邮件的一段代码:
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 模块modules开发教程
2010-05-12 14:16 2758模块是页面扩展轻量级方式,相对组件更为灵活。模块通常用来做页面 ... -
joomla 1.5——JDocument类用法
2010-04-22 14:46 1347文档类,提供一个容易 ... -
[翻译] Joomla XML 解析器规范 上
2010-04-22 14:45 1040概述 Joomla! 1.5 新增 JSimpleXML 类 ... -
Joomla插件开发规范
2010-04-22 14:44 1379概述:JPlugin Joomla 1.5的新功能 为了更好 ... -
joomla源代码探析续(三十一) JHTML 类常用的方法
2010-04-22 14:37 1709我曾经在几篇文章中涉及到JHTML的方法使用,这里不再说了,请 ... -
joomla源代码探析续(三十) JDate类参考
2010-04-22 14:36 1034JDate类与JString类一样是Joomla!中的基础类, ... -
joomla源代码探析续(二十九) JHTML 与JHTMLSelect 类的使用
2010-04-22 14:33 1166我们在form表单生成的过程中,经常需要有select 标签或 ... -
joomla源代码探析续(二十八) 如何扩展JTable类
2010-04-22 14:30 1024JTable类是Active Record设计模式(web应用 ... -
joomla源代码探析续(二十七)组件后台如何设置参数
2010-04-22 14:29 887以下的方法可以在管理后台中添加一个Parameters设置的按 ... -
joomla源代码探析续(二十五)JRequest对象的变量获取过程
2010-04-22 14:22 1156Joomla 1.5 RC3版本的SEF存在不少问题,前段时间 ... -
joomla源代码探析续(二十四)JPagination类
2010-04-22 14:22 1093JPagination类是Joomla的通用分页功能的封装类, ... -
Joomla源代码解析(二十二) 模块是如何被调用执行并渲染(下)
2010-04-22 14:16 924上一文章中提到了getBuffer函数,在函数中实际上调用了r ... -
模块是如何被调用执行并渲染?
2010-04-22 14:12 810以前的文章中,关于/index.php我们已经分析完了 $ma ... -
Joomla源代码解析(二十) MVC组件的执行
2010-04-22 14:10 899以前的文章中,我们曾经说过 $mainframework-&g ... -
Joomla源代码解析(十九) JController
2010-04-22 14:05 863同样 JController 是MVC中重要的起点,正式这个类 ... -
Joomla源代码解析(十八) Jview
2010-04-22 14:03 927MVC模式中,重要的一环,JView 和 tmpl目录中的模板 ... -
Joomla源代码解析(十六) JTable是什么 不指定
2010-04-22 14:01 1428JTable是什么? JTable是数据库中数据表在程序中的表 ... -
Joomla源代码解析(十五) 组件是如何被调用并渲染的
2010-04-22 14:00 1410Joomla代码中, 组件是如 ... -
Joomla源代码解析(十四) JRequest类 不指定
2010-04-22 13:58 840这是另一个Joomla扩展中最常用的类,这个类封装了客户端提交 ... -
Joomla源代码解析(十三) JText类
2010-04-22 11:25 1193Joomla 最常用的类之一,使用方式JTEXT::_('JJ ...
相关推荐
joomla源代码探析,比较详细阐述了joomla框架
joomla 组件 开发 详解 (附带源代码) joomla 组件 开发 详解 (附带源代码) joomla 组件 开发 详解 (附带源代码)
Joomla模板,用于本地测试安装
提供Joomla展示用户列表的功能,已中文化
比较详细的分析joomla1.5源码。可以对应着源码一起学习
joomla漏洞利用代码,影响版本joomla1.5-3.4.最开始检测到利用该漏洞实施入侵的是 Securi 安全团队
例如,第一部分只允许名叫“Tom”的用户阅读,第二部分只允许名叫“Jack”和“Emy”的两位用户阅读。 Core Design Access Text plugin 除了“按用户名控制阅读权限”,还允许“按用户级别控制阅读权限”,例如某...
joomlaQQ登录、微信登录等第三方登录等经验解析
Joomla! A User's Guide: Building a Successful Joomla! Powered Website中文版。...扩展(Extending)消息,你可以跳到第六章,“扩展Joomla!”另外,附录里还额外介绍了关于Joomla!各个方面的一些有价值的信息。
joomla代码分析 对于二次开发有帮助 喜欢的可以下
joomla 免费企业模版,精美模版
您可以在这里免费获得joomla资料,您也可以分享您的joomla心得,方便发大家互相学习。聚集Joomla爱好者,彻底改变Joomla在中国发展的面貌。我们的目标是让全世界最优秀的CMS系统—Joomla真正的走向中国,为Joomla在...
joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构介绍 joomla表结构...
Building.Websites.with.Joomla1.5 & joomla 1.5建站宝典 第一单元:术语,概念,和审议 joomla 1.5安装方法 第三单元 前台内容 第三单元 前台内容? 第三单元 后台 Joomla 管理配置! 帮助菜单 网站菜单 用户管理器...
joomla模板仿制教程第二集,基础入门教程
joomla
Joomla CSS JS代码压缩插件 Joomla2.5 Joomla 3X可用
有关joomla的介绍 I Want a Web Site and I Want It Blue — How Much Will That Cost?
joomla七牛插件,加速网站的速度。系统会自动将你网站的静态内容同步到你的七牛空间,让你的Joomla网站飞起来!
zmax程序人 将Joomla1.5版本的模板移植到Joomla2.5上的经验总结