权限配置$fr_userposition的使用

本帖最后由 Tate_Young 于 2016-12-28 11:00 编辑

需求分解:信息技术部研发工程师能看到本部门的信息。
解决方案:在sql中运用$fr_userposition进行筛选,以下两种语句有错吗,应该怎么写,我尝试用研发工程师账号登陆但是无效:
1、
select * from a where 1=1
${
if(find("{'departments':'信息技术部','jobTitle':'研发工程师'}",$fr_userposition)!=0,"and dept_name = '信息技术部'",
"")}

修改,直接把$fr_userposition当做字符串判断来用:$(if{ find('研发工程师',$fr_userposition) <> 0,"and dept_name = '信息技术部'","" })


2、
select * from a where 1=1
${
if(GETUSERDEPARTMENTS()='信息技术部' && GETUSERJOBTITLES()='研发工程师',"and dept_name = '信息技术部'",
"")}



欢迎解答,谢谢了。

可以了,第一种方法应该是因为对象无法通过字符串的方法来比较,所以find无效。
第二种方法是可以的,可能是之前测试时候传入的部门和职位字段有问题,谢谢大家了。

不,第二种还有问题,根本就没有筛选,所有部门筛选出来都是信息技术部,sql上应该怎么使用这个函数呢。

FineReportTate_Young 发布于 2016-12-28 08:37
回答问题
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共7回答
最佳回答
0
Tate_Young发布于2016-12-28 08:38(编辑于 2023-9-6 09:34)
555
最佳回答
0
zsh331发布于2016-12-28 08:45(编辑于 2023-9-6 09:34)
555
  • Tate_Young Tate_Young(提问者)

    find这样用应该是可以的,比如下面例子用$fr_authority,由于它也是数组,所以用:

    ${
    if(find(\'信息技术部\',$fr_authority)!=0,\"and dept_name = \'信息技术部\'\",\"\"
    )}

    效果就是当登录角色为“信息技术部”时,能查看到dept_name为信息技术部的信息。
    回复
    2016-12-28 09:02 
最佳回答
0
Tate_Young发布于2016-12-28 09:02(编辑于 2023-9-6 09:34)
555
最佳回答
0
Tate_Young发布于2016-12-28 09:33(编辑于 2023-9-6 09:34)
555
最佳回答
0
随便来看看发布于2016-12-28 09:35(编辑于 2023-9-6 09:34)
555
  • Tate_Young Tate_Young(提问者)

    对,角色的我已经做过了,这个是想尝试只用岗位来做,哈哈,十分感谢提供处理方法。
    回复
    2016-12-28 09:40 
最佳回答
0
Tate_Young发布于2016-12-28 09:40(编辑于 2023-9-6 09:34)
555
最佳回答
0
Tate_Young发布于2016-12-28 10:57(编辑于 2023-9-6 09:34)
555
  • 0关注人数
  • 1131浏览人数
  • 最后回答于:2016-12-28 10:57
    活动推荐 更多
    热门课程 更多
    返回顶部