Old User Groups

I've been trying to condense our list of User Groups for a while now (basically, have duplicates or multiple levels for departments that only need one). I can't seem to delete or deactivate any of them. I've tried removing all the Users (even deactivated users), all the access, and it still errors out.

Is there a more definitive way then just amending the Group Name to say "Inactive"?

  • The only way we've found to do it is via script to clear out all the user group rights mappings before deleting the group in the security tool.  I use this script below.  Try this in your test environment first though!


    SELECT *
    INTO #INACTIVEGROUPS
    FROM T_METUSERGROUP MUG
    WHERE MUG.UG_id LIKE '%Inactive%'

    DELETE FROM TX_USER_GROUP WHERE UG_id IN (SELECT UG_id FROM #INACTIVEGROUPS)
    DELETE FROM TX_REFTABLE_USERGROUP WHERE UG_id IN (SELECT UG_id FROM #INACTIVEGROUPS)
    DELETE FROM TX_SECURITY_RIGHTS WHERE UG_id IN (SELECT UG_id FROM #INACTIVEGROUPS)
    DELETE FROM TX_RPT_USERGROUP WHERE Ug_id IN (SELECT UG_id FROM #INACTIVEGROUPS)
    DELETE FROM TX_DASHBOARD_USERGROUP WHERE TessituraUserGroupId IN (SELECT UG_id FROM #INACTIVEGROUPS)
    DELETE FROM TX_WIDGET_USERGROUP WHERE UG_id IN (SELECT UG_id FROM #INACTIVEGROUPS)
    DELETE FROM TX_MOS_USERGROUP WHERE UG_id IN (SELECT UG_id FROM #INACTIVEGROUPS)
    DELETE FROM TX_BATCH_TYPE_USER_GROUP WHERE ug_id IN (SELECT UG_id FROM #INACTIVEGROUPS)
    DELETE FROM TX_RESOURCE_SECURITY_RIGHTS WHERE UserGroupId IN (SELECT UG_id FROM #INACTIVEGROUPS)
    DELETE FROM TX_NOTE_TYPE_USER_GROUP WHERE ug_id IN (SELECT UG_id FROM #INACTIVEGROUPS)
    DELETE FROM TX_CONTROL_GROUP_USER_GROUP WHERE ug_id IN (SELECT UG_id FROM #INACTIVEGROUPS)
    DELETE FROM TX_GIFT_RIGHTS WHERE UG_id IN (SELECT UG_id FROM #INACTIVEGROUPS)
    DELETE FROM TX_HC_USER_GROUP WHERE ug_id IN (SELECT UG_id FROM #INACTIVEGROUPS)
    DELETE FROM TX_PRICE_TYPE_USER_GROUP WHERE ug_id IN (SELECT UG_id FROM #INACTIVEGROUPS)
    DELETE FROM T_MGR_RIGHTS WHERE UG_id IN (SELECT UG_id FROM #INACTIVEGROUPS)

    DELETE FROM gooesoft_request WHERE ug_id IN (SELECT UG_id FROM #INACTIVEGROUPS)

  • Thanks for the suggestion, I'll give it a try!