示例#1
0
 /**
  * @Route("/user/{platformid}/{organizationid}/{userid}/password", name="_user_password", requirements={
  *     "platformid": "([a-z0-9]{8})(\-[a-z0-9]{4}){3}(\-[a-z0-9]{12})",
  *     "organizationid": "([a-z0-9]{8})(\-[a-z0-9]{4}){3}(\-[a-z0-9]{12})",
  *     "userid": "([a-z0-9]{8})(\-[a-z0-9]{4}){3}(\-[a-z0-9]{12})"
  * })
  */
 public function passwordAction(Request $request, $platformid, $organizationid, $userid)
 {
     $platform_repository = (new PlatformPeer())->getLdapManager()->getRepository('platform');
     $platform = $platform_repository->getPlatformByUUID($platformid);
     $organizationPeer = new OrganizationPeer($platform->getDn());
     $organization_repository = $organizationPeer->getLdapManager()->getRepository('organization');
     $organization = $organization_repository->getOrganizationByUUID($organizationid);
     $userPeer = new UserPeer($organization->getDn());
     $user_repository = $userPeer->getLdapManager()->getRepository('user');
     $userLdap = $user_repository->getUserByUUID($userid);
     $domainPeer = new DomainPeer($organization->getDn());
     $domain_repository = $domainPeer->getLdapManager()->getRepository('domain');
     $tranformer = new ZacaciaTransformer();
     $user = $tranformer->transUser($userLdap, $platform, $organization);
     # print_r( $user ); exit;
     $form = $this->createForm(ChangePwdType::class, $user);
     $form->handleRequest($request);
     if ($form->isSubmitted() && $form->isValid()) {
         try {
             $userLdap->setuserPassword($user->getPassword());
             $userPeer->updateUser($userLdap);
             return $this->redirectToRoute('_user', array('platformid' => $platform->getEntryUUID(), 'organizationid' => $organization->getEntryUUID()));
         } catch (LdapConnectionException $e) {
             echo "Failed to update user!" . PHP_EOL;
             echo $e->getMessage() . PHP_EOL;
         }
     }
     return $this->render('ZacaciaBundle:User:password.html.twig', array('platform' => $platform, 'organization' => $organization, 'user' => $user, 'form' => $form->createView()));
 }