`
we1818
  • 浏览: 62111 次
  • 性别: 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框架

    Joomla2.5.16源代码

    这是 Joomla 的后台管理界面的源代码,包含了管理面板的所有组件、模块和视图,用于设置网站内容、用户管理、权限控制、模板选择等。管理员可以通过这个部分对整个网站进行全方位的控制。 总的来说,Joomla 2.5.16...

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

    Joomla 是一个流行的开源内容管理系统(CMS),用于构建和管理网站。...通过学习和分析提供的源代码,开发者可以深化对Joomla架构的理解,提升组件开发能力。同时,不断实践和参考社区资源是提升技能的关键。

    joomla模块用户列表

    Joomla是一款广泛使用的开源内容管理系统(CMS),它允许用户创建和管理网站,具有高度的可扩展性和灵活性。在Joomla中,“模块”是构建网站布局和功能的基本元素,它们可以显示在页面的不同位置,如侧边栏、页眉或...

    博客源代码 博客源代码

    9. **博客平台和CMS**:除了从头编写源代码,许多人也会选择使用WordPress、Joomla或Ghost等博客平台或内容管理系统,它们提供丰富的主题和插件,使得非程序员也能轻松搭建和管理博客。 10. **性能优化**:通过压缩...

    joomla代码分析

    **Joomla代码分析** Joomla是一款非常流行的开源内容管理系统(CMS),它允许用户轻松地创建、管理和...通过深入研究和实践,开发者可以充分利用Joomla的开放源代码特性,实现各种定制化需求,创造出独具特色的网站。

    joomla第三方登录开发过程

    在当今互联网时代,为了提高用户体验和方便用户登录,许多网站都引入了第三方登录功能。对于使用Joomla构建的网站来说,实现第三方登录同样非常重要。本文将详细介绍如何在Joomla上实现第三方登录,特别是QQ登录、...

    joomla 类库手册

    `Joomla\CMS\User\UserHelper` 提供了访问控制列表(ACL)的相关方法,允许开发者定义和管理用户权限。 11. **文件和目录操作** `JFile` 和 `JFolder` 类库提供了处理文件和目录的实用函数,如读取、写入、移动、...

    joomla资料 joomla开发 joomla教程

    Joomla是一种开源的内容管理系统(CMS),它以其强大的功能和易用性在全球范围内受到广泛的欢迎。然而,尽管Joomla被公认为世界上最优秀的CMS之一,但在中国的普及和发展却面临着一些挑战。 首先,Joomla在中国的...

    joomla_1.5_源代码ipnu.docx

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

    CMS源代码研究

    7. **性能优化**:CMS源代码通常包含缓存策略,如页面缓存、对象缓存和数据库查询缓存,以提升系统性能。学习这些优化技巧对于大型网站的运行至关重要。 8. **API设计**:现代CMS往往提供API供其他应用或服务进行...

    JOOMLA 房地产组件

    【标签】"房地产源码"表明该组件的核心是源代码,这意味着用户可以深入修改和定制组件的功能,以满足特定需求。源码提供了一种灵活性,允许开发者根据目标市场、业务规则和用户体验进行调整。 【压缩包子文件】中列...

    joomla模板仿制教程第二集

    【Joomla模板仿制教程第二集】是一门针对初学者的基础入门课程,旨在教会学员如何在Joomla内容管理系统中创建和定制自己的模板。Joomla是一个流行的开源CMS平台,以其灵活性和丰富的功能闻名,广泛用于构建各种类型...

    joomla 免费企业模版

    Joomla 是一款开源的内容管理系统(CMS),它允许用户构建网站和在线应用程序,而无需深入的编程知识。在本文中,我们将详细探讨"Joomla 免费企业模板"这一主题,分析这些模板如何帮助企业和个人快速建立专业且美观...

    Joomla 2.5.4 中文包

    这意味着源代码是公开的,用户可以自由地使用、修改和分发。开源社区的参与使得 Joomla 不断发展,提供了丰富的扩展和插件。 4. **pkg_zh-CN.xml**:这个文件是 Joomla 包的元数据文件,包含了关于中文包的信息,如...

    joomla API 中文手册

    这些方法允许开发者轻松地访问和操作Joomla的核心服务,极大地提高了开发效率和代码的可维护性。 总的来说,Joomla API中文手册为开发者提供了详细而实用的指导,帮助他们更好地理解和利用Joomla!框架的功能,进行...

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

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

    joomla 2.5.4中文版

    5. **权限和用户管理**: Joomla 提供灵活的角色和权限设置,可以管理不同的用户组,如管理员、编辑、作者等,控制他们对网站内容的访问和编辑权限。 6. **搜索引擎优化(SEO)**: Joomla 2.5.4 支持SEO友好链接和元...

    joomla and joomla

    5. **权限和访问控制**:Joomla 允许设置不同级别的用户权限,确保网站内容的安全性和访问控制。 6. **SEO 友好**:Joomla 提供了搜索引擎优化工具,帮助提高网站在搜索引擎中的排名。 **VirtueMart - Joomla 的...

    Joomla_core-v3.3.6-chinese

    8. **installation**目录:安装程序的源代码,引导用户完成Joomla!的安装过程。 9. **images**目录:存储网站的静态图像资源,如图标、logo和其他图形元素。 通过理解和掌握这些核心文件及其功能,用户能够更有效...

Global site tag (gtag.js) - Google Analytics