Uploaded image for project: 'phpBB3'
  1. phpBB3
  2. PHPBB3-16973

Remove orphaned roles migration may incorrectly remove role-based group permissions

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Blocker
    • Resolution: Fixed
    • 3.3.6
    • 3.3.7
    • Migrations
    • None

    Description

      Hi,

       

      after updating my phpBB installation from 3.3.5 to 3.3.6 (without any visible issues or errors), guest users can't access the forum anymore and are greeted with "This board has no forums".

       

      After logging in with a user account, the forums suddenly appear.

       

      The quickest solution as always is to help yourself, so I'm investigating:

       

      The "diff" of the database before and after update (luckily I'm making snapshots) shows that multiple roles have been deleted in ACL_GROUPS_TABLE (bb_acl_groups in my case)! But why?

       

      I'm seeing /forum/phpbb/db/migration/data/v33x/remove_orphaned_roles.php and I think that's the culprit!

       

      Apparently this migration routine has deleted the entries in ACL_GROUPS_TABLE for some reason!

       

      Looking at the code in remove_orphaned_roles.php:

      It calculates the "array_diff" from ACL_GROUPS_TABLE and ACL_ROLES_TABLE and then deletes the corresponding "auth_role_id"s from ACL_USERS_TABLE and ACL_GROUPS_TABLE. Okay, but

       

              $sql = 'SELECT auth_role_id
                  FROM ' . ACL_GROUPS_TABLE . '
                  WHERE auth_role_id <> 0
                      AND forum_id = 0';

       

      What's this "AND forum_id = 0'"? I'm not using a forum with ID 0!, but (2, 7, and 8 instead). I don't think this part belongs there and is likely what has caused "This board has no forums".

       

      And indeed: After manually inserting the deleted values into ACL_GROUPS_TABLE and clearing the cache, the forum is working again for guest users.

       

      Regards, Zenju

      Attachments

        Issue Links

          Activity

            People

              Marc Marc
              zenju zenju [X] (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: