public function favorite() { header('Content-Type: application/json'); $u = new User(); $data = $this->post(); $pageID = (int) $this->get('id'); $p = \Page::getByID($pageID); if ($u->getUserID() && !$p->isError() && $p->isSystemPage() == false) { //If user favorited remove entry else add entry $db = Database::get(); $res = $db->GetRow("SELECT mpRelationID as rel FROM MultilingualPageRelations WHERE cID=?", array($pageID)); $relation = $res['rel']; // var_dump($relation); // $res = $db->GetAll("SELECT cID FROM MultilingualPageRelations WHERE mpRelationID=?",array($relation)); // var_dump($res); // if($res['rel']) // $res = $db->GetRow("SELECT Count(fav.cID) as num FROM MultilingualPageRelations mppr LEFT JOIN UserPageFavorites fav ON mppr.cID = fav.cID where uID = ? and mpRelationID = ?",array((int)$u->getUserID(),$rel)); $res = $db->GetRow("SELECT Count(cID) as num FROM UserPageFavorites WHERE uID=? and cID in (SELECT cID FROM MultilingualPageRelations WHERE mpRelationID=?)", array((int) $u->getUserID(), $relation)); // var_dump($res); if ($res['num'] > 0) { //Favorite Product $db->Execute('DELETE FROM UserPageFavorites WHERE cID in (SELECT cID FROM MultilingualPageRelations WHERE mpRelationID=?) and uID=?', array($relation, (int) $u->getUserID())); echo json_encode(array('status' => 'unfavorited')); } else { //Unfavorite Product $db->Execute('INSERT INTO UserPageFavorites(cID,uID) VALUES(?,?)', array($pageID, (int) $u->getUserID())); echo json_encode(array('status' => 'favorited')); } exit; } else { echo json_encode(array('status' => 'not_logged')); } }
/** Return an User instance given its id (or null if it's not found) * @param int $uID The id of the user * @param boolean $login = false Set to true to make the user the current one * @param boolean $cacheItemsOnLogin = false Set to true to cache some items when $login is true * @return User|null */ public static function getByUserID($uID, $login = false, $cacheItemsOnLogin = true) { $db = Loader::db(); $v = array($uID); $q = "SELECT uID, uName, uIsActive, uLastOnline, uTimezone, uDefaultLanguage, uLastPasswordChange FROM Users WHERE uID = ? LIMIT 1"; $r = $db->query($q, $v); $row = $r ? $r->FetchRow() : null; $nu = null; if ($row) { $nu = new User(); $nu->uID = $row['uID']; $nu->uName = $row['uName']; $nu->uIsActive = $row['uIsActive']; $nu->uDefaultLanguage = $row['uDefaultLanguage']; $nu->uLastLogin = $row['uLastLogin']; $nu->uTimezone = $row['uTimezone']; $nu->uGroups = $nu->_getUserGroups(true); $nu->superUser = $nu->getUserID() == USER_SUPER_ID; $nu->uLastPasswordChange = $row['uLastPasswordChange']; if ($login) { $nu->persist($cacheItemsOnLogin); $nu->recordLogin(); } } return $nu; }
public function submit() { if ($this->validateAction()) { $comments = $this->request->request('comments'); $comments = is_string($comments) ? trim($comments) : ''; if ($comments === '' && $this->app->make('config')->get('concrete.misc.require_version_comments')) { return Response::create(t('Please specify the version comments'), 400); } $c = $this->page; $u = new User(); $v = CollectionVersion::get($c, "RECENT"); $v->setComment($_REQUEST['comments']); $pr = new PageEditResponse(); if (($this->request->request->get('action') == 'publish' || $this->request->request->get('action') == 'schedule') && $this->permissions->canApprovePageVersions()) { $e = $this->checkForPublishing(); $pr->setError($e); if (!$e->has()) { $pkr = new ApprovePagePageWorkflowRequest(); $pkr->setRequestedPage($c); $pkr->setRequestedVersionID($v->getVersionID()); $pkr->setRequesterUserID($u->getUserID()); $u->unloadCollectionEdit($c); if ($this->request->request->get('action') == 'schedule') { $dateTime = new DateTime(); $publishDateTime = $dateTime->translate('check-in-scheduler'); $pkr->scheduleVersion($publishDateTime); } if ($c->isPageDraft()) { $pagetype = $c->getPageTypeObject(); $pagetype->publish($c, $pkr); } else { $pkr->trigger(); } } } else { if ($this->request->request->get('action') == 'discard') { if ($c->isPageDraft() && $this->permissions->canDeletePage()) { $u = new User(); $cID = $u->getPreviousFrontendPageID(); $this->page->delete(); $pr->setRedirectURL(DIR_REL . '/' . DISPATCHER_FILENAME . '?cID=' . $cID); $pr->outputJSON(); } else { if ($v->canDiscard()) { $v->discard(); } } } else { $v->removeNewStatus(); } } $nc = Page::getByID($c->getCollectionID(), $v->getVersionID()); $u->unloadCollectionEdit(); $pr->setRedirectURL(Loader::helper('navigation')->getLinkToCollection($nc, true)); $pr->outputJSON(); } }
public function completeAuthentication(User $u) { $ui = \UserInfo::getByID($u->getUserID()); if (!$ui->hasAvatar()) { try { $image = \Image::open($this->getExtractor()->getImageURL()); $ui->updateUserAvatar($image); } catch (\Imagine\Exception\InvalidArgumentException $e) { \Log::addNotice("Unable to fetch user images in Google Authentication Type, is allow_url_fopen disabled?"); } catch (\Exception $e) { } } return parent::completeAuthentication($u); }
public function buildHash(User $u, $test = 1) { if ($test > 10) { // This should only ever happen if by some stroke of divine intervention, // we end up pulling 10 hashes that already exist. the chances of this are very very low. throw new \Exception(t('There was a database error, try again.')); } $db = Database::connection(); $validThrough = strtotime('+2 weeks'); $token = $this->genString(); try { $db->executeQuery('INSERT INTO authTypeConcreteCookieMap (token, uID, validThrough) VALUES (?,?,?)', array($token, $u->getUserID(), $validThrough)); } catch (\Exception $e) { // HOLY CRAP.. SERIOUSLY? $this->buildHash($u, ++$test); } return $token; }
/** Return an User instance given its id (or null if it's not found) * @param int $uID The id of the user * @param bool $login = false Set to true to make the user the current one * @param bool $cacheItemsOnLogin = false Set to true to cache some items when $login is true * * @return User|null */ public static function getByUserID($uID, $login = false, $cacheItemsOnLogin = true) { $db = Database::connection(); $v = array($uID); $q = "SELECT uID, uName, uIsActive, uLastOnline, uTimezone, uDefaultLanguage, uLastPasswordChange FROM Users WHERE uID = ? LIMIT 1"; $r = $db->query($q, $v); $row = $r ? $r->FetchRow() : null; $nu = null; if ($row) { $nu = new User(); $nu->setPropertiesFromArray($row); $nu->uGroups = $nu->_getUserGroups(true); $nu->superUser = $nu->getUserID() == USER_SUPER_ID; if ($login) { $nu->persist($cacheItemsOnLogin); $nu->recordLogin(); } } return $nu; }
/** Return an User instance given its id (or null if it's not found) * @param int $uID The id of the user * @param boolean $login = false Set to true to make the user the current one * @param boolean $cacheItemsOnLogin = false Set to true to cache some items when $login is true * @return User|null */ public static function getByUserID($uID, $login = false, $cacheItemsOnLogin = true) { $db = Loader::db(); $v = array($uID); $q = "SELECT uID, uName, uIsActive, uLastOnline, uTimezone, uDefaultLanguage, uLastPasswordChange FROM Users WHERE uID = ? LIMIT 1"; $r = $db->query($q, $v); $row = $r ? $r->FetchRow() : null; $nu = null; if ($row) { $nu = new User(); $nu->uID = $row['uID']; $nu->uName = $row['uName']; $nu->uIsActive = $row['uIsActive']; $nu->uDefaultLanguage = $row['uDefaultLanguage']; $nu->uLastLogin = $row['uLastLogin']; $nu->uTimezone = $row['uTimezone']; $nu->uGroups = $nu->_getUserGroups(true); $nu->superUser = $nu->getUserID() == USER_SUPER_ID; $nu->uLastPasswordChange = $row['uLastPasswordChange']; if ($login) { $session = Core::make('session'); $session->set('uID', $row['uID']); $session->set('uName', $row['uName']); $session->set('uBlockTypesSet', false); $session->set('uGroups', $nu->uGroups); $session->set('uLastOnline', $row['uLastOnline']); $session->set('uTimezone', $row['uTimezone']); $session->set('uDefaultLanguage', $row['uDefaultLanguage']); $session->set('uLastPasswordChange', $row['uLastPasswordChange']); if ($cacheItemsOnLogin) { Loader::helper('concrete/ui')->cacheInterfaceItems(); } $nu->recordLogin(); } } return $nu; }
public function changePassword($newPassword) { $db = Loader::db(); if ($this->uID) { $dh = Loader::helper('date'); $dateTime = $dh->getOverridableNow(); $v = array($this->getUserObject()->getUserPasswordHasher()->HashPassword($newPassword), $dateTime, $this->uID); $q = "update Users set uPassword = ?, uLastPasswordChange = ? where uID = ?"; $r = $db->prepare($q); $res = $db->execute($r, $v); $ue = new \Concrete\Core\User\Event\UserInfoWithPassword($this); $ue->setUserPassword($newPassword); $currentUser = new User(); $session = Core::make('session'); if ($currentUser->isLoggedIn() && $currentUser->getUserID() == $session->get('uID')) { $session->set('uLastPasswordChange', $dateTime); } Events::dispatch('on_user_change_password', $ue); return $res; } }
/** * @return bool */ public function isMyPile() { $u = new User(); if ($u->isRegistered()) { return $this->getUserID() == $u->getUserID(); } }
public function getUserID() { return parent::getUserID(); }
/** * @param null|int $requesterUID * @return bool */ function triggerDeactivate($requesterUID = null) { if ($requesterUID === null) { $u = new User(); $requesterUID = $u->getUserID(); } $db = $this->connection; $v = array($this->getUserID()); $pkr = new ActivateUserWorkflowRequest(); $pkr->setRequestAction('deactivate'); $pkr->setRequestedUserID($this->getUserID()); $pkr->setRequesterUserID($requesterUID); $pkr->trigger(); $this->uIsActive = intval($db->GetOne('select uIsActive from Users where uID = ?', $v)); return $this->isActive() == 0; }