/** * Retrieves a list of models based on the current search/filter conditions. * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions. */ public function search($access = null) { // Warning: Please modify the following code to remove attributes that // should not be searched. $criteria = new CDbCriteria(); if (!empty($access)) { $this->role_id = $access; } if (!empty($_GET['User']['contragent_id'])) { $arrID = array(); if (is_array($_GET['User']['contragent_id'])) { $contragent_id = array(); foreach ($_GET['User']['contragent_id'] as $value) { $contragent_id[] = $value; } foreach (UserAccess::model()->findAll('type = 1 AND access_id in (' . implode(",", $contragent_id) . ')') as $data) { $arrID[] = $data->user_id; } } else { foreach (UserAccess::model()->findAll('type = 1 AND access_id in (' . (int) $_GET['User']['contragent_id'] . ')') as $data) { $arrID[] = $data->user_id; } } if (!empty($arrID)) { $criteria->condition = 'id in (' . implode(",", $arrID) . ')'; } } //compare roles //$criteria->with = array('role'); $criteria->together = true; $criteria->compare('id', $this->id, true); $criteria->compare('subscribe', $this->subscribe, true); $criteria->compare('role_id', $this->role_id, true); $criteria->compare('email', $this->email, true); $criteria->compare('username', $this->username, true); $criteria->compare('score', $this->score); $criteria->compare('birthday', strtotime($this['birthday']), true); $criteria->compare('created_at', $this->created_at, true); $criteria->compare('state', $this->state); $criteria->compare('email_group', $this->email_group, true); $criteria->compare('organization', $this->organization, true); $criteria->compare('ur_addres', $this->ur_addres, true); $criteria->compare('fiz_addres', $this->fiz_addres, true); $criteria->compare('inn', $this->inn, true); $criteria->compare('kpp', $this->kpp, true); $criteria->compare('okpo', $this->okpo, true); return $criteria; }