public function signIn($user, $remember = false, $con = null)
 {
     // signin
     $this->setAttribute('user_id', $user->getId(), 'sfGuardSecurityUser');
     $this->setAuthenticated(true);
     $this->clearCredentials();
     $this->addCredentials($user->getAllPermissionNames());
     // save last login
     $user->setLastLogin(time());
     $user->save($con);
     // remember?
     if ($remember) {
         // remove old keys
         $c = new Criteria();
         $expiration_age = sfConfig::get('app_sf_guard_plugin_remember_key_expiration_age', 15 * 24 * 3600);
         $c->add(sfGuardRememberKeyPeer::CREATED_AT, time() - $expiration_age, Criteria::LESS_THAN);
         sfGuardRememberKeyPeer::doDelete($c);
         // remove other keys from this user
         $c = new Criteria();
         $c->add(sfGuardRememberKeyPeer::USER_ID, $user->getId());
         sfGuardRememberKeyPeer::doDelete($c);
         // generate new keys
         $key = $this->generateRandomKey();
         // save key
         $rk = new sfGuardRememberKey();
         $rk->setRememberKey($key);
         $rk->setSfGuardUser($user);
         $rk->setIpAddress($_SERVER['REMOTE_ADDR']);
         $rk->save($con);
         // make key as a cookie
         $remember_cookie = sfConfig::get('app_sf_guard_plugin_remember_cookie_name', 'sfRemember');
         sfContext::getInstance()->getResponse()->setCookie($remember_cookie, $key, time() + $expiration_age);
     }
 }
 /**
  * @see sfFilter
  */
 public function execute($filterChain)
 {
     $cookieName = sfConfig::get('app_sf_guard_plugin_remember_cookie_name', 'sfRemember');
     if ($this->isFirstCall() && $this->context->getUser()->isAnonymous() && ($cookie = $this->context->getRequest()->getCookie($cookieName))) {
         $criteria = new Criteria();
         $criteria->add(sfGuardRememberKeyPeer::REMEMBER_KEY, $cookie);
         if ($rk = sfGuardRememberKeyPeer::doSelectOne($criteria)) {
             $smintUserId = $this->context->getRequest()->getCookie('sfSmintUserId');
             $currentSmintUser = SmintUserPeer::retrieveByPK($smintUserId);
             if (!is_null($currentSmintUser)) {
                 // add smint user info to session
                 $this->context->getUser()->setAttribute('userid', $currentSmintUser->getId());
                 $this->context->getUser()->setAttribute('username', $currentSmintUser->getUsername());
                 $this->context->getUser()->setAttribute('name', $currentSmintUser->getName());
                 $this->context->getUser()->setAttribute('email', $currentSmintUser->getEmail());
                 $this->context->getUser()->setAttribute('organization', $currentSmintUser->getOrganization());
                 $this->context->getUser()->setAttribute('ip', $this->context->getRequest()->getHttpHeader('addr', 'remote'));
                 // log user login
                 UserLoginsPeer::login();
                 // sfGuard login check
                 $this->context->getUser()->signIn($rk->getsfGuardUser());
             }
         }
     }
     $filterChain->execute();
 }
 /**
  * @see sfFilter
  */
 public function execute($filterChain)
 {
     $cookieName = sfConfig::get('app_sf_guard_plugin_remember_cookie_name', 'sfRemember');
     if ($this->isFirstCall() && $this->context->getUser()->isAnonymous() && ($cookie = $this->context->getRequest()->getCookie($cookieName))) {
         $criteria = new Criteria();
         $criteria->add(sfGuardRememberKeyPeer::REMEMBER_KEY, $cookie);
         if ($rk = sfGuardRememberKeyPeer::doSelectOne($criteria)) {
             $this->context->getUser()->signIn($rk->getsfGuardUser(), true);
         }
     }
     $filterChain->execute();
 }
 public function execute($filterChain)
 {
     if ($this->isFirstCall() and !$this->getContext()->getUser()->isAuthenticated()) {
         if ($cookie = $this->getContext()->getRequest()->getCookie(sfConfig::get('app_sf_guard_plugin_remember_cookie_name', 'sfRemember'))) {
             $c = new Criteria();
             $c->add(sfGuardRememberKeyPeer::REMEMBER_KEY, $cookie);
             $rk = sfGuardRememberKeyPeer::doSelectOne($c);
             if ($rk && $rk->getSfGuardUser()) {
                 $this->getContext()->getUser()->signIn($rk->getSfGuardUser());
             }
         }
     }
     parent::execute($filterChain);
 }
 /**
  * @see sfFilter
  */
 public function execute($filterChain)
 {
     $cookieName = sfConfig::get('app_sf_guard_plugin_remember_cookie_name', 'sfRemember');
     if ($this->isFirstCall()) {
         // deprecated notice
         $this->context->getEventDispatcher()->notify(new sfEvent($this, 'application.log', array(sprintf('The filter "%s" is deprecated. Use "sfGuardRememberMeFilter" instead.', __CLASS__), 'priority' => sfLogger::NOTICE)));
         if ($this->context->getUser()->isAnonymous() && ($cookie = $this->context->getRequest()->getCookie($cookieName))) {
             $criteria = new Criteria();
             $criteria->add(sfGuardRememberKeyPeer::REMEMBER_KEY, $cookie);
             if ($rk = sfGuardRememberKeyPeer::doSelectOne($criteria)) {
                 $this->context->getUser()->signIn($rk->getsfGuardUser(), true);
             }
         }
     }
     parent::execute($filterChain);
 }
 /**
  * This is a method for emulating ON DELETE CASCADE for DBs that don't support this
  * feature (like MySQL or SQLite).
  *
  * This method is not very speedy because it must perform a query first to get
  * the implicated records and then perform the deletes by calling those Peer classes.
  *
  * This method should be used within a transaction if possible.
  *
  * @param      Criteria $criteria
  * @param      PropelPDO $con
  * @return     int The number of affected rows (if supported by underlying database driver).
  */
 protected static function doOnDeleteCascade(Criteria $criteria, PropelPDO $con)
 {
     // initialize var to track total num of affected rows
     $affectedRows = 0;
     // first find the objects that are implicated by the $criteria
     $objects = sfGuardUserPeer::doSelect($criteria, $con);
     foreach ($objects as $obj) {
         // delete related sfGuardUserPermission objects
         $c = new Criteria(sfGuardUserPermissionPeer::DATABASE_NAME);
         $c->add(sfGuardUserPermissionPeer::USER_ID, $obj->getId());
         $affectedRows += sfGuardUserPermissionPeer::doDelete($c, $con);
         // delete related sfGuardUserGroup objects
         $c = new Criteria(sfGuardUserGroupPeer::DATABASE_NAME);
         $c->add(sfGuardUserGroupPeer::USER_ID, $obj->getId());
         $affectedRows += sfGuardUserGroupPeer::doDelete($c, $con);
         // delete related sfGuardRememberKey objects
         $c = new Criteria(sfGuardRememberKeyPeer::DATABASE_NAME);
         $c->add(sfGuardRememberKeyPeer::USER_ID, $obj->getId());
         $affectedRows += sfGuardRememberKeyPeer::doDelete($c, $con);
     }
     return $affectedRows;
 }
