Changeset 3080

Show
Ignore:
Timestamp:
10/01/08 02:15:24 (14 months ago)
Author:
fumiakiy
Message:

Removed unnecessary upgrade functions. System- and blog-level permissions can now share the same name, and system-level permission works as expected; it works globally to any blog in the system for the blog level permission of the same name. BugId:82202, BugId:80106, BugId:81658

Location:
branches/fireball/lib/MT
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • branches/fireball/lib/MT/Permission.pm

    r2099 r3080  
    8585} 
    8686 
     87sub global_perms { 
     88    my $perm = shift; 
     89 
     90    return undef unless $perm->author_id; 
     91    return $perm unless $perm->blog_id; 
     92 
     93    $perm->cache_property( 
     94        'global_perms', 
     95        sub { 
     96            __PACKAGE__->load( { author_id => $perm->author_id, blog_id => 0 }); 
     97        } 
     98    ); 
     99} 
     100 
    87101# Legend: 
    88102# author_id || blog_id || permissions 
     
    289303                        && $author->is_superuser ); 
    290304                    return 1 
    291                       if ( ( $set eq 'blog' ) 
     305                      if ( ( $_[0]->blog_id ) 
    292306                        && $_[0]->has('administer_blog') ); 
    293307                } 
    294308            } 
     309            # return negative if a restriction is present 
    295310            return undef 
    296311              if $_[0]->restrictions && $_[0]->restrictions =~ /'$perm'/i; 
    297             ( defined($cur_perm) && $cur_perm =~ /'$perm'/i ) ? 1 : undef; 
     312            # return positive if permission is set in this permission set 
     313            return 1 if defined($cur_perm) && $cur_perm =~ /'$perm'/i; 
     314            # test for global-level permission 
     315            return 1 
     316              if $_[0]->author_id 
     317              && $_[0]->blog_id 
     318              && $_[0]->global_perms 
     319              && $_[0]->global_perms->has($perm); 
     320            return undef; 
    298321        }; 
    299322    } 
  • branches/fireball/lib/MT/Upgrade.pm

    r3079 r3080  
    976976                    $file_template =~ s/%-C/<MTCategoryLabel dirify="-">/g; 
    977977                    $map->file_template($file_template); 
    978                 }, 
    979             }, 
    980         }, 
    981         'core_assign_all_permisssions_blog_admin' => { 
    982             version_limit => 4.0063, 
    983             priority => 3.4, 
    984             updater => { 
    985                 type => 'permission', 
    986                 label => 'Assigning all permissions to blog administrator...', 
    987                 condition => sub { 
    988                     $_[0]->can_administer_blog && $_[0]->blog_id; 
    989                 }, 
    990                 code => sub { 
    991                     my ($perm) = shift; 
    992                     $perm->set_full_permissions; 
    993                 }, 
    994             }, 
    995         }, 
    996         'core_recover_sysadmin_permissions' => { 
    997             version_limit => 4.0066, 
    998             priority => 3.5, 
    999             updater => { 
    1000                 type => 'permission', 
    1001                 label => 'Recover permissions of system administrators...', 
    1002                 condition => sub { 
    1003                     !$_[0]->blog_id && !$_[0]->has('administer') && $_[0]->can_administer_blog; 
    1004                 }, 
    1005                 code => sub { 
    1006                     my ($perm) = shift; 
    1007                     $perm->set_permissions('system'); 
    1008978                }, 
    1009979            },