The Install New Updates module on the admin dashboard lists one-time platform installers that still have pending steps on the site. Clicking the green Check For Updates button refreshes the list — an installer only appears when the site actually has something left to install, and it disappears from the list once its steps are complete.

What Update Admin Role Settings Does

This installer sets up the database structures that power the admin permissions system, the feature that lets an administrator create custom admin roles and control what each administrator can see and do. It runs four steps that create the required tables, add a visibility column, and apply a security update to how roles are stored. It builds structure and moves role data into its current home, it does not remove any administrator.

The four steps do the following:

  • Role tables: creates the admin_roles table (columns role_id, role_name, created_by, modified_by, created, modified) and the admin_role_permissions table (columns role_permission_id, role_id, permission_id, assigned_by). Each table is created only if it is not already present.
  • Visibility column: adds a can_view column (TINYINT, default 1) to the admin_role_permissions table, used to show or hide a permission.
  • Plugin permissions table: creates the admin_role_plugins_permissions table (columns role_plugins_permissions_id, role_id, plugin_id, can_view, assigned_by) so roles can control access to plugins.
  • Role security update: if the site still has the legacy role_by_admin table, this step copies each administrator's role_id and is_master values into the rel_websites table for this website, then drops the old role_by_admin table. If that legacy table is not present, this step is skipped.

Why It Appears

The installer runs four status checks and appears whenever at least one still has work to do. In plain terms, it shows up when the admin_roles or admin_role_permissions tables are missing, when the can_view column is missing from admin_role_permissions, when the admin_role_plugins_permissions table is missing, or when the legacy role_by_admin table is still present and its role assignments have not yet been moved into rel_websites.

These are legacy conditions. Newer sites already have the permission tables in place, while databases created before the admin permissions system became standard will see this installer offered. Seeing it does not mean anything is broken, it means the database predates one or more of these structures.

Why It Matters

Without these tables and columns, the admin permissions system has nowhere to store roles, permission assignments, and plugin access, so custom admin roles cannot function. The final step is a security update: it moves each administrator's role and master status out of the standalone role_by_admin table and into rel_websites, where the platform expects role assignments to live, then removes the old table. Skipping the installer leaves the site unable to use custom admin roles and keeps any legacy role data on the older structure.

How to Run It

  1. From the admin dashboard, find the Install New Updates module and click Check For Updates.
  2. If the site has pending steps, Update Admin Role Settings appears in the list. Click Install.
  3. After it completes, click Check For Updates again. The entry disappears once all steps are done.

If Update Admin Role Settings does not appear in the list, the website is already up to date. The module only shows installers with pending steps, so there is nothing to do.

After Running

Nothing changes visibly on the front end of the website. The changes are internal: the admin permissions tables exist, the can_view column is in place, and any legacy role assignments now live in rel_websites. With these structures present, admin roles can be created and permissions assigned from the admin area.

The table-creation step re-checks for each table before building it and only creates what is missing, so that part is safe to run more than once. The column-add and plugin-table steps run their change directly, and the security step only runs when the legacy role_by_admin table is still present, so let the module decide when to offer the installer. Click Check For Updates again and the entry disappears once all four checks pass.