protected function resolveExtraSql(RedBeanModelJoinTablesQueryAdapter &$joinTablesAdapter, &$where)
 {
     if ($where != '') {
         $where .= ' and ';
     }
     $user = Yii::app()->user->userModel;
     $quote = DatabaseCompatibilityUtil::getQuote();
     $starredTableName = StarredUtil::getStarredTableName($this->modelClassName);
     $extraOnQueryPart = "and {$quote}{$starredTableName}{$quote}.{$quote}user_id{$quote} = {$user->id}";
     $starredTableAliasName = $joinTablesAdapter->addLeftTableAndGetAliasName($starredTableName, 'id', null, 'model_id', $extraOnQueryPart);
     $where .= "{$quote}{$starredTableAliasName}{$quote}.{$quote}user_id{$quote} = {$user->id}";
 }
Esempio n. 2
0
 /**
  * @depends testCreateStarredTables
  */
 public function testUnmarkModelAsStarredForAllUsers()
 {
     $super = User::getByUsername('super');
     Yii::app()->user->userModel = $super;
     $steven = UserTestHelper::createBasicUser('Steven');
     $account = new Account();
     $account->owner = $super;
     $account->name = 'Test Account';
     $account->officePhone = '1234567890';
     $this->assertTrue($account->save());
     StarredUtil::markModelAsStarred($account);
     Yii::app()->user->userModel = $steven;
     StarredUtil::markModelAsStarred($account);
     $tableName = StarredUtil::getStarredTableName('Account');
     $sql = "SELECT id FROM {$tableName} WHERE model_id = :modelId;";
     $rows = R::getAll($sql, $values = array(':modelId' => $account->id));
     $this->assertCount(2, $rows);
     StarredUtil::unmarkModelAsStarredForAllUsers($account);
     $sql = "SELECT id FROM {$tableName} WHERE model_id = :modelId;";
     $rows = R::getAll($sql, $values = array(':modelId' => $account->id));
     $this->assertCount(0, $rows);
 }