Example #7
0
 /**
  * Returns the number of related sfGuardRememberKey objects.
  *
  * @param      Criteria $criteria
  * @param      boolean $distinct
  * @param      PropelPDO $con
  * @return     int Count of related sfGuardRememberKey objects.
  * @throws     PropelException
  */
 public function countsfGuardRememberKeys(Criteria $criteria = null, $distinct = false, PropelPDO $con = null)
 {
     if ($criteria === null) {
         $criteria = new Criteria(sfGuardUserPeer::DATABASE_NAME);
     } else {
         $criteria = clone $criteria;
     }
     if ($distinct) {
         $criteria->setDistinct();
     }
     $count = null;
     if ($this->collsfGuardRememberKeys === null) {
         if ($this->isNew()) {
             $count = 0;
         } else {
             $criteria->add(sfGuardRememberKeyPeer::USER_ID, $this->id);
             $count = sfGuardRememberKeyPeer::doCount($criteria, false, $con);
         }
     } else {
         // criteria has no effect for a new object
         if (!$this->isNew()) {
             // the following code is to determine if a new query is
             // called for.  If the criteria is the same as the last
             // one, just return count of the collection.
             $criteria->add(sfGuardRememberKeyPeer::USER_ID, $this->id);
             if (!isset($this->lastsfGuardRememberKeyCriteria) || !$this->lastsfGuardRememberKeyCriteria->equals($criteria)) {
                 $count = sfGuardRememberKeyPeer::doCount($criteria, false, $con);
             } else {
                 $count = count($this->collsfGuardRememberKeys);
             }
         } else {
             $count = count($this->collsfGuardRememberKeys);
         }
     }
     return $count;
 }
 /**
  * Populates the object using an array.
  *
  * This is particularly useful when populating an object from one of the
  * request arrays (e.g. $_POST).  This method goes through the column
  * names, checking to see whether a matching key exists in populated
  * array. If so the setByName() method is called for that column.
  *
  * You can specify the key type of the array by additionally passing one
  * of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME,
  * BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM.
  * The default key type is the column's phpname (e.g. 'AuthorId')
  *
  * @param      array  $arr     An array to populate the object from.
  * @param      string $keyType The type of keys the array uses.
  * @return     void
  */
 public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
 {
     $keys = sfGuardRememberKeyPeer::getFieldNames($keyType);
     if (array_key_exists($keys[0], $arr)) {
         $this->setUserId($arr[$keys[0]]);
     }
     if (array_key_exists($keys[1], $arr)) {
         $this->setRememberKey($arr[$keys[1]]);
     }
     if (array_key_exists($keys[2], $arr)) {
         $this->setIpAddress($arr[$keys[2]]);
     }
     if (array_key_exists($keys[3], $arr)) {
         $this->setCreatedAt($arr[$keys[3]]);
     }
 }
 public static function retrieveByPK($user_id, $ip_address, $con = null)
 {
     if ($con === null) {
         $con = Propel::getConnection(self::DATABASE_NAME);
     }
     $criteria = new Criteria();
     $criteria->add(sfGuardRememberKeyPeer::USER_ID, $user_id);
     $criteria->add(sfGuardRememberKeyPeer::IP_ADDRESS, $ip_address);
     $v = sfGuardRememberKeyPeer::doSelect($criteria, $con);
     return !empty($v) ? $v[0] : null;
 }
 /**
  * Find object by primary key using raw SQL to go fast.
  * Bypass doSelect() and the object formatter by using generated code.
  *
  * @param     mixed $key Primary key to use for the query
  * @param     PropelPDO $con A connection object
  *
  * @return   sfGuardRememberKey A model object, or null if the key is not found
  * @throws   PropelException
  */
 protected function findPkSimple($key, $con)
 {
     $sql = 'SELECT `USER_ID`, `REMEMBER_KEY`, `IP_ADDRESS`, `CREATED_AT` FROM `sf_guard_remember_key` WHERE `USER_ID` = :p0 AND `IP_ADDRESS` = :p1';
     try {
         $stmt = $con->prepare($sql);
         $stmt->bindValue(':p0', $key[0], PDO::PARAM_INT);
         $stmt->bindValue(':p1', $key[1], PDO::PARAM_STR);
         $stmt->execute();
     } catch (Exception $e) {
         Propel::log($e->getMessage(), Propel::LOG_ERR);
         throw new PropelException(sprintf('Unable to execute SELECT statement [%s]', $sql), $e);
     }
     $obj = null;
     if ($row = $stmt->fetch(PDO::FETCH_NUM)) {
         $obj = new sfGuardRememberKey();
         $obj->hydrate($row);
         sfGuardRememberKeyPeer::addInstanceToPool($obj, serialize(array((string) $key[0], (string) $key[1])));
     }
     $stmt->closeCursor();
     return $obj;
 }
