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(); }