You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
information-system/application/models/infoaccessmanage_model.php

435 lines
15 KiB
PHTML

<?php
class infoAccessmanage_model extends CI_Model
{
function __construct()
{
parent::__construct();
$this->HT = $this->load->database('INFORMATION', TRUE);
$this->HT229 = $this->load->database('HT', TRUE);
}
//获取用户结构列表
public function get_user_structure(){
$sql = "SELECT is1.is_id AS id,
is1.is_parent_id AS pId,
OPI_Name as name,
1 AS status,
OPI_Code,
iam_id,
iam_author
FROM infoaccessmanage
INNER JOIN infoStructures is1 ON iam_is_id = is1.is_id
LEFT JOIN tourmanager.dbo.OperatorInfo ON iam_author=OPI_Code
ORDER BY is1.is_level ASC,
is1.is_sort ASC,
is1.is_path ASC";
$query = $this->HT->query($sql);
$result=$query->result();
//获取作者平台用户的用户名
$author_user=$this->get_author_user_list();
$author=array();
foreach ($author_user as $v) {
$author[$v->a_id]=$v->a_name;
}
foreach ($result as $r) {
if(is_numeric($r->iam_author)) {
$r->name=$author[$r->iam_author];
}elseif (is_null($r->name)) {
$r->name=$r->iam_author;
}else{
$r->name=$r->name.'('.$r->OPI_Code.')';
}
}
return $query->result();
}
//根据用户标识iam_author获取权限
public function get_user_access($iam_author,$site_code){
$sql = "SELECT TOP 1
iam_id,
iam_author,
iam_is_id,
iao_id,
iao_read,
iao_write,
iao_role,
iao_site
FROM infoaccessmanage
LEFT JOIN infoaccessownsite ON iao_author=iam_author AND iao_site=?
WHERE iam_author='$iam_author'";
$query = $this->HT->query($sql, array($site_code));
$result = $query->result();
if (!empty($result)) {
$result=$result[0];
}
return $result;
}
//根据用户的树结构ID获取用户权限数据
public function get_user_by_isid($iam_is_id,$site_code){
$sql = "SELECT TOP 1
iam_id,
iam_author as iao_author,
iam_is_id,
iao_id,
iao_read,
iao_write,
iao_role,
iao_site,
iao_other
FROM infoaccessmanage
LEFT JOIN infoaccessownsite ON iao_author=iam_author AND iao_site=?
WHERE iam_is_id=?";
$query = $this->HT->query($sql, array($site_code,$iam_is_id));
$result = $query->result();
if (!empty($result)) {
$result=$result[0];
}
return $result;
}
//获取用户拥有权限的站点
public function get_user_site_list($iao_author){
$sql = "SELECT iao_site
FROM infoaccessownsite
WHERE iao_author='$iao_author'";
$query = $this->HT->query($sql);
$result = $query->result();
$sites='';
if (!empty($result)) {
foreach ($result as $s) {
$sites.=$s->iao_site.',';
}
}
return $sites;
}
public function get_user_site_list_by_isid($iam_is_id){
$sql = "SELECT iao_site
FROM infoaccessownsite
INNER JOIN infoaccessmanage ON iam_author=iao_author AND iam_is_id=?";
$query = $this->HT->query($sql, array($iam_is_id));
$result = $query->result();
$sites='';
if (!empty($result)) {
foreach ($result as $s) {
$sites.=$s->iao_site.',';
}
}
return $sites;
}
//删除某个用户
public function delete_user($iam_id){
$sql = "DELETE FROM infoaccessmanage WHERE iam_id=?";
$result=$this->HT->query($sql, array($iam_id));
return $result;
}
//给用户添加可以访问的站点
public function add_site($iao_author,$iao_site){
$sql = "INSERT INTO infoaccessownsite (
iao_author,
iao_site
) VALUES (?,?)";
$query = $this->HT->query($sql, array($iao_author,$iao_site));
return $this->HT->last_id('infoaccessownsite');
}
//删除用户在某一站点的权限
public function delete_site($author,$site=''){
$map="";
if ($site!='') {
$map=" AND iao_site='$site'";
}
$set_sql = "DELETE FROM infoaccessownsite WHERE iao_author=? $map";
$result=$this->HT->query($set_sql, array($author));
return $result;
}
//更新用户在某一站点的权限
public function update_site($iao_author,$iao_site,$iao_other){
$sql = "UPDATE infoaccessownsite
SET iao_other=?
WHERE iao_author = ? AND iao_site = ?";
$result = $this->HT->query($sql, array($iao_other,$iao_author,$iao_site));
return $sql;
}
//添加用户
public function add_access($iam_author,$iam_is_id){
$sql = "INSERT INTO infoaccessmanage (
iam_author,
iam_is_id
) VALUES (?,?)";
$query = $this->HT->query($sql, array($iam_author,$iam_is_id));
return $this->HT->last_id('infoaccessmanage');
}
//编辑用户权限
public function update_access($iam_id,$iam_author){
$set_sql = "UPDATE infoaccessmanage
SET iam_author=?
WHERE iam_id = ?";
$result=$this->HT->query($set_sql, array($iam_author,$iam_id));
return $result;
}
//编辑用户可以操作的信息节点
public function update_ownsite($iao_read,$iao_write,$iao_author,$iao_site,$iao_role){
$set_sql = "UPDATE infoaccessownsite
SET iao_read=?,
iao_write=?,
iao_role=?
WHERE iao_author = ? AND iao_site=?";
$result=$this->HT->query($set_sql, array($iao_read,$iao_write,$iao_role,$iao_author,$iao_site));
return $result;
}
//获取角色结构列表
public function get_role_structure(){
$sql = "SELECT is1.is_id AS id,
is1.is_parent_id AS pId,
iar_name as name,
1 AS status,
iar_id,
is1.is_level
FROM infoaccessrole
INNER JOIN infoStructures is1 ON iar_is_id = is1.is_id
ORDER BY is1.is_level ASC,
is1.is_sort ASC,
is1.is_path ASC";
$query = $this->HT->query($sql);
return $query->result();
}
//添加角色
public function add_role($iar_name,$iar_is_id){
$sql = "INSERT INTO infoaccessrole (
iar_name,
iar_is_id
) VALUES (?,?)";
$query = $this->HT->query($sql, array($iar_name,$iar_is_id));
return $this->HT->last_id('infoaccessrole');
}
//更新角色名称
public function update_role($iar_id,$iar_name){
$set_sql = "UPDATE infoaccessrole
SET iar_name = ?
WHERE iar_id = ?";
$result=$this->HT->query($set_sql, array($iar_name,$iar_id));
return $result;
}
//获取角色列表
public function get_role($ian_iar_id){
$sql = "SELECT iar_id,
iar_name,
is1.is_level
FROM infoaccessrole
INNER JOIN infoStructures is1 ON iar_is_id = is1.is_id
WHERE iar_id IN ($ian_iar_id)";
$query = $this->HT->query($sql);
return $query->result();
}
//根据角色的树结构ID获取角色拥有的权限节点
public function get_role_by_isid($iar_is_id){
$sql = "SELECT iar_id,iar_name,ian_iaa_id,iar_is_id
FROM infoaccessrole
LEFT JOIN infoaccessnode
ON iar_id=ian_iar_id
WHERE iar_is_id=?";
$query = $this->HT->query($sql,array($iar_is_id));
$result=$query->result();
if(!empty($result))
{
$result=$result[0];
}
return $result;
}
//删除角色,并删除与之相关的“角色-权限节点”关系
public function delete_role($iar_id){
$sql = "DELETE FROM infoaccessrole WHERE iar_id = ?";
$query=$this->HT->query($sql, array($iar_id));
if ($query) {
$node_sql = "DELETE FROM infoaccessnode WHERE ian_iar_id = ?";
$query=$this->HT->query($node_sql, array($iar_id));
}
return $query;
}
//添加新的 “角色-权限节点”关系
public function add_node($ian_iar_id,$ian_iaa_ids){
$sql = "INSERT INTO infoaccessnode (
ian_iar_id,
ian_iaa_id
) VALUES (?,?)";
$query = $this->HT->query($sql, array($ian_iar_id,$ian_iaa_ids));
return $this->HT->last_id('infoaccessnode');
}
//更新“角色-权限节点”关系
public function update_node($ian_iar_id,$ian_iaa_id){
$set_sql = "UPDATE infoaccessnode
SET ian_iaa_id = ?
WHERE ian_iar_id = ?";
$result=$this->HT->query($set_sql, array($ian_iaa_id,$ian_iar_id));
return $result;
}
//获取某个角色拥有的权限节点ID
public function get_node_list($ian_iar_id){
$set_sql = "SELECT ian_iaa_id
FROM infoaccessnode
WHERE ian_iar_id IN ($ian_iar_id)";
$query = $this->HT->query($set_sql);
return $query->result();
}
//获取权限节点结构列表
public function get_structure_list(){
$sql = "SELECT is1.is_id AS id,
is1.is_parent_id AS pId,
iaa_title as name,
1 AS status,
iaa_id
FROM infoaccessaction
INNER JOIN infoStructures is1 ON iaa_is_id = is1.is_id
ORDER BY is1.is_level ASC,
is1.is_sort ASC,
is1.is_path ASC";
$query = $this->HT->query($sql);
return $query->result();
}
//根据权限节点树结构id数组获取其子节点数据
public function get_sub_action_by_isids($iaa_is_id_arr){
$map='1=2';
foreach ($iaa_is_id_arr as $v) {
$map.=' or '."is_path like '%$v%'";
}
$sql = "SELECT iaa_id
FROM infoaccessaction
INNER JOIN infoStructures ON iaa_is_id=is_id
WHERE $map";
$query = $this->HT->query($sql);
$result = $query->result();
return $result;
}
//根据树结构ID获取权限节点内容
public function get_action_bytreeid($treeid){
$sql = "SELECT TOP 1
iaa_title,
iaa_controller,
iaa_action,
iaa_is_id,
iaa_id
FROM infoaccessaction
WHERE iaa_is_id=?";
$query = $this->HT->query($sql, array($treeid));
$result = $query->result();
if (!empty($result)) {
$result=$result[0];
}
return $result;
}
//根据权限节点id字符串获取权限节点内容
public function get_role_action_list($iaa_ids){
$sql = "SELECT iaa_id,
iaa_title,
iaa_controller,
iaa_action,
iaa_is_id as is_id
FROM infoaccessaction
WHERE iaa_id IN ($iaa_ids)";
$query = $this->HT->query($sql);
$result = $query->result();
return $result;
}
//获取所有的权限节点列表
public function get_action_list()
{
$sql = "SELECT iaa_id,
iaa_title,
iaa_controller,
iaa_action,
iaa_is_id
FROM infoaccessaction";
$query = $this->HT->query($sql);
$result = $query->result();
return $result;
}
//添加权限节点
public function add_action($iam_author,$iam_is_id){
$sql = "INSERT INTO infoaccessaction (
iaa_title,
iaa_is_id
) VALUES (?,?)";
$query = $this->HT->query($sql, array($iam_author,$iam_is_id));
return $this->HT->last_id('infoaccessaction');
}
//更新权限节点
public function update_action($iaa_title,$iaa_controller,$iaa_action,$iaa_id){
$set_sql = "UPDATE infoaccessaction
SET iaa_title=?,
iaa_controller=?,
iaa_action=?
WHERE iaa_id = ?";
$result=$this->HT->query($set_sql, array($iaa_title,$iaa_controller,$iaa_action,$iaa_id));
return $result;
}
//删除某个权限节点
public function delete_action($iaa_id){
$sql = "DELETE FROM infoaccessaction WHERE iaa_id = ?";
$query=$this->HT->query($sql, array($iaa_id));
return $query;
}
//获取某个站点的作者
public function get_site_author($site){
$sql="select iao_author from infoaccessownsite where iao_site=?";
$query = $this->HT->query($sql,array($site));
return $query->result();
}
//获取汉特用户列表
public function get_ht_user_list($undefined=false){
$undefined_sql='';
if ($undefined) {
$undefined_sql="AND OPI_Code NOT IN (SELECT iam_author FROM infoaccessmanage)";
}
$sql = "SELECT * FROM tourmanager.dbo.OperatorInfo WHERE DeleteFlag=0 $undefined_sql";
$query = $this->HT->query($sql);
return $query->result();
}
//获取作者平台用户列表
public function get_author_user_list($undefined=false){
$undefined_sql='WHERE a_active=1';
if ($undefined) {
//已经添加的用户id不知道为啥直接嵌套报错
$mapsql="SELECT iam_author FROM infoaccessmanage where ISNUMERIC(iam_author)=1";
$map_query = $this->HT->query($mapsql);
$authors='';
foreach ($map_query->result() as $v) {
if(trim($v->iam_author)!='')$authors.=$v->iam_author.',';
}
$authors=$authors.'0';
$undefined_sql.=" AND a_id NOT IN ($authors)";
}
3 years ago
$sql = "SELECT * FROM tourmanager.dbo.infoAuthors $undefined_sql";
$query = $this->HT->query($sql);
return $query->result();
}
}