2023-05-23 16:13:17 +08:00
|
|
|
|
using System;
|
|
|
|
|
using DeiNiu.wms.Data.Model;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
2024-05-21 17:28:35 +08:00
|
|
|
|
using WcfServiceAuthentication;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
|
|
|
|
namespace DeiNiu.wms.Logical
|
|
|
|
|
{
|
|
|
|
|
[Serializable]
|
|
|
|
|
public class LAuthority
|
|
|
|
|
{
|
|
|
|
|
Authority _obj;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public LAuthority()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
Initialize();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Authority GetAuthority
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return _obj;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// get all data
|
|
|
|
|
/// </summary>
|
|
|
|
|
public DataSet GetAllData()
|
|
|
|
|
{
|
|
|
|
|
return _obj.Query();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// get all data
|
|
|
|
|
/// </summary>
|
|
|
|
|
public DataSet getAllActiveData()
|
|
|
|
|
{
|
|
|
|
|
return _obj.QueryActived();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
private void leavetypeDsConstruct()
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// get a record by id
|
|
|
|
|
/// </summary>
|
|
|
|
|
public void Initialize(int id)
|
|
|
|
|
{
|
|
|
|
|
_obj = id != 0 ? new Authority(id) : new Authority();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// get a record by id 0
|
|
|
|
|
/// </summary>
|
|
|
|
|
public void Initialize()
|
|
|
|
|
{
|
|
|
|
|
Initialize(0);
|
|
|
|
|
}
|
|
|
|
|
public List<Authority> getAuthorities()
|
|
|
|
|
{
|
|
|
|
|
List<Authority> auths = new List<Authority>();
|
|
|
|
|
DataTable dt = getAllActiveData().Tables[0];
|
|
|
|
|
|
|
|
|
|
foreach (DataRow row in dt.Rows)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
int id = Convert.ToInt32(row["id"].ToString());
|
|
|
|
|
Authority ath = new Authority(id);
|
|
|
|
|
auths.Add(ath);
|
|
|
|
|
}
|
|
|
|
|
return auths;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<Authority> getAuthorities(int empId, int warehouse)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
List<Authority> auths = new List<Authority>();
|
|
|
|
|
RoleAuthority ll = new RoleAuthority();
|
|
|
|
|
|
|
|
|
|
DataTable dt = ll.GetAuthByEm(empId, warehouse);
|
|
|
|
|
|
|
|
|
|
foreach (DataRow row in dt.Rows)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
int id = Convert.ToInt32(row["id"].ToString());
|
|
|
|
|
Authority ath = new Authority(id);
|
|
|
|
|
auths.Add(ath);
|
|
|
|
|
}
|
|
|
|
|
return auths;
|
|
|
|
|
}
|
|
|
|
|
public Dictionary<String, List<Authority>> getMobileAuthorities(int empId)
|
|
|
|
|
{
|
|
|
|
|
Dictionary<String, List<Authority>> auths = new Dictionary<String, List<Authority>>();
|
|
|
|
|
|
|
|
|
|
// DataView dv = new DataView(getAllActiveData().Tables[0]);
|
|
|
|
|
DataView dv = _obj.queryCateAuths().DefaultView;
|
|
|
|
|
List<Authority> subAuths = getAuthorities(empId,-1);
|
|
|
|
|
foreach (Authority a in subAuths)
|
|
|
|
|
{
|
|
|
|
|
dv.RowFilter = "id =" + a.auth_uplevel;
|
|
|
|
|
string key;
|
|
|
|
|
foreach (DataRowView dr in dv)
|
|
|
|
|
{
|
|
|
|
|
key = dr["auth_name"].ToString();
|
|
|
|
|
if (auths.ContainsKey(key))
|
|
|
|
|
{
|
|
|
|
|
auths[key].Add(a);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
List<Authority> sa = new List<Authority>();
|
|
|
|
|
sa.Add(a);
|
|
|
|
|
auths.Add(key, sa);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return auths;
|
|
|
|
|
}
|
|
|
|
|
// public Dictionary<String, List<Authority>> getCatedAuthorities(int empId,int warehouse=-1)
|
|
|
|
|
public Dictionary<String, List<Authority>> getCatedAuthorities(int empId,int warehouse=-1)
|
|
|
|
|
{
|
|
|
|
|
Dictionary<String, List<Authority>> auths = new Dictionary<String, List<Authority>>();
|
|
|
|
|
|
|
|
|
|
// DataView dv = new DataView(getAllActiveData().Tables[0]);
|
|
|
|
|
DataView dv = _obj.queryCateAuths().DefaultView;
|
|
|
|
|
List<Authority> subAuths = getAuthorities(empId, warehouse );
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* foreach (Authority a in subAuths)
|
|
|
|
|
{
|
|
|
|
|
dv.RowFilter = "id =" + a.auth_uplevel;
|
|
|
|
|
string key;
|
|
|
|
|
foreach (DataRowView dr in dv)
|
|
|
|
|
{
|
|
|
|
|
key = dr["auth_name"].ToString();
|
|
|
|
|
if (auths.ContainsKey(key))
|
|
|
|
|
{
|
|
|
|
|
auths[key].Add(a);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
List<Authority> sa = new List<Authority>();
|
|
|
|
|
sa.Add(a);
|
|
|
|
|
auths.Add(key, sa);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
foreach (DataRowView dr in dv)
|
|
|
|
|
{
|
|
|
|
|
string formexists = dr["auth_class"].ToString();
|
|
|
|
|
string special = dr["auth_special"].ToString();
|
|
|
|
|
|
|
|
|
|
if (string.IsNullOrEmpty(formexists)
|
|
|
|
|
&& string.IsNullOrEmpty(special)
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<Authority> sa = new List<Authority>();
|
|
|
|
|
string key = dr["auth_name"].ToString();
|
|
|
|
|
auths.Add(key, sa);
|
|
|
|
|
foreach (Authority a in subAuths)
|
|
|
|
|
{
|
|
|
|
|
if (a.auth_uplevel == Convert.ToInt16(dr["id"].ToString()))
|
|
|
|
|
{
|
|
|
|
|
// string key = dr["auth_name"].ToString();
|
|
|
|
|
if (auths.ContainsKey(key))
|
|
|
|
|
{
|
|
|
|
|
auths[key].Add(a);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// List<Authority> sa = new List<Authority>();
|
|
|
|
|
// sa.Add(a);
|
|
|
|
|
// auths.Add(key, sa);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return auths;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool validUser(string userId,string passwd)
|
|
|
|
|
{
|
|
|
|
|
Employee emp = new Employee();
|
|
|
|
|
return emp.login(userId,passwd);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int validUserRole(string userId, string passwd, string role)
|
|
|
|
|
{
|
|
|
|
|
Employee emp = new Employee();
|
|
|
|
|
int id = emp.ValidUser(userId, passwd);
|
|
|
|
|
if (id > 0)
|
|
|
|
|
{
|
|
|
|
|
Dictionary<String, List<Authority>> auths = getMobileAuthorities(id);
|
|
|
|
|
|
|
|
|
|
List<string> auth = new List<string>();
|
|
|
|
|
|
|
|
|
|
if (auths.ContainsKey("ϸ<><CFB8>Ȩ<EFBFBD><C8A8>"))
|
|
|
|
|
{
|
|
|
|
|
List<Authority> portAuth = auths["ϸ<><CFB8>Ȩ<EFBFBD><C8A8>"];
|
|
|
|
|
foreach (Authority au in portAuth)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (au.auth_name == role)
|
|
|
|
|
{
|
|
|
|
|
return id;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Employee login(string account,string passwd)
|
|
|
|
|
{
|
|
|
|
|
Employee em = new Employee();
|
|
|
|
|
if (em.login(account, passwd))
|
|
|
|
|
{
|
|
|
|
|
em.em_passwd = "";
|
|
|
|
|
em.AuthForms = getAuthObjLst(em.ID, "<22>ƶ<EFBFBD><C6B6>豸");
|
|
|
|
|
em.AuthSpecials = getAuthObjLst(em.ID, "ϸ<><CFB8>Ȩ<EFBFBD><C8A8>");
|
2023-11-21 19:18:23 +08:00
|
|
|
|
|
2023-05-23 16:13:17 +08:00
|
|
|
|
}
|
2024-05-21 17:28:35 +08:00
|
|
|
|
AuthenticationInspector.checkRestrictUsers(em.ID);
|
|
|
|
|
|
2023-05-23 16:13:17 +08:00
|
|
|
|
return em;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
public List<Authority> getAuthObjLst(int userId, string type = "")
|
|
|
|
|
{
|
|
|
|
|
Dictionary<String, List<Authority>> auths = getMobileAuthorities(userId);
|
|
|
|
|
|
|
|
|
|
List<Authority> auth = new List<Authority>();
|
|
|
|
|
|
|
|
|
|
if (string.IsNullOrEmpty(type))
|
|
|
|
|
{
|
|
|
|
|
if (auths.Keys.Contains("<22>ƶ<EFBFBD><C6B6>豸"))
|
|
|
|
|
{
|
|
|
|
|
List<Authority> portAuth = auths["<22>ƶ<EFBFBD><C6B6>豸"];
|
|
|
|
|
foreach (Authority au in portAuth)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
auth.Add(au);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (auths.Keys.Contains("ϸ<><CFB8>Ȩ<EFBFBD><C8A8>"))
|
|
|
|
|
{
|
|
|
|
|
List<Authority> portAuth = auths["ϸ<><CFB8>Ȩ<EFBFBD><C8A8>"];
|
|
|
|
|
foreach (Authority au in portAuth)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
auth.Add(au);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (auths.Keys.Contains(type))
|
|
|
|
|
{
|
|
|
|
|
return auths[type];
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return auth;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|