在需要验证项目人员权限的控制器中加入如下代码

~~~

//访问范围

public $visitRange;

protected function init()

{

$request = Request::instance();

$action = $request->action(true);

//获取当前action名称

switch ($action) {

case "addSubcontractContract":

case "listSubcontractContract":

case "editSubcontractContract":

case "delSubcontractContract":

//设置请求类型

$this->requestType = "post";

break;

case "getSubcontractContractById":

//设置请求类型

$this->requestType = "get|post";

break;

}

/**

* manager_staff 项目经理ID

* management_staff 项目人员ID

* material_staff 材料人员

* design_staff 设计人员

* special_staff 特殊人员ID

*/

//采用switch来处理每个请求接口不同的访问人

switch ($action) {

//有权限添加分包合同:项目经理,项目人员,特殊人员

case "addSubcontractContract":

$this->visitRange = 'manager_staff,management_staff,special_staff';

break;

case 'listSubcontractContract':

case 'getSubcontractContractById':

case "editSubcontractContract":

//有权限删除分包合同:项目经理,特殊权限人员

case "delSubcontractContract":

$this->visitRange = 'manager_staff,special_staff';

break;

}

//self::check($this->visitRange);

}

/**

* Note:

* Think:

* User: HuYang-TSJ

* Date: 2019/2/28 9:36

* @param $visitRange

* @throws RequestException

* @throws \think\db\exception\DataNotFoundException

* @throws \think\db\exception\ModelNotFoundException

* @throws \think\exception\DbException

*/

public function check($visitRange)

{

$projectIdArray = input('project_id');

$id = input('id');

if (!empty($id)) {

$res = SubConModel::field('id,project_id')->select($id);

$projectIdArray = array();

foreach ($res as $item) {

array_push($projectIdArray, $item['project_id']);

}

}

$project = ProjectStaff::where('project_id', 'in', $projectIdArray)->field('id,' . $visitRange)

->select();

$tempStaffId = '';

$visitRange = explode(',', $visitRange);

foreach ($project as $p) {

$p = $p->getData();

foreach ($visitRange as $item) {

$tempStaffId = $tempStaffId . $p[$item] . ',';

}

}

if (!empty($project)) {

$user = WebSys::getTokenUser()['id'];

if (!in_array($user, explode(',', $tempStaffId))) {

throw new RequestException([

'code' => 403,

'msg' => "无权访问,请在项目人员中修改所处职位!"

]);

}

}

}

~~~

php 权限规范,项目人员权限验证相关推荐

  1. 支持自定义权限及项目级别权限配置,MeterSphere开源持续测试平台v1.10.0发布|Release Notes

    5月27日,MeterSphere一站式开源持续测试平台正式发布v1.10.0版本. 在这一版本中,我们重点优化了平台的相关管理功能,包括提供全局的操作.变更记录功能,重构了用户权限体系,支持自定义用 ...

  2. 日常任务-07-技术-15.SVN使用-如何将项目加入svn版本控制并且配置人员权限

    新建svn项目加入版本控制并且配置人员权限: 1.登录SVN服务器: 2.进入svn路径下: cd home/svn- 3.执行svncreate.sh脚本文件: sh svncreate.sh  项 ...

  3. 基于Servlet+JDBC+Bootstrap+MySQL+AJAX权限管理系统项目实战教程

    项目简介 权限系统一直以来是我们应用系统不可缺少的一个部分,若每个应用系统都重新对系统的权限进行设计,以满足不同系统用户的需求,将会浪费我们不少宝贵时间,所以花时间来设计一个相对通用的权限系统是很有意 ...

  4. 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目(8) 权限管理,自定义权限,扩展权限...

    索引 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目 目录索引 简述 今天我们来做权限的管理,这篇比较多 希望新手朋友慢慢消化 项目准备 我们用的工具是:VS 2013 ...

  5. Linux企业生产环境用户权限集中管理项目方案案例

    企业生产环境用户权限集中管理项目方案案例: 1 问题现状 当前我们公司里服务器上百台,各个服务器上的管理人员很多(开发+运维+架构+DBA+产品+市场),在大家登录使用Linux服务器时,不同职能的员 ...

  6. 老沙电信级项目教程-权限部分(1)

    目录 目标... 2 重点... 2 简述... 2 需求... 2 思路... 2 表设计... 3 详解... 3 用户表与角色表... 4 权限表与角色表... 5 所有表... 7 练习... ...

  7. 网易服务器修改权限等级,网易七鱼客服管理_七鱼客服管理人员权限设置_企业服务汇...

    编者按:网易七鱼的客服权限设置功能能够方便企业针对不同角色的客服人员分配不同的系统操作权限,客服权限的分配主要包括了对系统设置权限.数据查看范围及导出权限.功能使用权限这三大类权限的分配,其中系统设置 ...

  8. RBAC权限实战项目-佟刚-专题视频课程

    RBAC权限实战项目-346人已学习 课程介绍         本视频讲授RBAC权限模型的设计.以及在项目中的应用 . 1. 使用Maven进行项目构建 . 2. 页面设计采用响应式前端框架Boot ...

  9. 企业生产环境用户sudo权限集中管理项目方案案例

    服务器用户权限管理改造方案与实施项目步骤: 1.在了解公司业务流程后,提出权限整改解决方案改进公司超级权限root泛滥在现状 2.我首先撰写了方案后,给老大看,取得老大的支持后,召集大家开会讨论 3. ...

最新文章

  1. 用tigervnc远程控制centos x64 6.2
  2. 成功解决TypeError: ufunc 'sqrt' not supported for the input types, and the inputs could not be safely co
  3. JavaScript---设计模式之观察者模式
  4. matlab能用矩阵操作就不要用for循环
  5. MYSQL为什么long_query_time设置了1秒,slow log中记录了小于1秒的慢查询
  6. Struts2中我所遇到的内存溢出(java.lang.OutOfMemoryError)异常错误介绍
  7. 程序人生:女程序员的求职奋斗史
  8. java双缓冲绘图_Java双缓冲技术-绘图应用
  9. riemann的安装和使用
  10. ThreadPool中变量ctl的分析
  11. Redis 3.2.4编译安装
  12. 使用jrtplib(RTP)传输H.264视频文件
  13. 介绍计算机发明人香农,美国著名数学家香农简介:信息论的创始人
  14. 机动车合格证手机扫码开票实现方式
  15. iview中Page分页组件添加首页尾页按钮
  16. 2021年,我们还需要入门深度学习吗?
  17. 艾永亮:国产运动品牌巨头一一倒下,被抛弃的品牌该如何自救?
  18. 数据库的这些你都知道吗?
  19. Python脚本上传本地文件到百度云
  20. 仿翁天信网站旅行足迹地图HTML单页源码

热门文章

  1. Android 绑定类型服务---使用信使(Messenger)
  2. 背板,线速,交换容量详细解说
  3. OJ1158: 又是排序(指针专题)(C语言)
  4. 信息学奥赛一本通(2035:【例5.2】平移数据)
  5. 过山车(HDU-2063)
  6. 鸡蛋的硬度(信息学奥赛一本通-T1300)
  7. 判断数正负(信息学奥赛一本通-T1039)
  8. 计算线段长度(信息学奥赛一本通-T1033)
  9. 信息学奥赛一本通C++语言——1009:带余除法
  10. 日语学习-多邻国-兴趣爱好