Changeset 7708
- Timestamp:
- 06/09/10 15:33:17 (2 years ago)
- Location:
- trunk/WebPermissionsPlugin
- Files:
-
- 3 edited
-
data/System/WebPermissionsPlugin.txt (modified) (3 diffs)
-
lib/Foswiki/Plugins/WebPermissionsPlugin.pm (modified) (2 diffs)
-
lib/Foswiki/Plugins/WebPermissionsPlugin/Core.pm (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebPermissionsPlugin/data/System/WebPermissionsPlugin.txt
r4535 r7708 148 148 The topic permissions tool can be viewed (and edited) by entering =%<nop>TOPICPERMISSIONS%= anywhere in a topic. 149 149 150 To add an "Edit ACLS" option to the "More topic actions" screen add =webpermissions= to the front of the SKIN setting (e.g. =Set SKIN =webpermissions,pattern=)150 To add an "Edit ACLS" option to the "More topic actions" screen add =webpermissions= to the front of the SKIN setting (e.g. =Set SKIN = webpermissions,pattern=) 151 151 152 152 ---++ Plugin Settings … … 177 177 * Further work supported by [[http://www.spanlink.com/][Spanlink Communications]] 178 178 179 | Author: | Foswiki:Main.CrawfordCurrie & :Main.SvenDowideit, http://wikiring.com |179 | Author: | Foswiki:Main.CrawfordCurrie & Foswiki:Main.SvenDowideit, http://wikiring.com | 180 180 | Copyright: | © 2006, Evolved Media Network, Spanlink Communications and WikiRing | 181 181 | License: | GPL ([[http://www.gnu.org/copyleft/gpl.html][GNU General Public License]]) | … … 183 183 | Release: | %$RELEASE% | 184 184 | Change History: | | 185 | 9 Jun 2010 | Foswikitask:Item1484: Aaron Scamehorn finished porting | 185 186 | 21 Apr 2009 | Foswikitask:Item1484: Sven Dowideit, Crawford Currie, ported to Foswiki | 186 | 4 Dec 2007 | TWikibug:Item4901 fixed templates TWikibug:Item5072 added users parameter to select a subset of users/groups in the web permissions interface |187 | 8 Sep 2007 | Updated for TWiki-4.2.0 |188 | July 2006 | add Topic ACLs user interface via More topic actions - SvenDowideit@WikiRing.com |189 | 10216 | TWikibug:Item2291 - Added repeatheads and webs parameters |190 | 9048 | TWikibug:Item1766 - corrected problems with passing incorrect parameters to setACLs and not interpreting values from the form correctly. |191 | 8877 | TWikibug:Item1701 - first release |192 187 | Dependencies: | %$DEPENDENCIES% | 193 188 | Plugin Home: | http://foswiki.org/Extensions/%TOPIC% | -
trunk/WebPermissionsPlugin/lib/Foswiki/Plugins/WebPermissionsPlugin.pm
r7700 r7708 25 25 # in each affected web. 26 26 27 # ========================28 27 package Foswiki::Plugins::WebPermissionsPlugin; 29 28 30 29 use strict; 31 30 32 # ========================33 31 use Foswiki::Func (); 34 32 35 our $debug = 0;36 33 our $VERSION = '$Rev: 160$'; 37 our $RELEASE = ' 21 Apr 2009';34 our $RELEASE = '9 Jun 2010'; 38 35 our $SHORTDESCRIPTION = 'View and edit web permissions'; 36 our $NO_PREFS_IN_TOPIC = 1; 39 37 40 # ======================== 38 use constant TRACE => 0; 39 41 40 sub initPlugin { 42 41 my ( $topic, $web, $user, $installWeb ) = @_; … … 59 58 60 59 Foswiki::Func::registerRESTHandler( 'change', \&_changeHandler ); 61 62 # Get preferences values63 $debug = &Foswiki::Func::getPreferencesFlag( "WEBPERMISSIONSPLUGIN_DEBUG" );64 60 65 61 return 1; -
trunk/WebPermissionsPlugin/lib/Foswiki/Plugins/WebPermissionsPlugin/Core.pm
r7700 r7708 19 19 # For licensing info read LICENSE file in the Foswiki root. 20 20 # 21 # Author : Crawford Currie http://c-dot.co.uk21 # Authors: Crawford Currie http://c-dot.co.uk 22 22 # Author: Sven Dowideit http://fosiki.com 23 23 # Author: Eugen Mayer http://impressimpressive-media.de … … 38 38 # ========================= 39 39 our $antiBeforeSaveRecursion; 40 41 my $debug = $Foswiki::Plugins::WebPermissionsPlugin::debug;42 40 43 41 # ========================= … … 317 315 my ( $session, $params, $topic, $web ) = @_; 318 316 319 # this is to redirect to the "no access" page if this tag is used320 # in a non-view template.321 Foswiki::UI::checkAccess( $session, $web, $topic, 'view',322 $session->{user} );323 324 317 my $disableSave = 'Disabled'; 325 318 $disableSave = '' … … 357 350 my $acls = _getACLs( [ 'VIEW', 'CHANGE' ], $web, $topic ); 358 351 foreach my $user ( sort ( keys %$acls ) ) { 359 my $isGroup; 360 if ( defined &Foswiki::Func::isGroup ) { 361 $isGroup = Foswiki::Func::isGroup($user); 362 } 363 else { 364 $isGroup = ( $user =~ /Group$/ ); 365 } 352 my $isGroup = Foswiki::Func::isGroup($user); 353 366 354 if ( $acls->{$user}->{CHANGE} ) { 367 355 $topicEditors .= '<OPTION>' . $user . '</OPTION>' … … 401 389 return unless ( defined($action) ); #nothing to do with this plugin 402 390 403 &Foswiki::Func::writeDebug( "WebPermissionsPlugin::Core::beforeSaveHandler: action=" . $action ) if ( $debug);391 Foswiki::Func::writeDebug( "WebPermissionsPlugin::Core::beforeSaveHandler: action=" . $action ) if ( Foswiki::Plugins::WebPermissionsPlugin::TRACE ); 404 392 405 393 if ( $action ne 'Save' ) { … … 408 396 # to be quite difficult 409 397 Foswiki::Func::redirectCgiQuery( $query, 410 &Foswiki::Func::getScriptUrl( $web, $topic , 'view' ) );398 Foswiki::Func::getScriptUrl( $web, $topic , 'view' ) ); 411 399 throw Error::Simple('cancel permissions action'); 412 400 } … … 579 567 $topic = $Foswiki::cfg{WebPrefsTopicName}; 580 568 } 581 &Foswiki::Func::writeDebug( "WebPermissionsPlugin::Core::_getACLs: GET $context $web.$topic" ) if ( $debug);569 Foswiki::Func::writeDebug( "WebPermissionsPlugin::Core::_getACLs: GET $context $web.$topic" ) if ( Foswiki::Plugins::WebPermissionsPlugin::TRACE ); 582 570 my @knownusers = _getListOfUsers(); 583 571 push( @knownusers, _getListOfGroups() ); … … 602 590 603 591 if (defined $users) { 604 &Foswiki::Func::writeDebug( "WebPermissionsPlugin::Core::_getACLs: $perm$context$mode=$users" ) if ( $debug);592 Foswiki::Func::writeDebug( "WebPermissionsPlugin::Core::_getACLs: $perm$context$mode=$users" ) if ( Foswiki::Plugins::WebPermissionsPlugin::TRACE ); 605 593 } else { 606 &Foswiki::Func::writeWarning( "WebPermissionsPlugin::Core::_getACLs: no $perm$context$mode defined" );594 Foswiki::Func::writeWarning( "WebPermissionsPlugin::Core::_getACLs: no $perm$context$mode defined" ); 607 595 } 608 596 … … 621 609 while ( scalar(@lusers) ) { 622 610 my $user = pop(@lusers); 623 my $isGroup; 624 if ( defined &Foswiki::Func::isGroup ) { 625 $isGroup = Foswiki::Func::isGroup($user); 626 } 627 else { 628 $isGroup = $user =~ /Group$/; 629 } 630 if ($isGroup) { 611 if (Foswiki::Func::isGroup($user)) { 631 612 # expand groups and add individual users 632 613 my $it = Foswiki::Func::eachGroupMember($user); … … 644 625 foreach my $user (@knownusers) { 645 626 646 &Foswiki::Func::writeDebug( "WebPermissionsPlugin::Core::_getACLs: Disallow $mode $user" ) if ( $debug);627 Foswiki::Func::writeDebug( "WebPermissionsPlugin::Core::_getACLs: Disallow $mode $user" ) if ( Foswiki::Plugins::WebPermissionsPlugin::TRACE ); 647 628 $acls{$user}->{$mode} = 0; 648 629 } 649 630 foreach my $user (@users) { 650 631 651 &Foswiki::Func::writeDebug( "WebPermissionsPlugin::Core::_getACLs: Allow $mode $user" ) if ( $debug);632 Foswiki::Func::writeDebug( "WebPermissionsPlugin::Core::_getACLs: Allow $mode $user" ) if ( Foswiki::Plugins::WebPermissionsPlugin::TRACE ); 652 633 $acls{$user}->{$mode} = 1; 653 634 } … … 656 637 foreach my $user (@users) { 657 638 658 &Foswiki::Func::writeDebug( "WebPermissionsPlugin::Core::_getACLs: Deny $mode $user " ) if ( $debug);639 Foswiki::Func::writeDebug( "WebPermissionsPlugin::Core::_getACLs: Deny $mode $user " ) if ( Foswiki::Plugins::WebPermissionsPlugin::TRACE ); 659 640 $acls{$user}->{$mode} = 0; 660 641 } … … 698 679 } 699 680 700 &Foswiki::Func::writeDebug( "WebPermissionsPlugin::Core::_setACLs: SET $context $web.$topic " ) if ( $debug);681 Foswiki::Func::writeDebug( "WebPermissionsPlugin::Core::_setACLs: SET $context $web.$topic " ) if ( Foswiki::Plugins::WebPermissionsPlugin::TRACE ); 701 682 my ( $meta, $text ) = Foswiki::Func::readTopic( $web, $topic ); 702 683 … … 740 721 ); 741 722 } 742 &Foswiki::Func::writeDebug( "WebPermissionsPlugin::Core::_setACLs: $name = " . join( ' ', @$set ) ) if ( $debug);723 Foswiki::Func::writeDebug( "WebPermissionsPlugin::Core::_setACLs: $name = " . join( ' ', @$set ) ) if ( Foswiki::Plugins::WebPermissionsPlugin::TRACE ); 743 724 } 744 725 }
Note: See TracChangeset
for help on using the changeset viewer.
