protected function resolveExtraSql(RedBeanModelJoinTablesQueryAdapter &$joinTablesAdapter, &$where)
 {
     $user = Yii::app()->user->userModel;
     $quote = DatabaseCompatibilityUtil::getQuote();
     if ($where != '') {
         $where .= ' and ';
     }
     $modelClassName = $this->modelClassName;
     $starredClassName = StarredUtil::getStarredModelClassName($modelClassName);
     $starredTableName = $starredClassName::getTableName();
     $modelIdColumnName = $modelClassName::getTableName() . '_id';
     $baseStarredTableName = BaseStarredModel::getTableName();
     $baseStarredColumnName = $baseStarredTableName . '_id';
     $starredTableAliasName = $joinTablesAdapter->addLeftTableAndGetAliasName($starredTableName, 'id', null, $modelIdColumnName);
     $baseStarredTableAliasName = $joinTablesAdapter->addFromTableAndGetAliasName($baseStarredTableName, $baseStarredColumnName, $starredTableAliasName);
     $where .= "{$quote}{$baseStarredTableAliasName}{$quote}.{$quote}_user_id{$quote} = {$user->id}";
 }
 public static function getDefaultMetadata()
 {
     $metadata = parent::getDefaultMetadata();
     $metadata[__CLASS__] = array('relations' => array(static::getRelationName() => array(static::HAS_ONE, static::getRelatedModelClassName())), 'indexes' => static::getIndexesDefinition());
     return $metadata;
 }
 protected static function getIndexesDefinition()
 {
     $relatedModelClassName = static::getRelatedModelClassName();
     $relatedColumnName = $relatedModelClassName::getTableName() . '_id';
     // can't use self:: here as getTableName() uses get_called_class
     $baseStarredColumnName = BaseStarredModel::getTableName() . '_id';
     return array($baseStarredColumnName . '_' . $relatedColumnName => array('members' => array($baseStarredColumnName, $relatedColumnName), 'unique' => true));
 }