Can't modify Default Group Permissions (running as "admin")

I’ve run into a weird situation. I’m running a site where the current default group permissions aren’t permissive at all, and I wish to give those permissions to Administrators:

It does seem possible to add permissions, I at least get the dialog boxes when pressing things like “Search Group Folder”. However, we I’m trying to select the type of access I want to give (“Group”, “User”, “Group Set”, …), I get an empty dropdown list, so can’t choose anything.

What’s going on, I wonder…

The exact same dialog box works wonders anywhere else where I want to modify permissions, including in the General User Permissions section higher up on the same page.

CCMS version: 9.1.3

I went digging, and soon found that everything I’m looking for sits in SQL tables.

It turns out that pkCategoryID in PermissionKeyCategories has changed somehow, compared to a fresh install, but where pkCategoryID in PermissionAccessEntityTypeCategories hasn’t been changed accordingly.

I have no idea how this came to be. This site has been around since Concrete5 v8.1.0 at least, so has gone through multiple upgrades, as well as a migration to a composer based setup on a new server. It’s quite possible that something got messed up somewhere.

My solution for now is to modify pkCategoryID for the “offending” category in all applicable tables (apart from those already mentioned, there is PermissionKeys).

Wish me luck!

It worked, and there isn’t any bad fallout as far as I can see.

Thanks for posting your solution as it really pointed me to the right direction. I was experiencing the exact same thing manifesting in not being able to create new users as other than the SuperUser or assigning them to the Administrators group, primarily because of the empty dropdown menu.

I ended up making a clean install of the same version (9.2.1) of Concrete in a dev environment to have a reference of what the permissions should look like. Doing

SELECT *
  FROM PermissionAccessEntityTypeCategories
 WHERE pkCategoryID NOT IN (
    SELECT pkCategoryID FROM PermissionKeyCategories
  )
;

revealed a couple of PermissionAccessEntityTypeCategories.pkCategoryID rows in their teens which hadn’t been updated. After changing those IDs to match what actually was in PermissionKeyCategories, the menu started to work and I was able to add the missing default permissions for the Administrators group.

But, Administrator users still weren’t able to actually add more people to the Administrators even if the option was visually there. What finally fixed that was inserting a couple more rows into the database. This is just an example and you need to enable database query logging to see which tables Concrete is trying to query with which values to be able to fill in values that’ll work for you:

INSERT INTO PermissionAccess (paIsInUse) VALUES (1);
-- New PermissionAccess was created with a paID = 1022, so:
INSERT INTO TreeNodePermissionAssignments (treeNodeId, pkID, paID) VALUES (4, 110, 1022);
INSERT INTO PermissionAccessList (paID, peID, pdID, accessType) VALUES (1022, 1, 0, 10);