public function run() { $var = []; $items = AuthItem::getAuthItems(); $service = []; foreach ($items as $item) { if ($item->type == 2) { continue; } $child = []; foreach ($items as $c) { if ($c->type == 1) { continue; } if (preg_match('/^' . $item->name . '/', $c->name)) { $child[] = $c; } } $item->setAttribute("child", $child); $service[] = $item; } $userId = Yii::$app->user->getId(); $assign = AuthAssignment::getAssignById($userId); foreach ($assign as $assignment) { $var["assignments"][] = $assignment->getAttributes(); } $var['services'] = $service; $var['group'] = AuthGroup::getGroups(); return $this->render('navigation', ['var' => $var]); }
/** * Định nghĩa quyền vào bảng authItem * @param type $data */ public static function authItemSave($data) { $item = self::findOne(['name' => $data['name']]); if (empty($item)) { $item = new AuthItem(); $item->created_at = time(); $item->description = 'Hệ thống cập nhật'; $item->type = $data['type']; $item->name = $data['name']; } $item->updated_at = time(); $item->alias = $data['alias']; $item->group_id = isset($data['group']) ? $data['group'] : 0; if (!$item->save()) { return new Response(false, "Định nghĩa quyền không thành công", $item->errors); } $par = explode("_", $data['name'])[0]; if (strpos($data['name'], "_") && self::getAuthItemChildsByPrimarykey($par, $data['name']) == null) { $authItemChild = new AuthItemChild(); $authItemChild->parent = $par; $authItemChild->child = $data['name']; $authItemChild->save(); } return $item; }
/** * @return \yii\db\ActiveQuery */ public function getChild0() { return $this->hasOne(AuthItem::className(), ['name' => 'child']); }
/** * Lấy thông tin quyền và thông tin nhóm quyền * @return type */ public function actionGetigroup() { $params = Yii::$app->request->post(); if (!empty($params)) { $item = AuthItem::findAll(['type' => 2]); $assign = AuthAssignment::findAll(['user_id' => $params['id']]); $group = AuthGroup::getGroups(); if (!empty($item) && !empty($group)) { $data = ['items' => $item, 'group' => $group]; $data['assign'] = !empty($assign) ? $assign : []; return $this->response(new Response(true, 'Lấy dữ liệu thành công', $data)); } else { return $this->response(new Response(false, 'Lấy dữ liệu không thành công', [])); } } }
/** * @return \yii\db\ActiveQuery */ public function getItemName() { return $this->hasOne(AuthItem::className(), ['name' => 'item_name']); }