Show
Ignore:
Timestamp:
04/25/08 03:52:07 (19 months ago)
Author:
bchoate
Message:

Handle special case where user has excessive permission records. BugId:79501

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/release-36/lib/MT/Permission.pm

    r1823 r2099  
    138138    } 
    139139 
     140    sub add_restrictions { 
     141        my $perms = shift; 
     142        my ($more_perm) = @_; 
     143        if ( my $more = $more_perm->restrictions ) { 
     144            if ( $more =~ /'administer_blog'/ ) { 
     145                $more = _all_perms('blog'); 
     146            } 
     147            my $cur_perm = $perms->restrictions; 
     148            my @newperms; 
     149            for my $p ( split ',', $more ) { 
     150                $p =~ s/'(.+)'/$1/; 
     151                next if $perms->has($p); 
     152                push @newperms, $p; 
     153            } 
     154            return unless @newperms; 
     155            my $newperm = "'" . join( "','", @newperms ) . "'"; 
     156            $newperm = "$cur_perm,$newperm" if $cur_perm; 
     157            $perms->restrictions($newperm); 
     158        } 
     159    } 
     160 
    140161    # Sets permissions of those in a particular set 
    141162    sub set_full_permissions {