Example #11
0
 /**
  * Returns true if user is authenticated.
  *
  * @return boolean
  */
 public function isAuthenticated()
 {
     if (!$this->authenticated) {
         if ($cookie = sfContext::getInstance()->getRequest()->getCookie(sfConfig::get('app_sf_guard_plugin_remember_cookie_name', 'sfRemember'))) {
             $c = new Criteria();
             $c->add(sfGuardRememberKeyPeer::REMEMBER_KEY, $cookie);
             $rk = sfGuardRememberKeyPeer::doSelectOne($c);
             if ($rk && $rk->getSfGuardUser()) {
                 $this->signIn($rk->getSfGuardUser());
             }
         }
     }
     return $this->authenticated;
 }
 /**
  * Retrieve object using using composite pkey values.
  * @param      int $user_id
  * @param      string $ip_address
  * @param      PropelPDO $con
  * @return     sfGuardRememberKey
  */
 public static function retrieveByPK($user_id, $ip_address, PropelPDO $con = null)
 {
     $_instancePoolKey = serialize(array((string) $user_id, (string) $ip_address));
     if (null !== ($obj = sfGuardRememberKeyPeer::getInstanceFromPool($_instancePoolKey))) {
         return $obj;
     }
     if ($con === null) {
         $con = Propel::getConnection(sfGuardRememberKeyPeer::DATABASE_NAME, Propel::CONNECTION_READ);
     }
     $criteria = new Criteria(sfGuardRememberKeyPeer::DATABASE_NAME);
     $criteria->add(sfGuardRememberKeyPeer::USER_ID, $user_id);
     $criteria->add(sfGuardRememberKeyPeer::IP_ADDRESS, $ip_address);
     $v = sfGuardRememberKeyPeer::doSelect($criteria, $con);
     return !empty($v) ? $v[0] : null;
 }
 /**
  * Find object by primary key
  * <code>
  * $obj = $c->findPk(array(12, 34), $con);
  * </code>
  * @param     array[$user_id, $ip_address] $key Primary key to use for the query
  * @param     PropelPDO $con an optional connection object
  *
  * @return    sfGuardRememberKey|array|mixed the result, formatted by the current formatter
  */
 public function findPk($key, $con = null)
 {
     if (null !== ($obj = sfGuardRememberKeyPeer::getInstanceFromPool(serialize(array((string) $key[0], (string) $key[1])))) && $this->getFormatter()->isObjectFormatter()) {
         // the object is alredy in the instance pool
         return $obj;
     } else {
         // the object has not been requested yet, or the formatter is not an object formatter
         $criteria = $this->isKeepQuery() ? clone $this : $this;
         $stmt = $criteria->filterByPrimaryKey($key)->getSelectStatement($con);
         return $criteria->getFormatter()->init($criteria)->formatOne($stmt);
     }
 }
