public function execute($repository_path, $user_name, $oldrev, $newrev, $refname) { $repository = $this->repository_factory->getFromFullPath($repository_path); if ($repository !== null) { $user = $this->user_manager->getUserByUserName($user_name); if ($user === null) { $user = new PFUser(array('user_id' => 0)); } $this->executeForRepositoryAndUser($repository, $user, $oldrev, $newrev, $refname); } }
public function migrate($username, $project_id, $tv3_id, $tracker_name, $tracker_description, $tracker_short_name) { $this->logger->info('-- Beginning of migration of tracker v3 ' . $tv3_id . ' to ' . $tracker_name . ' --'); $user = $this->user_manager->getUserByUserName($username); $tracker_id = $this->createTrackerStructure($user, $project_id, $tv3_id, $tracker_name, $tracker_description, $tracker_short_name); $xml_path = $this->exportTV3Data($tv3_id); $this->importArtifactsData($username, $tracker_id, $xml_path); unlink($xml_path); $this->logger->info('-- End of migration of tracker v3 ' . $tv3_id . ' to ' . $tracker_name . ' --'); $this->mail_logger->sendMail($user, $this->project_manager->getProject($project_id), $tv3_id, $tracker_name); }
private function getUserId($user_name) { $user = $this->user_manager->getUserByUserName($user_name); if (!$user) { return null; } return $user->getId(); }
/** * Return a user member of project * * @param Project $project * @param String $userLogin * * @return PFUser */ private function getProjectMember(Project $project, $userLogin) { $user = $this->userManager->getUserByUserName($userLogin); if (!$user) { throw new SoapFault('3202', "Invalid user login"); } if ($user->isMember($project->getID())) { return $user; } throw new SoapFault('3203', "User not member of project"); }
/** * Authenticate user but doesn't verify if they are valid * * @param String $name * @param String $password * @return PFUser * @throws User_InvalidPasswordWithUserException * @throws User_InvalidPasswordException * @throws User_PasswordExpiredException */ public function authenticate($name, $password) { $auth_success = false; $auth_user_id = null; $auth_user_status = null; $this->event_manager->processEvent(Event::SESSION_BEFORE_LOGIN, array('loginname' => $name, 'passwd' => $password, 'auth_success' => &$auth_success, 'auth_user_id' => &$auth_user_id, 'auth_user_status' => &$auth_user_status)); if ($auth_success) { $user = $this->user_manager->getUserById($auth_user_id); } else { $user = $this->user_manager->getUserByUserName($name); if (!is_null($user)) { $auth_success = $this->authenticateFromDatabase($user, $password); } } if (!$user) { throw new User_InvalidPasswordException(); } else { if (!$auth_success) { throw new User_InvalidPasswordWithUserException($user); } } return $user; }
/** * Instantiates a project with user, groups, admins ... * * @param string $project_short_name * @param string $project_long_name * @param string $is_public * @param array $project_members * @param array $project_admins */ protected function createProject($project_short_name, $project_long_name, $is_public, array $project_members, array $project_admins, array $services) { $user = $this->user_manager->getUserByUserName(self::ADMIN_USER_NAME); $this->user_manager->setCurrentUser($user); $project = $this->project_creator->create($project_short_name, $project_long_name, array('project' => array('form_license' => 'xrx', 'form_license_other' => '', 'form_short_description' => '', 'is_test' => false, 'is_public' => $is_public, 'services' => $services, 'built_from_template' => 100))); $this->project_manager->activate($project); foreach ($project_members as $project_member) { $this->addMembersToProject($project, $project_member); } foreach ($project_admins as $project_admin) { $this->addAdminToProject($project, $project_admin); } return $project; }
/** * Fonction ajoutant en BDD le nouveau membre inscrit et lui envoyant un message contenant son code d'activation * d'inscription. */ function addDB() { $userToAdd = new User(array("UserName" => $_POST['userName'], "email" => $_POST['email'], "Mdp" => $_POST['mdp'])); $code_aleatoire = genererCode(); $adresseAdmin = "*****@*****.**"; $to = $userToAdd->getEmail(); $sujet = "Confirmation de l'inscription"; $entete = "From:" . $adresseAdmin . "\r\n"; $entete .= "Content-Type: text/html; charset=utf-8\r\n"; $message = "Nous confirmons que vous êtes officiellement inscrit sur le site EveryDayIdea <br>\n\t\t\t\t\t\t\t\t\tVotre login est : " . $userToAdd->getUserName() . " <br>\n\t\t\t\t\t\t\t\t\tVotre email est : " . $userToAdd->getEmail() . " <br>\n\t\t\t\t\t\t\t\t\tVotre lien d'activation est : <a href='http://www.everydayidea.be/Page/activationInscription.page.php?code=" . $code_aleatoire . "'>Cliquez ici !</a>"; mail($to, $sujet, $message, $entete); /** @var $um : un nouvel user qui va être ajouté à la BDD J'ajoute le nouvel user à la BDD*/ $um = new UserManager(connexionDb()); $um->addUser($userToAdd); /** * Ici j'ai besoin de savoir quel est le user id du nouveau membre ajouté pour pouvoir le mettre dans l'ajout du code d'activation de cet user * Donc je vais le rechercher en base de donnée où il vient d'être ajouté */ $user = $um->getUserByUserName($userToAdd->getUserName()); $userid = $user->getId(); $um->setUserDroit($user, 4); /** * J'ajoute le nouveau code d'activation à la BDD */ $am = new ActivationManager(connexionDb()); $activation = new Activation(array("code" => $code_aleatoire, "id_user" => $userid, "libelle" => "Inscription")); $am->addActivation($activation); }
/** * Si le user a rempli le formulaire de changement de mdp, la fonction regarde si le login correspond au user * possédant ce code d'activation et si cela est vrai, il change son mdp en bdd et delete son code d'activation en BDD */ function changementMdp() { if (isset($_POST['userName']) && isset($_POST['mdp']) && $_POST['mdp'] == $_POST['verifmdp'] && goodCode()) { $code = $_GET['code']; $mdp = $_POST['mdp']; $userName = $_POST['userName']; $am = new ActivationManager(connexionDb()); $ac = $am->getActivationByCodeAndLibelle("Récupération", $code); $userId = $ac->getIdUser(); $um = new UserManager(connexionDb()); /** * Je récupère cet user grâce à l'id du user possédant le code d'acti */ $userRecup = $um->getUserById($userId); /** * Je récupère l'autre user grâce au login qu'il a encodé dans le formulaire */ $userTest = $um->getUserByUserName($userName); /** * Je compare les deux users pour voir si ce sont les mêmes */ if ($userTest->getUserName() != $userRecup->getUserName()) { echo "<section class='row'>"; echo "<br><br><br><br><br><br><br><br><br><br><br><br><div class='alert alert-danger' role='alert'>Votre nom d'utilisateur ne correspond pas à l'utilisateur possédant ce code d'activation !</div>"; echo "</section>"; } else { $userRecup->setMdp($mdp); $am->deleteActivation($ac); $um->updateUserMdp($userRecup); echo "<br><br><br><br><br><br><br><br><br><br><br><br><div class='alert alert-success' role='success'>Votre mot de passe a bien été modifié, vous pouvez vous connecter !</div>"; echo "<meta http-equiv='refresh' content='2; URL=connexion.page.php'>"; } } }
/** * Fonction permettant de vérifier si le formulaire de modification de profil est correct et si il ne contient pas d'erreurs. * @param User $user : l'utilisateur qui a fait la demande de changement de profil. * @return array : un tableau contenant tous les messages d'erreur liés au formulaire de changement de profil ou un booleen * si le formulaire est correct. */ function isValidForm(User $user) { $config = getConfigFile()['CONSTANTE']; $UserName = $_POST['userName']; $Email = $_POST['email']; $Mdp = $_POST['Mdp']; $MdpBis = $_POST['MdpBis']; $tel = $_POST['Tel']; $MdpActuel = $_POST['MdpActuel']; if ($Mdp == '') { $Mdp = NULL; $MdpBis = NULL; } $userTest = new User(array("UserName" => $UserName, "email" => $Email, "Mdp" => $Mdp, "tel" => $tel)); $tab = array("RETURN" => false, "ERROR" => array()); $nameValable = false; $emailValable = false; $mdpValable = false; $nameExistant = false; $mailExistant = false; $goodMdp = false; $boolean_name = false; $boolean_mdp = false; $mdpIdentique = false; $noMdp = false; $um = new UserManager(connexionDb()); $nameVerif = $um->getUserByUserName($userTest->getUserName()); if ($nameVerif->getUserName() != NULL && $user->getUserName() != $UserName) { $nameExistant = true; $tab['ERROR']['Name'] = "Nom déjà existant "; } if (champsEmailValable($Email)) { $emailValable = true; } else { $tab['ERROR']['EmailValable'] = "Votre email contient des caractères indésirables"; } if (champsEmailValable($UserName)) { $nameValable = true; } else { $tab['ERROR']['NameValable'] = "Votre nom d'utilisateur contient des caractères indésirables"; } $mailVerif = $um->getUserByEmail($userTest->getEmail()); if ($mailVerif->getUserName() != NULL && $user->getEmail() != $Email) { $mailExistant = true; $tab['ERROR']['Email'] = "Email déjà existant"; } if ($user->getMdp() == hash("sha256", $MdpActuel . $user->getSalt())) { $goodMdp = true; } else { $tab['ERROR']['MdpActuel'] = "Mauvais mot de passe actuel ! Annulation de la modification"; } if (isset($UserName) and strlen($UserName) >= $config['size_user_name']) { $boolean_name = true; } else { $tab['ERROR']['UserName'] = "******" . $config['size_user_name'] . ")"; } if (isset($Mdp) and isset($MdpBis) and $Mdp == $MdpBis and $Mdp != NULL) { if (strlen($Mdp) >= $config['size_user_mdp']) { $boolean_mdp = true; } else { $tab['ERROR']['Mdp'] = "Mots de passe trop court (min: " . $config['size_user_mdp'] . ")"; } if (champsMdpValable($Mdp)) { $mdpValable = true; } else { $tab['ERROR']['mdpValable'] = "Votre mot de passe contient des caractères indésirables"; } } else { $noMdp = true; } if (isset($Mdp) and isset($MdpBis) and $Mdp != $MdpBis) { $tab['ERROR']['Mdp'] = "Le mot de passe et le mot de passe de vérification sont différents"; } else { $mdpIdentique = true; } $tab['RETURN'] = ($boolean_mdp && $mdpValable || $noMdp and $boolean_name and !$nameExistant and !$mailExistant and $goodMdp && $mdpIdentique && $nameValable && $emailValable); if ($tab['RETURN']) { if (isset($UserName) and $userTest->getUserName() != $user->getUserName()) { $user->setUserName($UserName); } if (isset($Email) and $userTest->getEmail() != $user->getEmail()) { $user->setEmail($Email); } if (isset($Mdp) and strlen($Mdp) > 4 and hash("sha256", $userTest->getMdp() . $userTest->getSalt()) != $user->getMdp()) { $user->setMdp($Mdp); $user->setHashMdp(); } if (isset($tel) and $tel != $user->getTel()) { $user->setTel($tel); } $um->updateUserProfil($user); $userToReconnect = $um->getUserById($user->getId()); setSessionUser($userToReconnect); } return $tab; }
/** * Fonction vérifiant l'identité du membre et le connectant si il possède la bonne identité. * @return array : tableau de message d'erreur dans le cas où ses informations sont fausses, si il est banni ou encore * si il ne s'est pas activé. */ function doConnect() { $tabRetour = array(); $mdp = $_POST['mdp']; $userName = $_POST['userName']; $manager = new UserManager(connexionDb()); $tabUser = $manager->getAllUser(); $userToConnect = new User(array("UserName" => $userName, "Mdp" => $mdp)); $userFound = $manager->getUserByUserName($userName); /** * Je vérifie sur le user est dans la base de donnée et existe bel et bien */ $echec = false; if ($userFound->getId() != NULL) { foreach ($tabUser as $elem) { //$mdp == hash("sha256", $elem->getMdp()); //password_verify($mdp, $elem->getMdp()) if ($userName == $elem->getUserName() && hash("sha256", $userToConnect->getMdp() . $userFound->getSalt()) == $elem->getMdp()) { $echec = false; $userToConnect = $elem; $id = $elem->getId(); break; } else { $echec = true; } } } else { $echec = true; } /** * Je vérifie que le user n'a pas besoin de s'activer avant de se connecter, l'user pouvant avoir * deux code (inscription et mdp oublié), je vérifie que c'est bien le code d'inscription */ $needActi = false; $banni = false; if (isset($id)) { $acManager = new ActivationManager(connexionDb()); $act = $acManager->getActivationByLibelleAndId("Inscription", $id); if (isset($act) && $act->getCode() != NULL) { $needActi = true; } else { $needActi = false; } } $userToConnect = $manager->getUserById($userToConnect->getId()); if ($echec == true) { $tabRetour['Error'] = "<div class='alert alert-danger' role='alert'>Erreur lors de la connexion, veuillez rééssayer avec le bon login ou mot de passe !</div>"; } else { if ($userToConnect->getDroit()[0]->getId() == 6) { $tabRetour['Error'] = "<div class='alert alert-danger' role='alert'>Vous êtes banni, impossible de vous connecter !</div>"; $banni = true; } else { if ($needActi == true) { $tabRetour['Activation'] = "<div class='alert alert-danger' role='alert'>Vous devez activer votre compte avant la connexion !</div>"; } else { $user = $manager->getUserById($id); $manager->updateUserConnect($user); //$_SESSION['User'] = $user; setSessionUser($user); echo "Bienvenue sur EveryDayIdea !"; } } } $tabRetour['Retour'] = !$echec; $tabRetour['Valide'] = !$needActi; $tabRetour['Banni'] = !$banni; return $tabRetour; }