目录
回复内容:
首页 后端开发 php教程 如何有选择的控制view对不同角色的展示?

如何有选择的控制view对不同角色的展示?

Jun 06, 2016 pm 08:33 PM
java php web

我有一个存在很多不同用户权限的项目,对于不同权限的用户有选择的展示资源,那么如何优雅的进行页面显示。

比较low的办法(我现在的),对于每个资源(resource)的显示前,都要判断是否allowed,有没有优雅的方法?
伪代码eg:
if acl.isAllowed(currentUser,targetResource1)
show targetResource1
end

if acl.isAllowed(currentUser,targetResource2)
show targetResource2
end

if acl.isAllowed(currentUser,targetResource3)
show targetResource3
end

。。。

回复内容:

我有一个存在很多不同用户权限的项目,对于不同权限的用户有选择的展示资源,那么如何优雅的进行页面显示。

比较low的办法(我现在的),对于每个资源(resource)的显示前,都要判断是否allowed,有没有优雅的方法?
伪代码eg:
if acl.isAllowed(currentUser,targetResource1)
show targetResource1
end

if acl.isAllowed(currentUser,targetResource2)
show targetResource2
end

if acl.isAllowed(currentUser,targetResource3)
show targetResource3
end

。。。

在数据库中设置不同的角色/用户对不同资源的访问控制设置
在用户登陆后根据其所属的角色获取资源访问列表
按可访问的资源列表结合页面展示UI拼装页面

rbac 权限管理试试

代码重构下是不是会好一些。

<code>ruby</code><code>%w(targetResource1 targetResource2 targetResource3).each do |target|
  show target if acl.isAllowed(currentUser, target)
end
</code>
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1677
14
CakePHP 教程
1430
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
session_start()函数的意义是什么? session_start()函数的意义是什么? May 03, 2025 am 12:18 AM

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

如何使用MySQL的函数进行数据处理和计算 如何使用MySQL的函数进行数据处理和计算 Apr 29, 2025 pm 04:21 PM

MySQL函数可用于数据处理和计算。1.基本用法包括字符串处理、日期计算和数学运算。2.高级用法涉及结合多个函数实现复杂操作。3.性能优化需避免在WHERE子句中使用函数,并使用GROUPBY和临时表。

作曲家:PHP开发人员的软件包经理 作曲家:PHP开发人员的软件包经理 May 02, 2025 am 12:23 AM

Composer是PHP的依赖管理工具,通过composer.json文件管理项目依赖。1)解析composer.json获取依赖信息;2)解析依赖关系形成依赖树;3)从Packagist下载并安装依赖到vendor目录;4)生成composer.lock文件锁定依赖版本,确保团队一致性和项目可维护性。

MySQL的字符集和排序规则如何配置 MySQL的字符集和排序规则如何配置 Apr 29, 2025 pm 04:06 PM

在MySQL中配置字符集和排序规则的方法包括:1.设置服务器级别的字符集和排序规则:SETNAMES'utf8';SETCHARACTERSETutf8;SETCOLLATION_CONNECTION='utf8_general_ci';2.创建使用特定字符集和排序规则的数据库:CREATEDATABASEexample_dbCHARACTERSETutf8COLLATEutf8_general_ci;3.创建表时指定字符集和排序规则:CREATETABLEexample_table(idINT

如何在MySQL中重命名数据库 如何在MySQL中重命名数据库 Apr 29, 2025 pm 04:00 PM

MySQL中重命名数据库需要通过间接方法实现。步骤如下:1.创建新数据库;2.使用mysqldump导出旧数据库;3.将数据导入新数据库;4.删除旧数据库。

作曲家的目的:管理PHP中的项目依赖性 作曲家的目的:管理PHP中的项目依赖性 Apr 30, 2025 am 12:01 AM

我们需要Composer因为它能有效管理PHP项目的依赖,避免版本冲突和手动管理库的麻烦。Composer通过composer.json声明依赖,并使用composer.lock确保版本一致,简化了依赖管理过程,提高了项目稳定性和开发效率。

将Java用于需要在不同服务器上运行的Web应用程序的优点是什么? 将Java用于需要在不同服务器上运行的Web应用程序的优点是什么? May 03, 2025 am 12:13 AM

Java适合开发跨服务器web应用。1)Java的“一次编写,到处运行”哲学使其代码可在任何支持JVM的平台上运行。2)Java拥有丰富的生态系统,包括Spring和Hibernate等工具,简化开发过程。3)Java在性能和安全性方面表现出色,提供高效的内存管理和强大的安全保障。

考虑到平台独立性,Java在物联网(物联网)设备的开发中扮演什么角色? 考虑到平台独立性,Java在物联网(物联网)设备的开发中扮演什么角色? May 03, 2025 am 12:22 AM

JavaplaysigantroleiniotduetoitsplatFormentence.1)itallowscodeTobewrittenOnCeandrunonVariousDevices.2)Java'secosystemprovidesuseusefidesusefidesulylibrariesforiot.3)

See all articles