Example #1
0
 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();
 }
Example #2
0
    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;
    }