public function getRoles($originalSorting = false) { $uid = $this->id; if (!$uid) { return [$this->role]; } ## get roles $roles = Role::model()->with('userRoles')->findAll(ActiveRecord::formatCriteria(['condition' => '|user_id| = :p', 'order' => '|is_default_role|', 'params' => [':p' => $uid]])); $roles = ActiveRecord::toArray($roles); if (empty($roles)) { return false; } $idx = 0; foreach ($roles as $k => $role) { ## find current role index if ($role['role_name'] == Yii::app()->user->getState('role') && $idx == 0) { $idx = $k; } } if ($originalSorting) { return $roles; } $role = array_splice($roles, $idx, 1); array_unshift($roles, $role[0]); $this->roles = $roles; return $roles; }
public function afterSave() { parent::doAfterSave(false); ## get assign user id to user roles $ur = $this->userRoles; foreach ($ur as $k => $u) { $ur[$k]['user_id'] = $this->id; } $olduser = ActiveRecord::toArray($this->getRelated('userRoles')); ActiveRecord::batch('UserRole', $ur, $olduser); ## re-subscribe user to notification if (!$this->isNewRecord) { Yii::app()->nfy->unsubscribe($this->id, null, true); } if ($this->subscribed === "on" || $this->subscribed === "ON" || $this->isNewRecord) { $roles = array(); $sql = 'select DISTINCT role_name from p_user_role p ' . ' inner join p_role r on p.role_id = r.id ' . ' and p.user_id = ' . $this->id; $db = Yii::app()->db->createCommand($sql)->queryAll(); foreach ($db as $r) { if ($this->subscriptionCategories === 'EMPTY' || in_array($r['role_name'], $this->subscriptionCategories)) { $roles[] = "role_" . $r['role_name'] . "."; } } $category = array_merge(array('uid_' . $this->id), $roles); Yii::app()->nfy->subscribe($this->id, $this->username, $category); $this->subscribed = true; } else { $this->subscribed = false; } return true; }
public function afterSave() { parent::doAfterSave(false); ## get assign user id to user roles $ur = $this->userRoles; foreach ($ur as $k => $u) { $ur[$k]['user_id'] = $this->id; } $olduser = ActiveRecord::toArray($this->getRelated('userRoles')); ActiveRecord::batch('UserRole', $ur, $olduser); return true; }
public function getList() { $models = Todo::model()->findAllByAttributes(['user_id' => Yii::app()->user->id], ['order' => 'id desc']); $array = ActiveRecord::toArray($models); foreach ($array as $k => $a) { foreach ($a as $i => $j) { if (is_array($j)) { unset($array[$k][$i]); } } } return $array; }
public function toArray($force = false) { $array = parent::toArray($force); try { self::executePlugins($array, 'array', get_class($this)); } catch (Exception $e) { die($e->getMessage() . ' (' . __LINE__); } if ($this->specificationInstance && $this->specificationInstance instanceof EavSpecificationManager && (empty($array['attributes']) || $force)) { $array['attributes'] = $this->specificationInstance->toArray(); EavSpecificationManager::sortAttributesByHandle('EavSpecificationManager', $array); } return $array; }
public function toArray($force = false) { $array = parent::toArray($force); self::executePlugins($array, 'array', get_class($this)); if ($this->specificationInstance && $this->specificationInstance instanceof EavSpecificationManager && (empty($array['attributes']) || $force)) { $array['attributes'] = $this->specificationInstance->toArray(); EavSpecificationManager::sortAttributesByHandle('EavSpecificationManager', $array); } return $array; }