/** * get singleton instance * @param sfUser $sfUser * @return tpyCart */ public static function getInstance(sfUser $sfUser) { if (is_null(self::$_instance)) { if ($sfUser->isAuthenticated()) { self::$_instance = tpyUserCartTable::getInstance()->findOneBySfGuardUserId($sfUser->getGuardUser()->getId()); if (false == self::$_instance) { self::$_instance = new tpyUserCart(); self::$_instance->setSfGuardUserId($sfUser->getGuardUser()->getId()); } } else { self::$_instance = new tpyCart(); self::$_instance->_user = $sfUser; self::$_instance->_items = $sfUser->getAttribute('cart_items', array(), tpyCart::SESSION_NS); } } return self::$_instance; }
/** * Returns user parameters as an array. * * @param sfUser $user A sfUser instance * * @return array The user parameters */ public static function userAsArray(sfUser $user = null) { if (!$user) { return array(); } $data = array('options' => $user->getOptions(), 'attributeHolder' => self::flattenParameterHolder($user->getAttributeHolder(), true), 'culture' => $user->getCulture()); if ($user instanceof sfBasicSecurityUser) { $data = array_merge($data, array('authenticated' => $user->isAuthenticated(), 'credentials' => $user->getCredentials(), 'lastRequest' => $user->getLastRequestTime())); } return $data; }
/** * Check if the user the necessary credentials to see this particular item * * @param array $item * @param sfUser $user */ public static function hasPermission($item, $user) { if (!$user->isAuthenticated()) { return false; } return isset($item['credentials']) ? $user->hasCredential($item['credentials']) : true; }
public static function search($criteria, sfUser $user) { $c = new Criteria(); $c->addSelectColumn(self::ID . ' ID'); $c->addSelectColumn(self::USERNAME . ' NAME'); $c->addSelectColumn(self::NAME . ' DESCRIPTION'); $tableName = self::TABLE_NAME; $c->addSelectColumn("'{$tableName}' TNAME"); $c->add(self::HIDDEN, 0); if ($user->isAuthenticated()) { $c->add(self::ID, $user->getRaykuUserId(), Criteria::NOT_EQUAL); } $cton = $c->getNewCriterion(self::USERNAME, "%{$criteria}%", Criteria::LIKE); $cton->addOr($c->getNewCriterion(self::NAME, "%{$criteria}%", Criteria::LIKE)); $cton->addOr($c->getNewCriterion(self::EMAIL, "%{$criteria}%", Criteria::LIKE)); $c->add($cton); return self::doSelectStmt($c); }