Ejemplo n.º 1
0
 /**
  * Processor to remove user from system
  * @param User $user
  * @return mixed
  */
 public function deleteUser(User $user)
 {
     // Preparing variables
     $returnValues['processor'] = 'delete_user';
     $returnValues['username'] = $user->getCommonName() . ' (' . $user->getId() . ')';
     // If user
     if ($user) {
         // Removing LDAP User
         try {
             $returnValues['ldapIssue'] = $this->ldapDriver->ldapRemoveUser($user);
         } catch (\Exception $e) {
             $returnValues['ldapIssue'] = false;
         }
         // Remove VCS user
         try {
             $returnValues['vcsIssue'] = $this->gitlabApi->deleteUser($user);
         } catch (\Exception $e) {
             $returnValues['vcsIssue'] = false;
         }
         // Remove PM user
         try {
             $returnValues['pmIssue'] = $this->redmineApi->deleteUser($user);
         } catch (\Exception $e) {
             $returnValues['pmIssue'] = false;
         }
         // Remove CI User
         //            try {
         //                $returnValues['ciIssue'] = $this->container->get('spirit_dev_dbox_portal_bundle.api.jenkins')->deleteUser($user);
         //            } catch (\Exception $e) {
         $returnValues['ciIssue'] = 'Deprecated !';
         //            }
         // Remove QA User
         $returnValues['qaIssue'] = $this->sonarApi->deleteUser($user);
         // Remove demands
         $demands = $this->em->getRepository('SpiritDevDBoxPortalBundle:Demand')->findBy(array('applicant' => $user));
         $status = $this->em->getRepository('SpiritDevDBoxPortalBundle:Status')->findOneBy(array('canonicalName' => 'new'));
         foreach ($demands as $demand) {
             $demand->setApplicant(null);
             $demand->setStatus($status);
         }
         // Remove projects
         $projectsOwned = $this->em->getRepository('SpiritDevDBoxPortalBundle:Project')->findBy(array('owner' => $user));
         foreach ($projectsOwned as $project) {
             $project->setOwner(null);
         }
         //            $projectMembers = $em->getRepository('SpiritDevDBoxPortalBundle:Project')->findBy(array('teamMembers'=>$user));
         //            foreach ($projectMembers as $project) {
         //                $project->removeTeamMember($user);
         //            }
         // Remove DB User
         $this->em->remove($user);
         // Save changes
         $this->em->flush();
         $returnValues['dbIssue'] = true;
         // Send mail
         $this->mailer->accountUpdate($user, "deletion");
         $returnValues['mailIssue'] = true;
     } else {
         $returnValues['ldapIssue'] = false;
         $returnValues['vcsIssue'] = false;
         $returnValues['pmIssue'] = false;
         $returnValues['ciIssue'] = false;
         $returnValues['qaIssue'] = false;
         $returnValues['dbIssue'] = false;
         $returnValues['mailIssue'] = false;
     }
     // Return values
     return $returnValues;
 }