예제 #1
0
파일: Init.php 프로젝트: 4Publish/4p_core
 protected function login()
 {
     $uid = null;
     $login_pass = Filter::dbSafe('login_pass', $_POST);
     $login_pseudo = Filter::dbSafe('login_pseudo', $_POST);
     $login_mail = Filter::dbSafe('login_mail', $_POST);
     $login_uid = Filter::dbSafe('uid', $_COOKIE);
     $login_cookie_token = Filter::dbSafe('token', $_COOKIE);
     $wantAcookie = Filter::dbSafe('wantAcookie', $_REQUEST);
     $next = Filter::dbSafe('next', $_POST);
     $login_mixed = filter::dbSafe('login_mixed', $_POST);
     if ($login_mixed) {
         $login_pseudo = $login_mixed;
         $login_mail = $login_mixed;
     }
     $auth = $this->auth();
     if (!$auth->isAuth()) {
         $try = 0;
         // on cherche uid
         if (!$uid && $login_pass && $login_pseudo) {
             $try = 1;
             $Login = new Login_Pseudo($this);
             $uid = $Login->getUid($login_pseudo);
         }
         if (!$uid && $login_pass && $login_mail) {
             $try = 1;
             $Login = new Login_Mail($this);
             $uid = $Login->getUid($login_mail);
         }
         if ($uid && $login_pass) {
             $try = 1;
             $login = new Login_Password($this);
             if ($login->check($uid, $login_pass, 1)) {
                 $auth->check($uid);
             }
         } elseif ($login_uid && $login_cookie_token) {
             $try = 1;
             $Login = new Login_Password($this);
             if ($Login->checkCookieToken($login_uid, $login_cookie_token)) {
                 $auth->check($login_uid);
             }
         }
         if ($auth->isAuth()) {
             if ($wantAcookie) {
                 $Login = new Login_Password($this);
                 $login->sendCookieToken($auth->uid());
             }
             $this->event()->trigger('login_success.core', $auth->uid());
         } elseif ($try) {
             $this->event()->trigger('login_fail.core');
         }
     } else {
         if (isset($_GET['logout']) || Filter::id('a', $_GET) == 'logout' || Filter::id('action', $_GET) == 'logout') {
             $uid = $auth->uid();
             $auth->logout();
             $this->event()->trigger('logout.core', $uid);
         }
     }
     if ($auth->isAuth()) {
         $this->event()->trigger('logged_in.core', $this->auth()->uid());
     }
 }
예제 #2
0
 public function attachTags($id_node, array $tags)
 {
     $tag_list = array();
     foreach ($tags as $v) {
         if ($v = trim(mb_strtolower($v, 'UTF-8'))) {
             $tag_list[] = $v;
         }
     }
     $TagsToDelete = array();
     $old_t = $this->getTags($id_node);
     if (is_array($old_t)) {
         $TagsToDelete = array_diff($old_t, $tag_list);
         foreach ($TagsToDelete as $tag) {
             $this->deleteTag($id_node, Filter::dbSafe($tag));
         }
         $TagsToAdd = array_diff($tag_list, $old_t);
     } else {
         $TagsToAdd = $tag_list;
     }
     foreach ($TagsToAdd as $tag) {
         $this->addTag($id_node, $tag);
     }
 }