function spa_save_forums_delete_perm()
{
    check_admin_referer('forum-adminform_permissiondelete', 'forum-adminform_permissiondelete');
    $permission_id = sp_esc_int($_POST['permission_id']);
    # remove the permission set from the forum
    $success = spa_remove_permission_data($permission_id);
    if ($success == false) {
        $mess = spa_text('Permission set delete failed');
    } else {
        $mess = spa_text('Permission set deleted');
        # reset auths and memberships for everyone
        sp_reset_memberships();
        sp_reset_auths();
        do_action('sph_forum_perm_del', $permission_id);
    }
    # clear out group cache tpo enable change_user
    sp_flush_cache('group');
    return $mess;
}
function spa_save_usergroups_delete_usergroup()
{
    check_admin_referer('forum-adminform_usergroupdelete', 'forum-adminform_usergroupdelete');
    $usergroup_id = sp_esc_int($_POST['usergroup_id']);
    # dont allow updates to the default user groups
    $usergroup = spa_get_usergroups_row($usergroup_id);
    if ($usergroup->usergroup_locked) {
        $mess = spa_text('Sorry, the default User Groups cannot be deleted');
        return $mess;
    }
    # remove all memberships for this user group
    spdb_query("DELETE FROM " . SFMEMBERSHIPS . " WHERE usergroup_id=" . $usergroup_id);
    # remove any permission sets using this user group
    $permissions = spdb_table(SFPERMISSIONS, "usergroup_id={$usergroup_id}");
    if ($permissions) {
        foreach ($permissions as $permission) {
            spa_remove_permission_data($permission->permission_id);
        }
    }
    # remove any group default permissions using this user group
    spdb_query("DELETE FROM " . SFDEFPERMISSIONS . " WHERE usergroup_id=" . $usergroup_id);
    # remove the user group
    spdb_query("DELETE FROM " . SFMEMBERSHIPS . " WHERE usergroup_id=" . $usergroup_id);
    $success = spdb_query("DELETE FROM " . SFUSERGROUPS . " WHERE usergroup_id=" . $usergroup_id);
    if ($success == false) {
        $mess = spa_text('User group delete failed');
    } else {
        $mess = spa_text('User group deleted');
        # reset auths and memberships for everyone
        sp_reset_memberships();
        sp_reset_auths();
        do_action('sph_usergroup_del', $usergroup_id);
    }
    return $mess;
}
function spa_save_permissions_delete_role()
{
    check_admin_referer('forum-adminform_roledelete', 'forum-adminform_roledelete');
    $role_id = sp_esc_int($_POST['role_id']);
    # remove all permission set that use the role we are deleting
    $permissions = spdb_table(SFPERMISSIONS, "permission_role={$role_id}");
    if ($permissions) {
        foreach ($permissions as $permission) {
            spa_remove_permission_data($permission->permission_id);
        }
    }
    # reset auths and memberships for everyone
    sp_reset_memberships();
    sp_reset_auths();
    # remove the permission set role
    $success = spdb_query('DELETE FROM ' . SFROLES . " WHERE role_id={$role_id}");
    if ($success == false) {
        $mess = spa_text('Permission det deletion failed');
    } else {
        do_action('sph_perms_del', $role_id);
        $mess = spa_text('Permission set deleted');
    }
    return $mess;
}