function __construct($id) { $this->id = $id; $this->path = 'private/statiques/' . $id . '.wiki'; try { Zend_Registry::get('acl')->add($this); } catch (Zend_Acl_Exception $e) { /* déjà ajoutée */ } $this->title = preg_match("`^\\+\\+ (.*)\$`m", $this->read(), $res) ? $res[1] : wtk_ucfirst($this->id); }
/** * @dataProvider ucfirstFixtures */ function testUcfirst($label, $capsed) { $this->assertEquals(wtk_ucfirst($label), $capsed); }
function recouvrirAction() { $this->metas(array('DC.Title' => "Recouvrir l'accès à votre compte")); $token = $this->_getParam('confirmer'); if ($token) { $t = new Users(); try { $user = $t->findByRecoverToken($token); } catch (Strass_Db_Table_NotFound $e) { throw new Zend_Controller_Action_Exception("Jeton inconnu ou expiré", 404); } $this->view->set = $m = new Wtk_Form_Model('recouvrir'); $i0 = $m->addString('nouveau', "Nouveau mot de passe"); $i1 = $m->addString('confirmation', "Confirmer"); $m->addConstraintRequired($i0); $m->addConstraintEqual($i1, $i0); $m->addNewSubmission('enregistrer', 'Enregistrer'); if ($m->validate()) { $db = $t->getAdapter(); $db->beginTransaction(); try { $this->view->individu = $individu = $user->findParentIndividus(); $user->username = $individu->adelec; $user->setPassword($m->get('nouveau')); $user->recover_token = null; $user->save(); $this->logger->info("Recouvrement du compte", $this->_helper->Url('fiche', 'individus', null, array('individu' => $individu->slug))); $db->commit(); } catch (Exception $e) { $db->rollBack(); throw $e; } $this->redirectSimple('index', 'unites'); } } else { $this->view->send = $m = new Wtk_Form_Model('recouvrir'); $m->addConstraintEMail($m->addString('adelec', "Votre adresse")); $m->addNewSubmission('envoyer', "Envoyer"); if ($m->validate()) { $t = new Users(); try { $user = $t->findByEMail($m->get('adelec')); } catch (Zend_Db_Table_Exception $e) { $m->errors[] = new Wtk_Form_Model_Exception('Adresse inconnue', $m->getInstance('adelec')); return; } $individu = $user->findParentIndividus(); $user->recover_token = md5(uniqid() . '-' . mt_rand(10000, 99999)); /* Laisser une demi heure pour délivrer le message */ $user->recover_deadline = time() + 30 * 60; $user->save(); $this->view->mail = $mail = new Strass_Mail_Recover($user); $fn = trim(wtk_ucfirst($individu->prenom) . " " . $individu->capitalizedLastname()); $mail->addTo($individu->adelec, $fn); $mail->send(); $this->_helper->flash->info("Courriel envoyé", "Un courriel vous a été envoyé avec un lien vers la page " . "pour définir un nouveau mot de passe. Le lien expirera dans " . "une demi heure."); $this->redirectSimple('index', 'unites'); } } }
function getFullName($compute = true, $totem = true, $compact = false) { $acl = Zend_Registry::get('acl'); // si je suis un sachem if ($this->totem && ($compute && $totem)) { // et que l'utilisateur est un sachem/admin if ($acl->isAllowed(null, $this, 'totem')) { // montrer mon totem return wtk_ucfirst($this->totem); } } if ($acl->isAllowed(null, $this, 'voir-nom')) { return trim(wtk_ucfirst($this->prenom) . " " . $this->capitalizedLastname($compact)); } else { if ($compute && ($app = $this->findAppartenances()->current())) { $role = $app->findParentRoles(); if ($role->nom_jungle) { /* Branche jaune, préférer Akéla, Guillemette pour les inconnus */ return $app->getTitre(); } else { /* Prénom et initiales pour les visiteurs*/ return trim(wtk_ucfirst($this->prenom) . " " . $this->capitalizedLastname(true)); } } else { /* dans le doute, on masque plutôt que de fuiter un prénom de cheftaine à un louveteau*/ return 'Nom masqué'; } } }