Esempio n. 1
0
 public function log_in($uid, $remember_me, $login_source)
 {
     $user_type = Network::get_user_type(PA::$network_info->network_id, $uid);
     if ($user_type == DISABLED_MEMBER) {
         throw new CNException(USER_ACCESS_DENIED, 'Your account has been temporarily disabled by the administrator.');
     }
     $logged_user = new User();
     // load user
     $logged_user->load((int) $uid);
     $logged_user->set_last_login();
     PA::$login_user = $logged_user;
     register_session($logged_user->login_name, $logged_user->user_id, $logged_user->role, $logged_user->first_name, $logged_user->last_name, $logged_user->email, $logged_user->picture);
     if ($remember_me) {
         // set login cookie
         if ($this->login_cookie->is_new()) {
             $this->login_cookie->new_session($uid);
         }
         $cookie_value = $this->login_cookie->get_cookie();
         $cookie_expiry = time() + LoginCookie::$cookie_lifetime;
         // update tracking info
         $this->login_cookie->update_tracking_info($_SERVER['HTTP_USER_AGENT'], $_SERVER['REMOTE_ADDR']);
     } else {
         // clear login cookie
         $cookie_value = "";
         $cookie_expiry = 0;
     }
     // remember series ID, so we can destroy session on logout
     $_SESSION['login_series'] = $this->login_cookie->get_series();
     // remember login source, so we know if it's safe to let user change password, etc
     $_SESSION['login_source'] = $login_source;
     // set new cookie for next login!  (or delete cookie, if not remembering login)
     setcookie(PA_Login::$cookie_name, $cookie_value, $cookie_expiry, PA::$local_url, "." . PA::$domain_suffix);
 }
 /**
  * let the user leave network
  * @access public
  * @param id of the network,uid of user
  * @return flag for joining request moderated or success message
  */
 static function leave($network_id, $uid)
 {
     Logger::log("Enter: static function Network leave");
     //     if (Network::is_mother_network($network_id)) {
     //       throw new PAException(OPERATION_NOT_PERMITTED, "You cant delete mother network.");
     //     }
     if (!Network::member_exists($network_id, $uid)) {
         throw new PAException(OPERATION_NOT_PERMITTED, "You are not member of this network.");
     }
     $user_type = Network::get_user_type($network_id, $uid);
     if ($user_type == NETWORK_OWNER) {
         throw new PAException(OPERATION_NOT_PERMITTED, "You cant leave your own network!!.");
     }
     $res = Dal::query("DELETE FROM {networks_users} WHERE network_id = ? AND user_id = ? ", array($network_id, $uid));
     // delete all user roles for this network
     Roles::delete_user_roles($uid, -1);
     // -1 means: all user roles will be deleted
     // Update cached member count
     Network::update_network_member_count($network_id);
     Logger::log("Exit: static function Network leave");
     return TRUE;
 }