/** * Executes index action * * @param sfRequest $request A request object */ public function executeIndex(sfWebRequest $request) { if (!$request->getParameter('sf_culture')) { $ssaml = new SimpleSAML_Auth_Simple('default-sp'); $attributes = $ssaml->getAttributes(); if ($this->getUser()->isFirstRequest()) { if (array_key_exists('preferredLanguage', $attributes)) { $culture = $attributes['preferredLanguage']; if ($culture != 'hu' && $culture != 'en') { $culture = $request->getPreferredCulture(array('en', 'hu')); } } else { $culture = $request->getPreferredCulture(array('en', 'hu')); } $this->getUser()->setCulture($culture); $this->getUser()->isFirstRequest(false); } else { $culture = $this->getUser()->getCulture(); } $this->redirect('localized_homepage'); } $p = Doctrine::getTable('Principal')->findOneByFedid($this->getUser()->getUsername()); if ($p) { $oos = $p->getOrganization(); $ros = $p->getRelatedOrganizations(TRUE); } else { $p = new Principal(); $p->setFedid($this->getUser()->getUsername()); $p->save(); } $this->oos = $oos; $this->ros = $ros; }
public function executeResolve(sfWebRequest $request) { $i18n = sfContext::getInstance()->getI18N(); $i = Doctrine::getTable('Invitation')->findOneByUuid($request->getParameter('uuid')); /* Nincs is ilyen meghívó. */ if (!$i) { $m = $i18n->__("Can't find the requested invitation"); $this->getUser()->setFlash('error', $m); $this->redirect("default/error"); } /* Elfogadta már? */ if ($i->getStatus() != "pending") { $m = $i18n->__('The invitation is no longer pending: %status%', array("%status%" => $i->getStatus())); $this->getUser()->setFlash('error', $m); $this->redirect("default/error"); } $p = Doctrine::getTable('Principal')->findOneByFedid($this->getUser()->getUsername()); /* A felhasználó most van itt először. Berakjuk a principal-ba. */ if (!$p) { $p = new Principal(); $p->setFedid($this->getUser()->getUsername()); $p->save(); } /* Ugye nincs még benn a szervezetben? */ $o = $i->getOrganization(); foreach ($i->getPrincipal() as $prin) { if ($prin and $prin->getId() == $this->getUser()->getPrincipalId()) { $i->delete(); $m = $i18n->__('You are already a member of this organization. The invitation has lost its purpose, so we have deleted it.'); $this->getUser()->setFlash('notice', $m); $this->redirect("show/index?id=" . $r->getOrganization()->getId()); } } $p_id = $this->getUser()->getPrincipalId(); $i->setAcceptAt(date('Y-m-d H:i:s')); $i->setStatus('accepted'); $i->setPrincipalId($p_id); $i->save(); $rp = new RolePrincipal(); $rp->setRoleId($i->getRoleId()); $rp->setPrincipalId($p_id); $rp->save(); $r = $rp->getRole(); /* Send email */ $params = array("o" => $o, "p" => $p, "r" => $r); /* szervezők email címei */ $to = array(); foreach ($o->getPrincipal() as $manager) { $to[] = $manager->getUser()->getEmailAddress(); } $email_params = array("to" => $to, "subject" => $i18n->__('%lname% has accepted the invitation to %organization%', array("%lname%" => $p->getUser()->getLastName(), "%organization%" => $o)), "bodyhtml" => $this->getPartial('invitePrincipal/acceptHtml', $params)); $this->sendEmail($email_params); $this->getUser()->setFlash('notice', $i18n->__('You have been successfully added to %organization% organization.', array("%organization%" => $o))); $this->redirect("show/index?id=" . $o->getId()); }