Example #14
0
 public function countsfGuardRememberKeys($criteria = null, $distinct = false, $con = null)
 {
     include_once 'plugins/sfGuardPlugin/lib/model/om/BasesfGuardRememberKeyPeer.php';
     if ($criteria === null) {
         $criteria = new Criteria();
     } elseif ($criteria instanceof Criteria) {
         $criteria = clone $criteria;
     }
     $criteria->add(sfGuardRememberKeyPeer::USER_ID, $this->getId());
     return sfGuardRememberKeyPeer::doCount($criteria, $distinct, $con);
 }
Example #15
0
 /**
  * This is a method for emulating ON DELETE CASCADE for DBs that don't support this
  * feature (like MySQL or SQLite).
  *
  * This method is not very speedy because it must perform a query first to get
  * the implicated records and then perform the deletes by calling those Peer classes.
  *
  * This method should be used within a transaction if possible.
  *
  * @param      Criteria $criteria
  * @param      PropelPDO $con
  * @return     int The number of affected rows (if supported by underlying database driver).
  */
 protected static function doOnDeleteCascade(Criteria $criteria, PropelPDO $con)
 {
     // initialize var to track total num of affected rows
     $affectedRows = 0;
     // first find the objects that are implicated by the $criteria
     $objects = sfGuardUserPeer::doSelect($criteria, $con);
     foreach ($objects as $obj) {
         // delete related NotaPedido objects
         $c = new Criteria(NotaPedidoPeer::DATABASE_NAME);
         $c->add(NotaPedidoPeer::ADMINISTRA_ID, $obj->getId());
         $affectedRows += NotaPedidoPeer::doDelete($c, $con);
         // delete related NotaPedido objects
         $c = new Criteria(NotaPedidoPeer::DATABASE_NAME);
         $c->add(NotaPedidoPeer::SOLICITA_ID, $obj->getId());
         $affectedRows += NotaPedidoPeer::doDelete($c, $con);
         // delete related NotaPedido objects
         $c = new Criteria(NotaPedidoPeer::DATABASE_NAME);
         $c->add(NotaPedidoPeer::CONTROLA_ID, $obj->getId());
         $affectedRows += NotaPedidoPeer::doDelete($c, $con);
         // delete related NotaPedido objects
         $c = new Criteria(NotaPedidoPeer::DATABASE_NAME);
         $c->add(NotaPedidoPeer::AUTORIZA_ID, $obj->getId());
         $affectedRows += NotaPedidoPeer::doDelete($c, $con);
         // delete related NotaPedidoEstado objects
         $c = new Criteria(NotaPedidoEstadoPeer::DATABASE_NAME);
         $c->add(NotaPedidoEstadoPeer::USER_ID, $obj->getId());
         $affectedRows += NotaPedidoEstadoPeer::doDelete($c, $con);
         // delete related Evento objects
         $c = new Criteria(EventoPeer::DATABASE_NAME);
         $c->add(EventoPeer::USER_ID, $obj->getId());
         $affectedRows += EventoPeer::doDelete($c, $con);
         // delete related CompraEstado objects
         $c = new Criteria(CompraEstadoPeer::DATABASE_NAME);
         $c->add(CompraEstadoPeer::USER_ID, $obj->getId());
         $affectedRows += CompraEstadoPeer::doDelete($c, $con);
         // delete related Venta objects
         $c = new Criteria(VentaPeer::DATABASE_NAME);
         $c->add(VentaPeer::TRANSPORTISTA_INTERNO_ID, $obj->getId());
         $affectedRows += VentaPeer::doDelete($c, $con);
         // delete related VentaEstado objects
         $c = new Criteria(VentaEstadoPeer::DATABASE_NAME);
         $c->add(VentaEstadoPeer::USER_ID, $obj->getId());
         $affectedRows += VentaEstadoPeer::doDelete($c, $con);
         // delete related sfGuardUserPermission objects
         $c = new Criteria(sfGuardUserPermissionPeer::DATABASE_NAME);
         $c->add(sfGuardUserPermissionPeer::USER_ID, $obj->getId());
         $affectedRows += sfGuardUserPermissionPeer::doDelete($c, $con);
         // delete related sfGuardUserGroup objects
         $c = new Criteria(sfGuardUserGroupPeer::DATABASE_NAME);
         $c->add(sfGuardUserGroupPeer::USER_ID, $obj->getId());
         $affectedRows += sfGuardUserGroupPeer::doDelete($c, $con);
         // delete related sfGuardRememberKey objects
         $c = new Criteria(sfGuardRememberKeyPeer::DATABASE_NAME);
         $c->add(sfGuardRememberKeyPeer::USER_ID, $obj->getId());
         $affectedRows += sfGuardRememberKeyPeer::doDelete($c, $con);
         // delete related RecepcionPedido objects
         $c = new Criteria(RecepcionPedidoPeer::DATABASE_NAME);
         $c->add(RecepcionPedidoPeer::RECIBE_ID, $obj->getId());
         $affectedRows += RecepcionPedidoPeer::doDelete($c, $con);
         // delete related RecepcionPedido objects
         $c = new Criteria(RecepcionPedidoPeer::DATABASE_NAME);
         $c->add(RecepcionPedidoPeer::CONTROLA_ID, $obj->getId());
         $affectedRows += RecepcionPedidoPeer::doDelete($c, $con);
         // delete related RecepcionPedido objects
         $c = new Criteria(RecepcionPedidoPeer::DATABASE_NAME);
         $c->add(RecepcionPedidoPeer::ADMINISTRA_ID, $obj->getId());
         $affectedRows += RecepcionPedidoPeer::doDelete($c, $con);
         // delete related UserProfile objects
         $c = new Criteria(UserProfilePeer::DATABASE_NAME);
         $c->add(UserProfilePeer::USER_ID, $obj->getId());
         $affectedRows += UserProfilePeer::doDelete($c, $con);
     }
     return $affectedRows;
 }
 /**
  *
  * @param string $cookie
  * @return sfGuardUser
  * @author fabriceb
  * @since Aug 10, 2009
  */
 public function retrieveSfGuardUserByCookie($cookie)
 {
     $c = new Criteria();
     $c->add(sfGuardRememberKeyPeer::REMEMBER_KEY, $cookie);
     $rk = sfGuardRememberKeyPeer::doSelectOne($c);
     if ($rk) {
         return $rk->getSfGuardUser();
     }
     return null;
 }