加入收藏 | 设为首页 | Life家族 | SCMLife | RMLife | PMLife | SQALife | TESTLife | 企业VIP专区
 
发新话题
打印

[已解决] perl的GetUserGroups怎么用?( 此文章被查看:501次,被回复:2篇!! )

perl的GetUserGroups怎么用?

1.  perl代码:             my $session = $entity->GetSession();
                                my $userGroup = $session->GetUserGroups();
                                if ( $userGroup !~ /coding/){
                                   die "Coding's bug only can be operated by coding!";
                                }

2. 这段代码验证是没错的,目的是:如果当前用户是属于coding组的,则不能进行操作;
3. 测试发现达不到效果,$userGroup的值是当前用户的所属组,好像是一个数组(比如("coding","test","design")),判断$userGroup是否包含coding,这样写$userGroup !~ /coding/好像不对啊, 请问要怎么写才对啊?
4.谢谢。


问题已经解决 [打开主题]
本主题的最佳答案为 [ 3 楼].



© 本文为 scmtataSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

GetUserGroups这个方法返回的是一个数组,返回当前用户所属于的用户组。
一般不能直接比较
对于VBS,可以通过如下:
dim usergroups
usergroups = session.GetUserGroups
for each group in usergroups
   if yourusergroup = group then
      ' doing something here
   end if
next

对Perl,差不多的。



© 本文为 yunshanSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

回复 沙发 的帖子

1. 其实本来我也是用foreach来判断的, 但是一直达不到效果,所以开始怀疑GetuserGroups的内部结构;
2. 刚刚用了你上次提供的输出语句查看了下Groups里的内容,才发现原来是CODING,而不是coding(区分大小的),晕啊。
use Win32;
Win32::MsgBox("message",16,"title");这句用调试很有用啊!


最佳答案
该回答被楼主/管理员列为正解!



© 本文为 scmtataSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

发新话题