/** * fourth sequence * Method untuk meload data rule berdasarkan primary key */ private function loadModel($id) { $model = Rule::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
public function actionGetRule() { $keyword = $_GET['q']; $models = Rule::model()->findAll(array('condition' => 'rule_name LIKE :keyword', 'params' => array(':keyword' => '%' . $keyword . '%'), 'order' => 'rule_name', 'limit' => 5)); $suggest = array(); foreach ($models as $model) { $suggest[] = array('id' => $model->id_rule . '-' . $model->point, 'text' => $model->rule_name); } echo CJSON::encode($suggest); }
/** * This utility says if a user can execute certain rules over an object. * * @param User $user * @param string $rule_name * @param string $obj_type * @param number $obj_id * @return boolean Returns true if the user has access, false otherwise. */ public static function hasAccess($user, $rule_name, $obj_type = null, $obj_id = null) { $ret_val = false; if (isset($user) && isset($rule_name)) { /* rule */ $rule = Rule::model()->findByAttributes(array('name' => $rule_name)); /* does it exist? */ if (isset($rule)) { $perms_attr['rule_id'] = $rule->id; $perms_attr['object_type'] = isset($obj_type) ? $obj_type : null; $perms_attr['object_id'] = isset($obj_id) ? $obj_id : null; $perms = Permission::model()->findAllByAttributes($perms_attr); if (isset($perms)) { foreach ($perms as $p) { if ($p->subject_type == 'users' && $p->subject_id == $user->id) { $ret_val = true; break; } } if (!$ret_val) { foreach ($perms as $p) { if ($p->subject_type == 'groups' && $user->isInGroup($p->subject_id)) { $ret_val = true; break; } } } } } } return $ret_val; }