/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params, $pagesize = 20) { ///应用组用户只可查看所在组的应用的模板 $task_con = ""; if (Yii::$app->user->getIdentity()->admin != 1) { $app_con = "svr_gid in (0"; $query = DcmdUserGroup::find()->andWhere(['uid' => Yii::$app->user->getId()])->asArray()->all(); if ($query) { foreach ($query as $item) { $app_con .= "," . $item['gid']; } } $app_con .= ")"; $query = DcmdApp::find()->where($app_con)->asArray()->all(); $task_con = "app_id in (0"; foreach ($query as $item) { $task_con .= "," . $item['app_id']; } $task_con .= ")"; } $query = DcmdTaskTemplate::find()->where($task_con)->orderBy('task_tmpt_name'); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pagesize' => $pagesize]]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } $query->andFilterWhere(['task_tmpt_id' => $this->task_tmpt_id, 'task_cmd_id' => $this->task_cmd_id, 'svr_id' => $this->svr_id, 'app_id' => $this->app_id, 'update_env' => $this->update_env, 'concurrent_rate' => $this->concurrent_rate, 'timeout' => $this->timeout, 'process' => $this->process, 'auto' => $this->auto, 'utime' => $this->utime, 'ctime' => $this->ctime, 'opr_uid' => $this->opr_uid]); $query->andFilterWhere(['like', 'task_tmpt_name', $this->task_tmpt_name])->andFilterWhere(['like', 'task_cmd', $this->task_cmd])->andFilterWhere(['like', 'svr_name', $this->svr_name])->andFilterWhere(['like', 'task_arg', $this->task_arg])->andFilterWhere(['like', 'comment', $this->comment]); return $dataProvider; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { ///非admin用户,可查看所属业务组内的任务 $svr_con = ""; if (Yii::$app->user->getIdentity()->admin != 1) { $app_con = "svr_gid in (0"; $query = DcmdUserGroup::find()->andWhere(['uid' => Yii::$app->user->getId()])->asArray()->all(); if ($query) { foreach ($query as $item) { $app_con .= "," . $item['gid']; } } $app_con .= ")"; $query = DcmdApp::find()->where($app_con)->asArray()->all(); $app_con = "app_id in (0"; foreach ($query as $item) { $app_con .= "," . $item['app_id']; } $app_con .= ")"; $query = DcmdService::find()->where($app_con)->asArray()->all(); $svr_con = "svr_id in (0"; foreach ($query as $item) { $svr_con .= "," . $item['svr_id']; } $svr_con .= ")"; } $query = DcmdTaskHistory::find()->where($svr_con)->orderBy('task_id desc'); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pagesize' => 20]]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } $query->andFilterWhere(['task_id' => $this->task_id, 'depend_task_id' => $this->depend_task_id, 'svr_id' => $this->svr_id, 'update_env' => $this->update_env, 'update_tag' => $this->update_tag, 'state' => $this->state, 'freeze' => $this->freeze, 'valid' => $this->valid, 'pause' => $this->pause, 'concurrent_rate' => $this->concurrent_rate, 'timeout' => $this->timeout, 'auto' => $this->auto, 'process' => $this->process, 'utime' => $this->utime, 'ctime' => $this->ctime, 'opr_uid' => $this->opr_uid]); $query->andFilterWhere(['like', 'task_name', $this->task_name])->andFilterWhere(['like', 'task_cmd', $this->task_cmd])->andFilterWhere(['like', 'depend_task_name', $this->depend_task_name])->andFilterWhere(['like', 'svr_name', $this->svr_name])->andFilterWhere(['like', 'svr_path', $this->svr_path])->andFilterWhere(['like', 'tag', $this->tag])->andFilterWhere(['like', 'err_msg', $this->err_msg])->andFilterWhere(['like', 'task_arg', $this->task_arg])->andFilterWhere(['like', 'comment', $this->comment]); return $dataProvider; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { ///应用组用户只可查看所在组的应用 $svr_pool_con = ""; if (Yii::$app->user->getIdentity()->admin != 1) { $app_con = "svr_gid in (0"; $query = DcmdUserGroup::find()->andWhere(['uid' => Yii::$app->user->getId()])->asArray()->all(); if ($query) { foreach ($query as $item) { $app_con .= "," . $item['gid']; } } $app_con .= ")"; $query = DcmdApp::find()->where($app_con)->asArray()->all(); $svr_pool_con = "app_id in (0"; foreach ($query as $item) { $svr_pool_con .= "," . $item['app_id']; } $svr_pool_con .= ")"; } $query = DcmdServicePool::find()->where($svr_pool_con)->orderBy('svr_pool'); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pagesize' => 20]]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } $query->andFilterWhere(['svr_pool_id' => $this->svr_pool_id, 'svr_id' => $this->svr_id, 'app_id' => $this->app_id, 'utime' => $this->utime, 'ctime' => $this->ctime, 'opr_uid' => $this->opr_uid]); $query->andFilterWhere(['like', 'svr_pool', $this->svr_pool])->andFilterWhere(['like', 'repo', $this->repo])->andFilterWhere(['like', 'env_ver', $this->env_ver])->andFilterWhere(['like', 'comment', $this->comment]); return $dataProvider; }
public function actionMonitorTask($task_id) { $task = DcmdTask::findOne($task_id); ///非系统管理员只能操作同一产品组的该任务 if (Yii::$app->user->getIdentity()->admin != 1) { if ($task->opr_uid != Yii::$app->user->getId()) { ///判断是否为同一产品组 $app = DcmdApp::findOne($task->app_id); $query = DcmdUserGroup::findOne(['uid' => Yii::$app->user->getId(), 'gid' => $app['svr_gid']]); if ($query == NULL) { Yii::$app->getSession()->setFlash('success', NULL); Yii::$app->getSession()->setFlash('error', "对不起,你没有权限!"); return $this->redirect(array('dcmd-task/index')); } } } else { ///系统管理员产品所属同一系统组 $app = DcmdApp::findOne($task->app_id); $query = DcmdUserGroup::findOne(['uid' => Yii::$app->user->getId(), 'gid' => $app['sa_gid']]); if ($query == NULL) { Yii::$app->getSession()->setFlash('success', NULL); Yii::$app->getSession()->setFlash('error', "对不起,你没有权限!"); return $this->redirect(array('dcmd-task/index')); } } if (Yii::$app->request->post()) { $timeout = Yii::$app->request->post()['timeout']; $auto = Yii::$app->request->post()['auto']; $concurrent_rate = Yii::$app->request->post()['concurrent_rate']; $this->updateTask($task_id, $timeout, $auto, $concurrent_rate); ////var_dump(Yii::$app->request->post());exit; } ///获取产品名称 ///$query = DcmdService::findOne($task->svr_id); $app_id = $task->app_id; /// $query->app_id; ///$query = DcmdApp::findOne($app_id); $app_name = $task->app_name; $ret = xml_to_array($task->task_arg); $args = ""; if (is_array($ret['env'])) { foreach ($ret['env'] as $k => $v) { $args .= $k . '=' . $v . " ; "; } } return $this->render('monitor', ['task_id' => $task_id, 'task' => $task, 'args' => $args, 'app_name' => $app_name, 'app_id' => $app_id]); }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = DcmdUserGroup::find()->andWhere(['gid' => $params['gid']]); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pagesize' => 20]]); /*if (!($this->load($params) && $this->validate())) { return $dataProvider; } $query->andFilterWhere([ 'id' => $this->id, 'uid' => $this->uid, 'gid' => $this->gid, 'utime' => $this->utime, 'ctime' => $this->ctime, 'opr_uid' => $this->opr_uid, ]);*/ return $dataProvider; }
/** * Updates an existing DcmdServicePoolAttr model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id, $svr_pool_id) { $svr_pool = DcmdServicePool::findOne($svr_pool_id); ///仅仅用户与该应用在同一个系统组才可以操作 $temp = DcmdApp::findOne($svr_pool->app_id); $query = DcmdUserGroup::findOne(['uid' => Yii::$app->user->getId(), 'gid' => $temp['sa_gid']]); if ($query == NULL) { Yii::$app->getSession()->setFlash('success', NULL); Yii::$app->getSession()->setFlash('error', "对不起, 你没有权限!"); return $this->redirect(array('dcmd-service-pool/view', 'id' => $svr_pool_id, 'show_div' => 'dcmd-service-pool-attr')); } if ($id == 0) { ///需要新建 $attr_id = Yii::$app->request->queryParams['attr_id']; $def_attr = DcmdServicePoolAttrDef::findOne($attr_id); $query = DcmdServicePoolAttr::findOne(['svr_pool_id' => $svr_pool_id, 'attr_name' => $def_attr->attr_name]); if (count($query) > 0) { $id = $query['id']; } else { $model = new DcmdServicePoolAttr(); $model->app_id = $svr_pool->app_id; $model->svr_id = $svr_pool->svr_id; $model->svr_pool_id = $svr_pool_id; $model->attr_name = $def_attr->attr_name; $model->attr_value = $def_attr->def_value; $model->comment = $def_attr->comment; $model->utime = date('Y-m-d H:i:s'); $model->ctime = $model->utime; $model->opr_uid = Yii::$app->user->getId(); $model->save(); $id = $model->id; } } $model = $this->findModel($id); if ($model->load(Yii::$app->request->post()) && $model->save()) { Yii::$app->getSession()->setFlash('success', '修改成功!'); return $this->redirect(['/dcmd-service-pool/view', 'id' => $model->svr_pool_id, 'show_div' => 'dcmd-service-pool-attr']); } else { return $this->render('update', ['model' => $model]); } }
/** * Updates an existing DcmdNodeGroupAttr model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id, $ngroup_id) { $node_group = DcmdNodeGroup::findOne($ngroup_id); ///仅仅用户与该应用在同一个系统组才可以操作 $query = DcmdUserGroup::findOne(['uid' => Yii::$app->user->getId(), 'gid' => $node_group->gid]); if ($query == NULL) { Yii::$app->getSession()->setFlash('success', NULL); Yii::$app->getSession()->setFlash('error', "对不起, 你没有权限!"); return $this->redirect(['/dcmd-node-group/view', 'id' => $ngroup_id, 'show_div' => 'dcmd-node-group-attr']); } if ($id == 0) { ///需要新建 $attr_id = Yii::$app->request->queryParams['attr_id']; $def_attr = DcmdNodeGroupAttrDef::findOne($attr_id); $query = DcmdNodeGroupAttr::findOne(['ngroup_id' => $ngroup_id, 'attr_name' => $def_attr->attr_name]); if (count($query) > 0) { $id = $query['id']; } else { $model = new DcmdNodeGroupAttr(); $model->ngroup_id = $ngroup_id; $model->attr_name = $def_attr->attr_name; $model->attr_value = $def_attr->def_value; $model->comment = $def_attr->comment; $model->utime = date('Y-m-d H:i:s'); $model->ctime = $model->utime; $model->opr_uid = Yii::$app->user->getId(); $model->save(); $id = $model->id; } } $model = $this->findModel($id); $group = DcmdNodeGroup::findOne($model->ngroup_id); if ($model->load(Yii::$app->request->post()) && $model->save()) { Yii::$app->getSession()->setFlash('success', '修改成功!'); return $this->redirect(['/dcmd-node-group/view', 'id' => $group->ngroup_id, 'show_div' => 'dcmd-node-group-attr']); } else { return $this->render('update', ['model' => $model, 'group' => $group]); } }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params, $qstr = NULL) { ///非系统用户只能查看授权的操作 if (Yii::$app->user->getIdentity()->admin != 1) { $gstr = " gid in (0"; $query = DcmdUserGroup::find()->andWhere(['uid' => Yii::$app->user->getId()])->asArray()->all(); if ($query) { foreach ($query as $item) { $gstr .= "," . $item['gid']; } } $gstr .= ")"; $query = DcmdGroupCmd::find()->where($gstr)->asArray()->all(); if ($qstr == NULL) { $qstr = " opr_cmd_id in (0"; } else { $qstr .= " and opr_cmd_id in (0"; } foreach ($query as $item) { $qstr .= "," . $item['opr_cmd_id']; } $qstr .= ")"; } if ($qstr) { $query = DcmdOprCmd::find()->andWhere($qstr)->orderBy('opr_cmd'); } else { $query = DcmdOprCmd::find(); } $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pagesize' => 20]]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } $query->andFilterWhere(['opr_cmd_id' => $this->opr_cmd_id, 'timeout' => $this->timeout, 'utime' => $this->utime, 'ctime' => $this->ctime, 'opr_uid' => $this->opr_uid]); $query->andFilterWhere(['like', 'opr_cmd', $this->opr_cmd])->andFilterWhere(['like', 'ui_name', $this->ui_name])->andFilterWhere(['like', 'run_user', $this->run_user])->andFilterWhere(['like', 'script_md5', $this->script_md5])->andFilterWhere(['like', 'comment', $this->comment]); return $dataProvider; }
public function actionChangeNodeGroup() { $ngroup_id = Yii::$app->request->post()['ngroup_id']; $ids = explode(";", Yii::$app->request->post()['ids']); if ($ngroup_id == "") { Yii::$app->getSession()->setFlash('error', "未选择设备池!"); return $this->redirect(['index']); } ///判断用户是否和该设备池子属于一个系统组 $tmp = DcmdNodeGroup::findOne($ngroup_id); $query = DcmdUserGroup::findOne(['uid' => Yii::$app->user->getId(), 'gid' => $tmp['gid']]); if ($query == NULL) { Yii::$app->getSession()->setFlash('error', "没有权限切换到该服务池"); return $this->redirect(['index']); } $ret_msg = ""; foreach ($ids as $k => $id) { if ($id == "") { continue; } $model = $this->findModel($id); ///判断用户是否和该设备池子属于一个系统组 $tmp = DcmdNodeGroup::findOne($model['ngroup_id']); $query = DcmdUserGroup::findOne(['uid' => Yii::$app->user->getId(), 'gid' => $tmp['gid']]); if ($query == NULL) { $ret_msg .= "没有权限变更:" . $model->ip . " "; continue; } $model->ngroup_id = $ngroup_id; $model->save(); $ret_msg .= "变更成功:" . $model->ip . " "; } Yii::$app->getSession()->setFlash('success', $ret_msg); return $this->redirect(['index']); }
/** * Deletes an existing DcmdAppArchDiagram model. * If deletion is successful, the browser will be redirected to the 'index' page. * @param integer $id * @return mixed */ public function actionDelete($id) { $model = $this->findModel($id); $app_query = DcmdApp::findOne($model->app_id); ///判断用户所属的系统组是否和该应用相同 $query = DcmdUserGroup::findOne(['uid' => Yii::$app->user->getId(), 'gid' => $app_query['sa_gid']]); if ($query == NULL) { Yii::$app->getSession()->setFlash('error', "对不起, 你没有权限!"); return $this->redirect(array('dcmd-app/view', 'id' => $model->app_id)); } $app_id = $model->app_id; $arch_name = $model->arch_name; $model->delete(); Yii::$app->getSession()->setFlash('success', '删除成功!'); ///删除文件 $base_path = dirname(__DIR__) . "/web/app_image/app_"; $img_path = $base_path . $arch_name . '_' . $app_id . '.jpg'; if (file_exists($img_path)) { unlink($img_path); } $opr_log = new DcmdOprLog(); $opr_log->log_table = "dcmd_app_arch_diagram"; $opr_log->opr_type = 3; $opr_log->sql_statement = "delete arch_name:{$arch_name}"; $opr_log->ctime = date('Y-m-d H:i:s'); $opr_log->opr_uid = Yii::$app->user->getId(); $opr_log->save(); return $this->redirect(['dcmd-app/view', 'id' => $app_id]); }
public function actionDeleteAll() { if (!array_key_exists('selection', Yii::$app->request->post())) { Yii::$app->getSession()->setFlash('error', '未选择服务池!'); return $this->redirect(['index']); } $select = Yii::$app->request->post()['selection']; $err_msg = ""; $suc_msg = ""; foreach ($select as $k => $id) { $model = $this->findModel($id); ///仅仅用户与该应用在同一个系统组才可以操作 $temp = DcmdApp::findOne($model['app_id']); $query = DcmdUserGroup::findOne(['uid' => Yii::$app->user->getId(), 'gid' => $temp['sa_gid']]); if ($query == NULL) { $err_msg .= $model->svr_pool . ":没有权限删除<br>"; continue; } $node = DcmdServicePoolNode::find()->where(['svr_pool_id' => $id])->one(); if ($node) { $err_msg .= $model->svr_pool . ':服务池子设备不为空,不可删除<br>'; continue; } else { ///删除服务池属性 DcmdServicePoolAttr::deleteAll(['svr_pool_id' => $id]); $model->delete(); $suc_msg .= $model->svr_pool . ':删除成功<br>'; } } if ($suc_msg != "") { Yii::$app->getSession()->setFlash('success', $suc_msg); } if ($err_msg != "") { Yii::$app->getSession()->setFlash('error', $err_msg); } return $this->redirect(['index']); }
/** * Deletes an existing DcmdServiceArchDiagram model. * If deletion is successful, the browser will be redirected to the 'index' page. * @param integer $id * @return mixed */ public function actionDelete($id) { $model = $this->findModel($id); ///仅仅用户与该应用在同一个系统组才可以操作 $temp = DcmdApp::findOne($model->app_id); $query = DcmdUserGroup::findOne(['uid' => Yii::$app->user->getId(), 'gid' => $temp['sa_gid']]); if ($query == NULL) { Yii::$app->getSession()->setFlash('success', NULL); Yii::$app->getSession()->setFlash('error', "对不起, 你没有权限!"); return $this->redirect(array('dcmd-service/view', 'id' => $model->svr_id)); } $app_id = $model->app_id; $svr_id = $model->svr_id; $arch_name = $model->arch_name; $this->oprlog(3, "delete arch:" . $arch_name); $model->delete(); Yii::$app->getSession()->setFlash('success', '删除成功!'); ///删除文件 $base_path = dirname(__DIR__) . "/web/app_image/svr_"; $img_path = $base_path . $arch_name . '_' . $svr_id . '.jpg'; if (file_exists($img_path)) { unlink($img_path); } return $this->redirect(['dcmd-service/view', 'id' => $svr_id]); }
public function actionRun($id, $ips = "") { ///判断用户权限 if (Yii::$app->user->getIdentity()->admin != 1) { $gstr = " gid in (0"; $query = DcmdUserGroup::find()->andWhere(['uid' => Yii::$app->user->getId()])->asArray()->all(); foreach ($query as $item) { $gstr .= "," . $item['gid']; } $gstr .= ")"; $query = DcmdGroupRepeatCmd::find()->where($gstr)->asArray()->all(); if (count($query) == 0) { Yii::$app->getSession()->setFlash('error', '对不起, 你没有权限!'); return $this->redirect(['dcmd-opr-cmd-repeat-exec/index']); } } $opr = $this->findModel($id); $change = true; if ($opr->arg_mutable == "0") { $change = false; } $arg = $this->getArg($opr->arg, $change, $opr->opr_cmd); if ($opr->ip_mutable == "1" && $ips != "") { $opr->ip = $ips; } return $this->render('run', ['opr' => $opr, 'arg' => $arg]); }
function actionFinishTask() { $suc_msg = ""; $err_msg = ""; if (array_key_exists('selection', Yii::$app->request->post())) { $task_ids = Yii::$app->request->post()['selection']; foreach ($task_ids as $id) { $task = $this->findModel($id); if (Yii::$app->user->getIdentity()->admin != 1 && $task->opr_uid != Yii::$app->user->getId()) { ///判断是否为同一产品组 $app = DcmdApp::findOne($task->app_id); $query = DcmdUserGroup::findOne(['uid' => Yii::$app->user->getId(), 'gid' => $app['svr_gid']]); if ($query == NULL) { $err_msg .= $task->task_name . ": 没有权限<br>"; continue; } } ///删除dcmd_task_service_pool_history DcmdTaskServicePoolHistory::deleteAll(['task_id' => $id]); ///dcmd_task_node_history DcmdTaskNodeHistory::deleteAll(['task_id' => $id]); ///dcmd_command_history DcmdCommandHistory::deleteAll(['task_id' => $id]); ///dcmd_task_service_pool_attr_history DcmdTaskServicePoolAttrHistory::deleteAll(['task_id' => $id]); $task->delete(); $this->oprlog(3, "delete history task:" . $task->task_name); $suc_msg .= $task->task_name . ": 删除成功<br>"; } } if ($suc_msg != "") { Yii::$app->getSession()->setFlash('success', $suc_msg); } if ($err_msg != "") { Yii::$app->getSession()->setFlash('error', $err_msg); } $this->redirect(array('index')); }
public function actionDeleteAll() { if (Yii::$app->user->getIdentity()->admin != 1) { Yii::$app->getSession()->setFlash('success', NULL); Yii::$app->getSession()->setFlash('error', "对不起, 你没有权限!"); return $this->redirect(array('index')); } if (!array_key_exists('selection', Yii::$app->request->post())) { Yii::$app->getSession()->setFlash('error', '未选择设备组!'); return $this->redirect(['index']); } $select = Yii::$app->request->post()['selection']; $success_msg = ""; $err_msg = ""; foreach ($select as $k => $v) { $model = $this->findModel($v); ///判断用户是否和该设备池子属于一个系统组 $query = DcmdUserGroup::findOne(['uid' => Yii::$app->user->getId(), 'gid' => $model['gid']]); if ($query == NULL) { $err_msg .= $model['ngroup_name'] . ":没有权限删除" . "<br>"; continue; } ///判断设备池是否为空 $node = DcmdNode::find()->where(['ngroup_id' => $v])->one(); if ($node) { $err_msg .= $model['ngroup_name'] . ':设备池子不为空,不可删除' . "<br>"; continue; } DcmdNodeGroupAttr::deleteAll(['ngroup_id' => $model->ngroup_id]); $model->delete(); $success_msg .= $model['ngroup_name'] . ":删除成功" . "<br>"; } if ($success_msg != "") { Yii::$app->getSession()->setFlash('success', $success_msg); } if ($err_msg != "") { Yii::$app->getSession()->setFlash('error', $err_msg); } return $this->redirect(['index']); }
/** * Creates a new DcmdTaskTemplate model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { ///只有管理员可以 if (Yii::$app->user->getIdentity()->admin != 1) { Yii::$app->getSession()->setFlash('success', NULL); Yii::$app->getSession()->setFlash('error', "对不起,你没有权限!"); return $this->redirect(array('dcmd-task-template/index')); } $model = new DcmdTaskTemplate(); if (Yii::$app->request->post()) { ///保存并返回 $model->load(Yii::$app->request->post()); $query = DcmdService::findOne($model->svr_id); $model->svr_name = $query['svr_name']; $query = DcmdTaskCmd::findOne($model->task_cmd_id); ////Yii::$app->request->post()['task_cmd_id']); $model->task_cmd = $query['task_cmd']; $model->utime = date('Y-m-d H:i:s'); $model->ctime = $model->utime; $model->opr_uid = Yii::$app->user->getId(); $arg = array(); foreach (Yii::$app->request->post() as $k => $v) { if (substr($k, 0, 3) == "Arg") { $arg[substr($k, 3)] = $v; } } $model->task_arg = arrToXml($arg); if ($model->save()) { Yii::$app->getSession()->setFlash('success', "添加成功!"); $this->oprlog(1, "insert task template:" . $model->task_tmpt_name); return $this->redirect(['view', 'id' => $model->task_tmpt_id]); } } ///获取admin用户所在系统组的产品 $temp = DcmdUserGroup::find()->andWhere(['uid' => Yii::$app->user->getId()])->asArray()->all(); $sys_ar = array(); foreach ($temp as $item) { $sys_ar[$item['gid']] = $item['gid']; } ///获取产品信息 $query = DcmdApp::find()->asArray()->all(); $app = array("" => ""); foreach ($query as $item) { if (array_key_exists($item['sa_gid'], $sys_ar)) { $app[$item['app_id']] = $item['app_name']; } } ///获取任务脚本 $query = DcmdTaskCmd::find()->asArray()->all(); $task_cmd = array("" => ""); if ($query) { foreach ($query as $item) { $task_cmd[$item['task_cmd_id']] = $item['ui_name']; } } return $this->render('create', ['model' => $model, 'app' => $app, 'task_cmd' => $task_cmd]); }
/** * Deletes an existing DcmdUser model. * If deletion is successful, the browser will be redirected to the 'index' page. * @param integer $id * @return mixed */ public function actionDelete($id) { if (Yii::$app->user->getIdentity()->admin != 1 || Yii::$app->user->getIdentity()->sa != 1) { Yii::$app->getSession()->setFlash('success', NULL); Yii::$app->getSession()->setFlash('error', "对不起,你没有权限!"); return $this->redirect(array('index')); } ///delete from dcmd_user_group DcmdUserGroup::deleteAll("uid=" . $id); $model = $this->findModel($id); $this->oprlog(3, "delete user:" . $model->username); $model->delete(); Yii::$app->getSession()->setFlash('success', '删除成功!'); return $this->redirect(['index']); }
public function userGroupName($gid) { $ret = DcmdUserGroup::findOne($gid); if ($ret) { return $ret['gname']; } return ""; }
/** * Finds the DcmdUserGroup model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return DcmdUserGroup the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = DcmdUserGroup::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
public function actionDeleteAll() { if (!array_key_exists('selection', Yii::$app->request->post())) { Yii::$app->getSession()->setFlash('error', '未选择服务!'); return $this->redirect(['index']); } $select = Yii::$app->request->post()['selection']; $ret_msg = ""; foreach ($select as $k => $id) { $model = $this->findModel($id); ///仅仅用户与该应用在同一个系统组才可以操作 $temp = DcmdApp::findOne($model['app_id']); $query = DcmdUserGroup::findOne(['uid' => Yii::$app->user->getId(), 'gid' => $temp['sa_gid']]); if ($query == NULL) { $ret_msg .= "没有权限删除:" . $model->ip . " "; continue; } $model->delete(); $ret_msg .= '删除成功:' . $model->ip . " "; } Yii::$app->getSession()->setFlash('success', $ret_msg); return $this->redirect(['index']); }
public function actionRun($opr_cmd_id, $ips = "") { ///判断用户权限 if (Yii::$app->user->getIdentity()->admin != 1) { $query = DcmdUserGroup::find()->andWhere(['uid' => Yii::$app->user->getId()])->asArray()->all(); $gstr = " opr_cmd_id = " . $opr_cmd_id . " and gid in (0"; foreach ($query as $item) { $gstr .= "," . $item['gid']; } $gstr .= ")"; $query = DcmdGroupCmd::find()->where($gstr)->asArray()->all(); if (count($query) == 0) { Yii::$app->getSession()->setFlash('error', '对不起, 你没有权限!'); return $this->redirect(['dcmd-opr-cmd/index']); } } $opr = $this->findModel($opr_cmd_id); $arg = $this->showTaskArg($opr_cmd_id); return $this->render('run', ['opr' => $opr, 'arg' => $arg, 'ips' => $ips]); }
function actionFinishTask() { $suc_msg = ""; $err_msg = ""; if (array_key_exists('selection', Yii::$app->request->post())) { $task_ids = Yii::$app->request->post()['selection']; $query = DcmdCenter::findOne(['master' => 1]); if ($query) { list($host, $port) = explode(':', $query["host"]); foreach ($task_ids as $tid) { $task = $this->findModel($tid); if (Yii::$app->user->getIdentity()->admin != 1 && $task->opr_uid != Yii::$app->user->getId()) { ///判断是否为同一产品组 $app = DcmdApp::findOne($task->app_id); $ug = DcmdUserGroup::findOne(['uid' => Yii::$app->user->getId(), 'gid' => $app['svr_gid']]); if ($ug == NULL) { $err_msg .= $task->task_name . ": 没有权限<br>"; continue; } } $reply = execTaskCmd($host, $port, $tid, Yii::$app->user->getId(), 5); if ($reply->getState() == 0) { $suc_msg .= $task->task_name . ": 完成成功<br>"; } else { $err_msg .= $task->task_name . ": 完成失败 " . $reply->getErr() . "<br>"; } } } else { $err_msg = "无法获取Center!"; } } if ($suc_msg != "") { Yii::$app->getSession()->setFlash('success', $suc_msg); } if ($err_msg != "") { Yii::$app->getSession()->setFlash('error', $err_msg); } $this->redirect(array('index')); }
/** * Deletes an existing DcmdGroup model. * If deletion is successful, the browser will be redirected to the 'index' page. * @param integer $id * @return mixed */ public function actionDelete($id) { /*$node = DcmdUserGroup::find()->where(['gid' => $id])->one(); if($node) { Yii::$app->getSession()->setFlash('error', '用户组内有用户,不可删除!'); }else { $this->findModel($id)->delete(); Yii::$app->getSession()->setFlash('success', '删除成功!'); }*/ if (Yii::$app->user->getIdentity()->admin != 1 || Yii::$app->user->getIdentity()->sa != 1) { Yii::$app->getSession()->setFlash('success', NULL); Yii::$app->getSession()->setFlash('error', "Sorry, You don't have priority!"); return $this->redirect(array('index')); } DcmdUserGroup::deleteAll("gid=" . $id); DcmdGroupCmd::deleteAll('gid=' . $id); DcmdGroupRepeatCmd::deleteAll('gid=' . $id); $model = $this->findModel($id); $this->oprlog(3, "delete group:" . $model->gname); $model->delete(); Yii::$app->getSession()->setFlash('success', '删除成功!'); return $this->redirect(['index']); }