public function execute($args = null) { if (!empty($_POST)) { $_POST['id'] = null; $_POST['hash'] = ServiceAuth::createHash($_POST['pass1']); $_POST['inBounds'] = 0; $_POST['outBounds'] = 0; $u = ModelUser::newInstance()->hydrate($_POST); $p = ModelProfile::newInstance(); if ($_POST['pass1'] != $_POST['pass2']) { ServiceMessage::getInstance()->addMessage('Les mots de passes ne correspondent pas', 'error'); } elseif (CollectionUser::newInstance()->findBy('login', $_POST['login'])) { ServiceMessage::getInstance()->addMessage('Ce login est déjà utilisé', 'error'); } else { if (ServiceDb::getInstance()->persist($u)) { if ($i = ServiceDb::getInstance()->lastInsertId()) { if (ServiceDb::getInstance()->persist($p->hydrate(array('user_id' => $i)))) { ServiceMessage::getInstance()->addMessage('Votre compte a bien été créé', 'success'); ServiceDb::getInstance()->persist(ModelAction::newInstance()->setUser_id($i)->setType('create')->setObject('profile')->setWhen()); return header('Location: /logout/quiet'); } else { ServiceDb::getInstance()->delete($u); ServiceMessage::getInstance()->addMessage('Une erreur est survenue #2', 'error'); } } else { ServiceMessage::getInstance()->addMessage('Une erreur est survenue #1', 'error'); } } } } ServiceRenderHtml::newInstance()->load('subscribe')->setData('hideNavigation', true)->render(); }
public function findAllCoworkers() { $k = ''; foreach (array_keys(ModelUser::newInstance()->getPersistentData()) as $v) { $k .= "`user1`.`{$v}` `a__{$v}`, `user2`.`{$v}` `b__{$v}`,"; } $sth = ServiceDb::getInstance()->prepare(' select `user_has_user`.*, ' . $k . ' `user1`.`id` `a__id`, `user2`.`id` `b__id` from `user_has_user` left join `user` `user1` on `user1`.`id`=`user_has_user`.`user_id1` left join `user` `user2` on `user2`.`id`=`user_has_user`.`user_id2` where (`user_has_user`.`type` & ' . ModelUser_has_user::WORK . ' ) and exists ( select 1 from `user_has_user` `foo` where `user_has_user`.`user_id2`=`foo`.`user_id1` and (`foo`.`type` & ' . ModelUser_has_user::WORK . ' ) )'); $sth->execute(); $pairs = array(); $arr = array(); foreach ($sth->fetchAll() as $data) { $datax = array(); // FIXME : find another way to avoir doublons if (in_array($data['a__id'] . '.' . $data['b__id'], $pairs) || in_array($data['b__id'] . '.' . $data['a__id'], $pairs)) { continue; } $pairs[] = $data['a__id'] . '.' . $data['b__id']; $a = ModelUser_has_user::newInstance()->hydrate($data); foreach ($data as $k => $v) { if (strpos($k, 'a__') === 0) { $datax[str_replace('a__', '', $k)] = $v; } } $a->setUser1(ModelUser::newInstance()->hydrate($datax)); foreach ($data as $k => $v) { if (strpos($k, 'b__') === 0) { $datax[str_replace('b__', '', $k)] = $v; } } $a->setUser2(ModelUser::newInstance()->hydrate($datax)); $arr[] = $a; } return $arr; }