/** * Process admin notification while traversing the list of project the suspended user belong to. * * @param PFUser $user Suspended user after LDAP daily synchro. * * @return void */ public function processReminder(PFUser $user) { $to = ''; if ($user->getStatus() == 'S') { $adminsEmails = $this->ldapSyncMail->getNotificationRecipients($user); foreach ($adminsEmails as $projectName => $emailList) { $subject = $this->getSubject($projectName, $user); $body = $this->getBody($projectName, $user); $to = implode(";", $emailList); $this->ldapSyncMail->notifyProjectsAdmins($to, $projectName, $user, $subject, $body); } } }
/** * Check user status validity * * @param PFUser $user * @param Boolean $allowpending * @return Boolean * @throws User_StatusDeletedException * @throws User_StatusSuspendedException */ private function isFinalStatus(PFUser $user) { $status = $user->getStatus(); switch ($status) { case PFUser::STATUS_ACTIVE: case PFUser::STATUS_RESTRICTED: return true; break; case PFUser::STATUS_DELETED: throw new User_StatusDeletedException(); case PFUser::STATUS_SUSPENDED: throw new User_StatusSuspendedException(); default: return false; } }
/** * Delete suspended user * * @param PFUser user * */ private function deleteSuspendedUser(PFUser $user) { if ($user->getStatus() == 'S') { $user->setStatus('D'); $deletionResult = $this->getUserManager()->updateDb($user); if (!$deletionResult) { $this->getBackendLogger()->error("[LDAP Clean Up] Error when deleting user " . $user->getUserName()); } else { $directoryCleanUpDao = $this->getLDAPDirectoryCleanUpDao(); $resetResult = $directoryCleanUpDao->resetForecastDeletionDate($user->getId()); if (!$resetResult) { $this->getBackendLogger()->warn("[LDAP Clean Up] Unable to reset forecast deletion date for user " . $user->getUserName()); } $this->removeUserFromProjects($user); $this->getBackendLogger()->info("[LDAP Clean Up] user " . $user->getUserName() . " have been deleted"); } } }
private function hasAllowedStatus(PFUser $user) { return in_array($user->getStatus(), $this->allowed_status); }
/** * @param PFUser user */ public function ldap_daily_synchro_update_user(PFUser $user) { if ($user->getStatus() == PFUser::STATUS_SUSPENDED) { $factory = $this->getGerritServerFactory(); $gerrit_servers = $factory->getServers(); $gerritDriverFactory = new Git_Driver_Gerrit_GerritDriverFactory($this->getLogger()); foreach ($gerrit_servers as $server) { $gerritDriver = $gerritDriverFactory->getDriver($server); $gerritDriver->setUserAccountInactive($server, $user); } } }
/** * Create new account * * @param PFUser $user * * @return PFUser */ function createAccount($user) { $dao = $this->getDao(); $user_id = $dao->create($user->getUserName(), $user->getEmail(), $user->getPassword(), $user->getRealName(), $user->getRegisterPurpose(), $user->getStatus(), $user->getShell(), $user->getUnixStatus(), $user->getUnixUid(), $user->getUnixBox(), $user->getLdapId(), $_SERVER['REQUEST_TIME'], $user->getConfirmHash(), $user->getMailSiteUpdates(), $user->getMailVA(), $user->getStickyLogin(), $user->getAuthorizedKeys(), $user->getNewMail(), $user->getTimeZone(), $user->getTheme(), $user->getLanguageID(), $user->getExpiryDate(), $_SERVER['REQUEST_TIME']); if (!$user_id) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('include_exit', 'error')); return 0; } else { $user->setId($user_id); $this->assignNextUnixUid($user); $em = $this->_getEventManager(); $em->processEvent(Event::USER_MANAGER_CREATE_ACCOUNT, array('user' => $user)); // Create the first layout for the user and add some initial widgets $lm = $this->_getWidgetLayoutManager(); $lm->createDefaultLayoutForUser($user_id); switch ($user->getStatus()) { case PFUser::STATUS_PENDING: if (ForgeConfig::get('sys_user_approval')) { $this->pending_user_notifier->notifyAdministrator($user); } break; case PFUser::STATUS_ACTIVE: case PFUser::STATUS_RESTRICTED: $em->processEvent('project_admin_activate_user', array('user_id' => $user_id)); break; } return $user; } }
/** * @return bool true if the user is considered valid (active or restricted) */ private function isValidUser(PFUser $user) { return isset(self::$user_status[$user->getStatus()]); }