/** * Manages all models. */ public function indexAction() { if ($_SERVER['REQUEST_METHOD'] == 'POST') { //保存修改 if (!is_array($_POST['Purview']['purview_name'])) { $_POST['Purview']['purview_name'] = array(); } foreach ($_POST['Purview']['purview_name'] as $_k => $_v) { $flag = $this->db->update('{{purview}}', array('purview_name' => $_v, 'identify' => $_POST['Purview']['identify'][$_k], 'purview_rank' => $_POST['Purview']['purview_rank'][$_k]), 'purview_id=:purview_id', array('purview_id' => $_k)); if ($flag) { $this->db->update('{{purview}}', array('lasttime' => $_SERVER['REQUEST_TIME']), 'purview_id=:purview_id', array('purview_id' => $_k)); //记录操作日志 $message = '{user_name}修改了权限{purview_name}'; $data = array('purview_name' => $_v, 'data' => array('old' => PurviewModel::getPurviewById($_k), 'new' => $_POST)); UserLogsModel::inst()->add('Admin/Purview', $_k, 'Modify', 'success', $message, $data); } } //添加新记录 if (!is_array($_POST['Purview']['new_purview_name'])) { $_POST['Purview']['new_purview_name'] = array(); } foreach ($_POST['Purview']['new_purview_name'] as $_k => $_v) { if (is_array($_v)) { foreach ($_v as $__k => $__v) { $flag = $this->db->insert('{{purview}}', array('purview_id' => '', 'parent_id' => $_k, 'purview_name' => $__v, 'identify' => $_POST['Purview']['new_identify'][$_k][$__k], 'purview_rank' => $_POST['Purview']['new_purview_rank'][$_k][$__k], 'status' => PurviewModel::STAT_STATUS_NORMAL, 'lasttime' => $_SERVER['REQUEST_TIME'], 'dateline' => $_SERVER['REQUEST_TIME'])); if ($flag) { //记录操作日志 $message = '{user_name}添加了权限{purview_name}'; $data = array('purview_name' => $__v, 'data' => $_POST['Purview']); UserLogsModel::inst()->add('Admin/Purview', $this->db->getLastInsertID(), 'Insert', 'success', $message, $data); } } } else { $flag = $this->db->insert('{{purview}}', array('purview_id' => '', 'parent_id' => 0, 'purview_name' => $_v, 'identify' => $_POST['Purview']['new_identify'][$_k], 'purview_rank' => $_POST['Purview']['new_purview_rank'][$_k], 'status' => PurviewModel::STAT_STATUS_NORMAL, 'lasttime' => $_SERVER['REQUEST_TIME'], 'dateline' => $_SERVER['REQUEST_TIME'])); if ($flag) { //记录操作日志 $message = '{user_name}添加了权限{purview_name}'; $data = array('purview_name' => $_v, 'data' => $_POST); UserLogsModel::inst()->add('Admin/Purview', $this->db->getLastInsertID(), 'Insert', 'success', $message, $data); } } } PurviewModel::inst()->updateCache(); $this->redirect('/admin/purview/index'); } $this->getView()->assign(array('purviews' => PurviewModel::inst()->getPurviewList())); }
public function updateAction($id) { $user = UserModel::inst()->getUserById($id); if ($user) { $user['purviews'] = $user['purviews'] ? json_decode($user['purviews'], true) : array(); $user['purviews'] = is_array($user['purviews']) ? array($user['purviews']) : array(); } if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['Admin'])) { $administrator = $user['user_name']; $_POST['Admin']['purviews'] = isset($_POST['Admin']['purviews']) ? json_encode($_POST['Admin']['purviews']) : json_encode(array()); $password = empty($_POST['Admin']['password']) ? $user['password'] : md5(md5($_POST['Admin']['password']) . $user['salt']); $allow_groups = GroupModel::inst()->getGroupsByOwner($this->user->group_id); if ($user['user_id'] == $this->user->id) { $update_data = array('user_name' => $_POST['Admin']['user_name'], 'realname' => $_POST['Admin']['realname'], 'email' => $_POST['Admin']['email'], 'password' => $password, 'lasttime' => $_SERVER['REQUEST_TIME']); } else { $allow_groups = GroupModel::inst()->getGroupsByOwner($this->user->group_id); if ($allow_groups[$this->user->group_id]['purviews'] != 'all' && (!isset($allow_groups[$_POST['Admin']['group_id']]) || $_POST['Admin']['group_id'] == $this->user->group_id)) { $this->redirect[] = array('text' => '', 'href' => $this->forward); $this->message('您无权限在该角色组下添加新用户', self::MSG_ERROR, true); } $update_data = array('user_name' => $_POST['Admin']['user_name'], 'realname' => $_POST['Admin']['realname'], 'email' => $_POST['Admin']['email'], 'password' => $password, 'group_id' => isset($_POST['Admin']['group_id']) ? $_POST['Admin']['group_id'] : $user['group_id'], 'purviews' => isset($_POST['Admin']['purviews']) ? $_POST['Admin']['purviews'] : $user['purviews'], 'user_rank' => isset($_POST['Admin']['user_rank']) ? $_POST['Admin']['user_rank'] : $user['user_rank'], 'status' => isset($_POST['Admin']['status']) ? $_POST['Admin']['status'] : $user['status'], 'lasttime' => $_SERVER['REQUEST_TIME']); } $flag = $this->db->update('{{user}}', $update_data, 'user_id=:user_id', array(':user_id' => $id)); if ($flag) { //记录操作日志 $message = '{user_name}修改了管理员{administrator}信息'; if ($administrator != $_POST['Admin']['user_name']) { $message .= ',改名为:{new_administrator}'; } $data = array('administrator' => $administrator, 'new_administrator' => $_POST['Admin']['user_name'], 'data' => $_POST['Admin']); UserLogsModel::inst()->add('Admin/User', $id, 'Insert', 'success', $message, $data); $this->redirect[] = array('text' => '', 'href' => $this->forward); $this->message('修改管理员资料完成', self::MSG_SUCCESS, true); } } $groups = GroupModel::inst()->getGroupsByOwner($this->user->group_id); $purviews = PurviewModel::inst()->getPurviewsByOwner($this->user->group_id, $this->user->id); $this->getView()->assign(array('my_user_id' => $this->user->id, 'my_group_id' => $this->user->group_id, 'user' => $user, 'groups' => $groups, 'purviews' => $purviews)); }
/** * Updates a particular model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id the ID of the model to be updated */ public function updateAction($id) { $group = GroupModel::inst()->getGroupById($id); if ($group['is_system'] == '1') { $this->redirect[] = array('text' => '用户组列表', 'href' => $this->forward); $this->message('系统组不能被修改', self::MSG_ERROR, true); } if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['Group'])) { $allow_groups = GroupModel::inst()->getGroupsByOwner($this->user->group_id); if ($allow_groups[$this->user->group_id]['purviews'] != 'all' && !isset($allow_groups[$_POST['Group']['parent_id']])) { $this->redirect[] = array('text' => '', 'href' => $this->forward); $this->message('您无权限在该用户组下添加子用户组', self::MSG_ERROR, true); } $_POST['Group']['purviews'] = isset($_POST['Group']['purviews']) ? json_encode($_POST['Group']['purviews']) : json_encode(array()); $update_data = array('group_name' => $_POST['Group']['group_name'], 'parent_id' => $_POST['Group']['parent_id'], 'purviews' => $_POST['Group']['purviews'], 'group_rank' => $_POST['Group']['group_rank'], 'lasttime' => $_SERVER['REQUEST_TIME']); $flag = $this->db->update('{{group}}', $update_data, 'group_id=:group_id', array(':group_id' => $id)); if ($flag) { //更新缓存 GroupModel::inst()->updateCache(); //记录操作日志 $message = '{user_name}修改了用户组{group_name}'; if ($group['group_name'] != $_POST['Group']['group_name']) { $message .= ',改名为:{new_group_name}'; } $data = array('group_name' => $group['group_name'], 'new_group_name' => $_POST['Group']['group_name'], 'data' => array('old' => $group, 'new' => $_POST['Group'])); UserLogsModel::inst()->add('Admin/Group', $id, 'Modify', 'success', $message, $data); $this->redirect[] = array('text' => '', 'href' => $this->forward); $this->message('修改用户组完成', self::MSG_SUCCESS, true); } else { $this->message('修改用户组信息失败', self::MSG_ERROR, false); } } $groups = GroupModel::inst()->getGroupsByOwner($this->user->group_id); $purviews = PurviewModel::inst()->getPurviewsByOwner($this->user->group_id, $this->user->id); $this->getView()->assign(array('my_group_id' => $this->user->group_id, 'group' => $group, 'groups' => $groups, 'purviews' => $purviews)); }