Example #1
0
        if ($roleAssign == 1) {
            $user->setRoleMembership($row['rol_id'], DATE_NOW, '9999-12-31', $roleLeader);
            ++$count_assigned;
            // find the parent roles and assign user to parent roles
            $tmpRoles = RoleDependency::getParentRoles($gDb, $row['rol_id']);
            foreach ($tmpRoles as $tmpRole) {
                if (!in_array($tmpRole, $parentRoles, true)) {
                    $parentRoles[] = $tmpRole;
                }
            }
        } else {
            // if membership already exists then stop this membership
            if ($row['mem_id'] > 0) {
                // subtract one day, so that user leaves role immediately
                $newEndDate = date('Y-m-d', time() - 24 * 60 * 60);
                $user->editRoleMembership($row['mem_id'], $row['mem_begin'], $newEndDate, $roleLeader);
            }
        }
    }
}
// assign all memberships of parent roles
// this must be done after all roles are assigned so that there aren't overlapping udpates
if (count($parentRoles) > 0) {
    foreach ($parentRoles as $actRole) {
        $user->setRoleMembership($actRole, DATE_NOW, '9999-12-31');
    }
}
// if role selection was a separate page then delete this page from the navigation stack
if ($getInline == 0) {
    $gNavigation->deleteLastUrl();
}