From: Peter T. <pet...@us...> - 2000-11-08 07:47:41
|
Update of /cvsroot/TWiki/twiki/bin In directory slayer.i.sourceforge.net:/tmp/cvs-serv25600 Modified Files: edit wiki.pm wikiaccess.pm Log Message: new sub userIsInGroup in wikiacess.pm Index: edit =================================================================== RCS file: /cvsroot/TWiki/twiki/bin/edit,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** edit 2000/11/07 03:08:39 1.8 --- edit 2000/11/08 07:47:38 1.9 *************** *** 181,185 **** --- 181,193 ---- } if( ! &wiki::checkAccessPermission( "change", $wikiUserName, $text, $topic, $webName ) ) { + # user has not permission to change the topic my $url = &wiki::getOopsUrl( $webName, $topic, "oopsaccesschange" ); + print $query->redirect( $url ); + return; + } + if( ( $saveCmd ) && + ( ! &wiki::userIsInGroup( $wikiUserName, "TWikiAdminGroup" ) ) ) { + # user has no permission to execute undocumented cmd=... parameter + my $url = &wiki::getOopsUrl( $webName, $topic, "oopsaccessgroup", "$wiki::mainWebname.TWikiAdminGroup" ); print $query->redirect( $url ); return; Index: wiki.pm =================================================================== RCS file: /cvsroot/TWiki/twiki/bin/wiki.pm,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -r1.24 -r1.25 *** wiki.pm 2000/11/04 07:52:41 1.24 --- wiki.pm 2000/11/08 07:47:38 1.25 *************** *** 87,91 **** # =========================== # TWiki version: ! $wikiversion = "03 Nov 2000"; # =========================== --- 87,91 ---- # =========================== # TWiki version: ! $wikiversion = "07 Nov 2000"; # =========================== Index: wikiaccess.pm =================================================================== RCS file: /cvsroot/TWiki/twiki/bin/wikiaccess.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** wikiaccess.pm 2000/10/24 00:10:07 1.1 --- wikiaccess.pm 2000/11/08 07:47:38 1.2 *************** *** 118,121 **** --- 118,144 ---- # ========================= + sub userIsInGroup + { + my( $theUserName, $theGroupTopicName ) = @_; + + my $usrTopic = prvGetWebTopicName( $wiki::mainWebname, $theUserName ); + my $grpTopic = prvGetWebTopicName( $wiki::mainWebname, $theGroupTopicName ); + my @grpMembers = (); + + if( $grpTopic !~ /.*Group$/ ) { + # not a group, so compare user to user + push( @grpMembers, $grpTopic ); + } elsif( ( %allGroups ) && ( exists $allGroups{ $grpTopic } ) ) { + # group is allready known + @grpMembers = @{ $allGroups{ $grpTopic } }; + } else { + @grpMembers = prvGetUsersOfGroup( $grpTopic, 1 ); + } + + my $isInGroup = grep { /^$usrTopic$/ } @grpMembers; + return $isInGroup; + } + + # ========================= sub getUsersOfGroup { |