| | 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 | |