public function notifyOfLogin($calling_app, $user_id, $session_id) { global $regApps; $user = new LoveUser(); $user->loadById($user_id); // push notification of logged in user to each of registered apps // except of calling app foreach ($regApps as $app => $info) { if (is_array($info) && !empty($info['endpoint']) && !empty($info['key']) && $calling_app != $app && !empty($info['listenLogin'])) { // setting request variables $vars = array('action' => 'login', 'user_id' => $user_id, 'session_id' => $session_id, 'username' => $user->getUsername(), 'nickname' => $user->getNickname(), 'admin' => $user->getAdmin(), 'api_key' => $info['key']); ob_start(); // send the request CURLHandler::Post($info['endpoint'], $vars); $result = ob_get_contents(); ob_end_clean(); } } return true; }
/** * Create controller function * * This function creates a new user. * * The function validates the passed data * and return error and description of error * if the data is invalid. When the data is valid * a new user is created. * * @return json|xml true on success false on error */ public function create() { if ($this->isRequestValid("create")) { // Create a new user object, and fill it with the given data. $user = new LoveUser(); $username = isset($_REQUEST['username']) ? trim($_REQUEST['username']) : ''; $password = isset($_REQUEST['password']) ? $_REQUEST['password'] : ''; $nickname = isset($_REQUEST['nickname']) ? trim($_REQUEST['nickname']) : ''; $token = isset($_REQUEST['confirm_string']) ? trim($_REQUEST['confirm_string']) : uniqid(); // TODO: Disable nickname collision checks, and enable soft failing. if (!$user->loadByUsername($username)) { if (!$user->loadByNickname($nickname)) { $data = array("Username" => $username, "Password" => $password, "Nickname" => $nickname, "Active" => 1, "Confirmed" => 1, "Removed" => 0, "Admin" => 0, "Token" => $token, "DateAdded" => 0, "DateModified" => 0); $user->loadData($data); $id = $user->save(); // Push user created to the applications if (!$this->getResponse()->pushUser($this->AppAuth->getAppName(), $id, 'pushCreateUser')) { $this->setError("User could not be pushed to the registred applications."); } $this->response->addParams(array("id" => $user->getId(), "username" => $user->getUsername(), "nickname" => $user->getNickname(), "confirm_string" => $token, "token" => $_REQUEST["token"])); } else { $this->setError("Nickname already registered!"); } } else { $this->setError("Username already registered!"); } } $this->completeResponse(); }
public function testSetUserData() { $failureAffects = "Login will no longer allow admins to update users data"; // admin ID $aid = 6; // user ID $uid = 9; $dbConfig = array(); $dbConfig['adapter'] = 'mysqli'; $dbConfig['host'] = 'mysql.dev.sendlove.us'; $dbConfig['dbname'] = 'LM_logintest'; $dbConfig['username'] = '******'; $dbConfig['password'] = '******'; $u = new LoveUser($dbConfig); $u->loadById($uid); // current user info $username = $u->getUsername(); $nickname = $u->getNickname(); $password = $u->getPassword(); $confirmed = $u->getConfirmed(); $active = $u->getActive(); $token = $u->getToken(); $admin = $u->getAdmin(); $removed = $u->getRemoved(); // updated user info $user_data = array("userid" => $uid, "username" => $username . $uid, "nickname" => $nickname . $uid, "password" => $password . $uid, "confirmed" => 0, "active" => 0, "admin" => 1, "removed" => 1, "token" => uniqid()); // update user $this->assertEquals(true, $this->aHandler->setuserdata($this->controller, $user_data, $aid), $failureAffects); // verify that no error is returned $this->assertEquals(false, $this->controller->getErrorFlag(), $failureAffects); // restore previous user info $user_data["username"] = $username; $user_data["nickname"] = $nickname; $user_data["password"] = $password; $user_data["confirmed"] = 1; $user_data["active"] = 1; $user_data["admin"] = 0; $user_data["removed"] = 0; $user_data["token"] = $token; $this->assertEquals(true, $this->aHandler->setuserdata($this->controller, $user_data, $aid), $failureAffects); }