Changeset 3013
- Timestamp:
- 09/02/08 02:06:03 (3 months ago)
- Files:
-
- trunk/lib/MT/Upgrade.pm (modified) (2 diffs)
- trunk/lib/MT/Upgrade/v3.pm (modified) (1 diff)
- trunk/lib/MT/Upgrade/v4.pm (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/MT/Upgrade.pm
r2948 r3013 17 17 # * Template check for all blogs 18 18 19 use vars qw(%classes %functions $App $DryRun $Installing $SuperUser19 use vars qw(%classes %functions %LegacyPerms $App $DryRun $Installing $SuperUser 20 20 $CLI $MAX_TIME $MAX_ROWS @steps); 21 21 … … 71 71 }, 72 72 ); 73 74 %LegacyPerms = ( 75 # System-wide permissions 76 #[ 2**0, 'administer', 'System Administrator', 2, 'system' ], 77 #[ 2**1, 'create_blog', 'Create Blogs', 2, 'system' ], 78 #[ 2**2, 'view_log', 'View System Activity Log', 2, 'system' ], 79 #[ 2**3, 'manage_plugins', 'Manage Plugins', 'system' ], 80 81 # Blog-specific permissions: 82 # The order here is the same order they are presented on the 83 # role definition screen. 84 2**0 => 'comment',# 'Add Comments', 1, 'blog'], 85 2**12 => 'administer_blog',# 'Blog Administrator', 1, 'blog'], 86 2**6 => 'edit_config',# 'Configure Blog', 1, 'blog'], 87 2**3 => 'edit_all_posts',# 'Edit All Entries', 1, 'blog'], 88 2**4 => 'edit_templates',# 'Manage Templates', 1, 'blog'], 89 2**2 => 'upload',# 'Upload File', 1, 'blog'], 90 2**1 => 'post',# 'Create Entry', 1, 'blog'], 91 2**16 => 'edit_assets',# 'Manage Assets', 1, 'blog'], 92 2**15 => 'save_image_defaults',# 'Save Image Defaults', 1, 'blog'], 93 2**9 => 'edit_categories',# 'Add/Manage Categories', 1, 'blog'], 94 2**14 => 'edit_tags',# 'Manage Tags', 1, 'blog'], 95 2**10 => 'edit_notifications',# 'Manage Notification List', 1, 'blog'], 96 2**8 => 'send_notifications',# 'Send Notifications', 1, 'blog'], 97 2**13 => 'view_blog_log',# 'View Activity Log', 1, 'blog'], 98 #[ 2**17, 'publish_post', 'Publish Post', 1, 'blog'], 99 #[ 2**18, 'manage_feedback', 'Manage Feedback', 1, 'blog'], 100 #[ 2**19, 'set_publish_paths', 'Set Publishing Paths', 1, 'blog'], 101 #[ 2**20, 'manage_pages', 'Manage Pages', 1, 'blog'], 102 # 2**5 == 32 is deprecated; reserved for future use 103 2**7 => 'rebuild',# 'Rebuild Files', 1, 'blog'], 104 # Not a real permission but a denial thereeof; unlisted because it 105 # has no label. 106 2**11 => 'not_comment',# '', 1, 'blog'], 107 ); 73 108 } 74 109 trunk/lib/MT/Upgrade/v3.pm
r2942 r3013 379 379 }, 380 380 }; 381 } 382 383 my $perm_role_names = { 384 4096 => 'Blog Administrator', # administer_blog 385 30687 => 'Blog Administrator', # 32767 - 2048(not comment) - 32(reserved) = all permissions in MT3.3 386 14303 => 'Blog Administrator', # 16383 - 2048(not comment) - 32(reserved) = all permissions in MT3.2 387 2 => 'Writer', # post 388 6 => 'Writer (can upload)', # post + upload 389 17032 => 'Editor', # edit_all_posts + edit_tags + edit_categories + rebuild 390 17036 => 'Editor (can upload)', # Editor + upload 391 144 => 'Designer', # edit_templates + rebuild 392 17292 => 'Publisher', # Editor (can upload) + send_notifications 393 }; 394 395 sub _migrate_permission_to_role { 396 my $perm = shift; 397 my $full_perm_mask = 0; 398 399 return unless $perm->author_id; 400 my $user = MT::Author->load($perm->author_id); 401 if (!$user) { 402 $perm->remove; 403 return; 404 } 405 # Don't bother with non-AUTHOR types 406 return unless $user->type == 1; 407 408 my $role_mask = $perm->role_mask; 409 $role_mask -= 32 if (32 & $role_mask) == 32; # for permissions before 3.2 410 411 if (!$full_perm_mask) { 412 # only consider blog permissions that are supported (exclude 413 # now reserved permission bits like 32). 414 foreach my $key (keys %MT::Upgrade::LegacyPerms) { 415 next if $MT::Upgrade::LegacyPerms{$key} =~ m/^not_/; # skip exclusion permissions 416 $full_perm_mask |= $key; 417 } 418 } 419 420 $role_mask = $full_perm_mask & $role_mask; 421 422 # '0' permission, not used for permissions, just prefs 423 return unless $role_mask; 424 425 my $name; 426 $name = MT->translate($perm_role_names->{$role_mask}) 427 if $perm_role_names->{$role_mask}; 428 $name ||= MT->translate("Custom ([_1])", $role_mask); 429 require MT::Role; 430 my $role = MT::Role->load({ name => $name }); 431 if ($role) { 432 if (($role->role_mask != $role_mask) && 433 ((4096 != $role->role_mask) && (30687 != $role_mask))) { 434 $role = undef; 435 } 436 } 437 unless ($role) { 438 $role = new MT::Role; 439 $role->name($name); 440 $role->description(MT->translate("This role was generated by Movable Type upon upgrade.")); 441 $role->role_mask($role_mask); 442 $role->save; 443 } 444 my $blog = MT::Blog->load($perm->blog_id); 445 $user->add_role($role, $blog) if $blog; 381 446 } 382 447 trunk/lib/MT/Upgrade/v4.pm
r2966 r3013 523 523 ### Subroutines 524 524 525 my $perm_role_names = {526 4096 => 'Blog Administrator', # administer_blog527 30687 => 'Blog Administrator', # 32767 - 2048(not comment) - 32(reserved) = all permissions in MT3.3528 14303 => 'Blog Administrator', # 16383 - 2048(not comment) - 32(reserved) = all permissions in MT3.2529 2 => 'Writer', # post530 6 => 'Writer (can upload)', # post + upload531 17032 => 'Editor', # edit_all_posts + edit_tags + edit_categories + rebuild532 17036 => 'Editor (can upload)', # Editor + upload533 144 => 'Designer', # edit_templates + rebuild534 17292 => 'Publisher', # Editor (can upload) + send_notifications535 };536 537 {538 my $full_perm_mask = 0;539 my %LegacyPerms = (540 # System-wide permissions541 #[ 2**0, 'administer', 'System Administrator', 2, 'system' ],542 #[ 2**1, 'create_blog', 'Create Blogs', 2, 'system' ],543 #[ 2**2, 'view_log', 'View System Activity Log', 2, 'system' ],544 #[ 2**3, 'manage_plugins', 'Manage Plugins', 'system' ],545 546 # Blog-specific permissions:547 # The order here is the same order they are presented on the548 # role definition screen.549 2**0 => 'comment',# 'Add Comments', 1, 'blog'],550 2**12 => 'administer_blog',# 'Blog Administrator', 1, 'blog'],551 2**6 => 'edit_config',# 'Configure Blog', 1, 'blog'],552 2**3 => 'edit_all_posts',# 'Edit All Entries', 1, 'blog'],553 2**4 => 'edit_templates',# 'Manage Templates', 1, 'blog'],554 2**2 => 'upload',# 'Upload File', 1, 'blog'],555 2**1 => 'post',# 'Create Entry', 1, 'blog'],556 2**16 => 'edit_assets',# 'Manage Assets', 1, 'blog'],557 2**15 => 'save_image_defaults',# 'Save Image Defaults', 1, 'blog'],558 2**9 => 'edit_categories',# 'Add/Manage Categories', 1, 'blog'],559 2**14 => 'edit_tags',# 'Manage Tags', 1, 'blog'],560 2**10 => 'edit_notifications',# 'Manage Notification List', 1, 'blog'],561 2**8 => 'send_notifications',# 'Send Notifications', 1, 'blog'],562 2**13 => 'view_blog_log',# 'View Activity Log', 1, 'blog'],563 #[ 2**17, 'publish_post', 'Publish Post', 1, 'blog'],564 #[ 2**18, 'manage_feedback', 'Manage Feedback', 1, 'blog'],565 #[ 2**19, 'set_publish_paths', 'Set Publishing Paths', 1, 'blog'],566 #[ 2**20, 'manage_pages', 'Manage Pages', 1, 'blog'],567 # 2**5 == 32 is deprecated; reserved for future use568 2**7 => 'rebuild',# 'Rebuild Files', 1, 'blog'],569 # Not a real permission but a denial thereeof; unlisted because it570 # has no label.571 2**11 => 'not_comment',# '', 1, 'blog'],572 );573 574 575 sub _migrate_permission_to_role {576 my $perm = shift;577 578 return unless $perm->author_id;579 my $user = MT::Author->load($perm->author_id);580 if (!$user) {581 $perm->remove;582 return;583 }584 # Don't bother with non-AUTHOR types585 return unless $user->type == 1;586 587 my $role_mask = $perm->role_mask;588 $role_mask -= 32 if (32 & $role_mask) == 32; # for permissions before 3.2589 590 if (!$full_perm_mask) {591 # only consider blog permissions that are supported (exclude592 # now reserved permission bits like 32).593 foreach my $key (keys %LegacyPerms) {594 next if $LegacyPerms{$key} =~ m/^not_/; # skip exclusion permissions595 $full_perm_mask |= $key;596 }597 }598 599 $role_mask = $full_perm_mask & $role_mask;600 601 # '0' permission, not used for permissions, just prefs602 return unless $role_mask;603 604 my $name;605 $name = MT->translate($perm_role_names->{$role_mask})606 if $perm_role_names->{$role_mask};607 $name ||= MT->translate("Custom ([_1])", $role_mask);608 require MT::Role;609 my $role = MT::Role->load({ name => $name });610 if ($role) {611 if (($role->role_mask != $role_mask) &&612 ((4096 != $role->role_mask) && (30687 != $role_mask))) {613 $role = undef;614 }615 }616 unless ($role) {617 $role = new MT::Role;618 $role->name($name);619 $role->description(MT->translate("This role was generated by Movable Type upon upgrade."));620 $role->role_mask($role_mask);621 $role->save;622 }623 my $blog = MT::Blog->load($perm->blog_id);624 $user->add_role($role, $blog) if $blog;625 }626 627 525 sub _process_masks { 628 526 my ($perm) = @_; … … 631 529 return unless $mask; 632 530 my @perms; 633 for my $key (keys % LegacyPerms) {531 for my $key (keys %MT::Upgrade::LegacyPerms) { 634 532 if (int($mask) & int($key)) { 635 533 if (2 eq $key) { # post … … 642 540 $perm->restrictions("'comment'"); 643 541 } else { 644 push @perms, $ LegacyPerms{$key};542 push @perms, $MT::Upgrade::LegacyPerms{$key}; 645 543 } 646 544 } … … 674 572 } 675 573 } 676 }677 574 } 678 575
