chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore - 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
@@ -0,0 +1,220 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Text;
|
||||
using WebLib;
|
||||
|
||||
namespace Education
|
||||
{
|
||||
/// <summary>
|
||||
/// 取得權限設定
|
||||
/// </summary>
|
||||
public class MWEB: DAC
|
||||
{
|
||||
public MWEB()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 檢查目前登入的員工是否有某程式的權限
|
||||
/// </summary>
|
||||
/// <param name="programId">程式編號</param>
|
||||
/// <param name="rightName">權限名稱</param>
|
||||
/// <param name="employeeId">員工編號</param>
|
||||
/// <returns></returns>
|
||||
public bool CheckRight(string programId, WRightName rightName, string employeeId)
|
||||
{
|
||||
if (programId == null)
|
||||
programId = "NO PROGRAM ID";
|
||||
if (employeeId == null)
|
||||
employeeId = "NOBODY";
|
||||
|
||||
// 取得員工權限
|
||||
string right1 = BWCPE_GetRight(programId, employeeId, rightName);
|
||||
|
||||
// 取得這個員工隸屬的群組
|
||||
string[] bpglps = BWEH_GetBpglpListByBpeno(employeeId);
|
||||
|
||||
// 取得各群組權限
|
||||
string[] right2 = new string[bpglps.Length];
|
||||
for (int i = 0; i < right2.Length; i++)
|
||||
{
|
||||
right2[i] = BWCPG_GetRight(programId, bpglps[i], rightName);
|
||||
}
|
||||
|
||||
// 綜合判斷權限
|
||||
string right = "";
|
||||
|
||||
if (right1 != "")
|
||||
right = right1;
|
||||
|
||||
if (right != "Y")
|
||||
for (int i = 0; i < right2.Length; i++)
|
||||
{
|
||||
if (right2[i] != "")
|
||||
{
|
||||
if (right != "Y" && right2[i] == "Y")
|
||||
right = "Y";
|
||||
else if (right != "Y" && right2[i] == "N")
|
||||
right = "N";
|
||||
}
|
||||
}
|
||||
return right == "Y";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取員工權限
|
||||
/// </summary>
|
||||
/// <param name="rightId">權限編號</param>
|
||||
/// <param name="employId">員工編號</param>
|
||||
/// <param name="functionName">功能名稱</param>
|
||||
/// <returns></returns>
|
||||
private string BWCPE_GetRight(string rightId, string employId, WRightName functionName)
|
||||
{
|
||||
string funcName = "";
|
||||
switch (functionName)
|
||||
{
|
||||
case WRightName.Execute:
|
||||
funcName = "BPRT1";
|
||||
break;
|
||||
case WRightName.Insert:
|
||||
funcName = "BPRTI";
|
||||
break;
|
||||
case WRightName.Update:
|
||||
funcName = "BPRTM";
|
||||
break;
|
||||
case WRightName.Delete:
|
||||
funcName = "BPRTD";
|
||||
break;
|
||||
case WRightName.Search:
|
||||
funcName = "BPRTF";
|
||||
break;
|
||||
case WRightName.Print:
|
||||
funcName = "BPRTP";
|
||||
break;
|
||||
}
|
||||
|
||||
DbCommand cmd = NewCommand();
|
||||
cmd.CommandText = @"SELECT BPRT1, BPRTI, BPRTM, BPRTD, BPRTF, BPRTP FROM BWCPE WHERE BPPRG=@BPPRG AND BPENO=@BPENO";
|
||||
|
||||
AddParam(cmd, "BPPRG", rightId);
|
||||
AddParam(cmd, "BPENO", employId);
|
||||
|
||||
DataTable data = Select(cmd);
|
||||
if (data.Rows.Count != 0)
|
||||
{
|
||||
return data.Rows[0][funcName].ToString();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取員工所屬群組
|
||||
/// </summary>
|
||||
/// <param name="employeeId"></param>
|
||||
/// <returns></returns>
|
||||
private string[] BWEH_GetBpglpListByBpeno(string employeeId)
|
||||
{
|
||||
DbCommand cmd = NewCommand();
|
||||
cmd.CommandText = @"SELECT E.BPGLP AS BPGLP
|
||||
FROM BWEG E, BWEH G
|
||||
WHERE E.BPGLP=G.BPGLP AND G.BPENO=@BPENO
|
||||
ORDER BY E.BPGLP ";
|
||||
AddParam(cmd, "BPENO", employeeId);
|
||||
|
||||
DataTable inGroup = Select(cmd);
|
||||
if (inGroup.Rows.Count == 0)
|
||||
return new string[0];
|
||||
else
|
||||
{
|
||||
string[] result = new string[inGroup.Rows.Count];
|
||||
for (int i = 0; i < inGroup.Rows.Count; i++)
|
||||
{
|
||||
result[i] = inGroup.Rows[i][0].ToString();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取群組權限
|
||||
/// </summary>
|
||||
/// <param name="rightId">權限編號</param>
|
||||
/// <param name="groupId">群組編號</param>
|
||||
/// <param name="functionName">功能名稱</param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
private string BWCPG_GetRight(string rightId, string groupId, WRightName functionName)
|
||||
{
|
||||
string funcName = "";
|
||||
switch (functionName)
|
||||
{
|
||||
case WRightName.Execute:
|
||||
funcName = "BPRT1";
|
||||
break;
|
||||
case WRightName.Insert:
|
||||
funcName = "BPRTI";
|
||||
break;
|
||||
case WRightName.Update:
|
||||
funcName = "BPRTM";
|
||||
break;
|
||||
case WRightName.Delete:
|
||||
funcName = "BPRTD";
|
||||
break;
|
||||
case WRightName.Search:
|
||||
funcName = "BPRTF";
|
||||
break;
|
||||
case WRightName.Print:
|
||||
funcName = "BPRTP";
|
||||
break;
|
||||
}
|
||||
|
||||
DbCommand cmd = NewCommand();
|
||||
cmd.CommandText = @"SELECT BPRT1, BPRTI, BPRTM, BPRTD, BPRTF, BPRTP FROM BWCPG WHERE BPPRG=@BPPRG AND BPGLP=@BPGLP";
|
||||
|
||||
AddParam(cmd, "BPPRG", rightId);
|
||||
AddParam(cmd, "BPGLP", groupId);
|
||||
|
||||
DataTable data = Select(cmd);
|
||||
if (data.Rows.Count != 0)
|
||||
{
|
||||
return data.Rows[0][funcName].ToString();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public enum WRightName
|
||||
{
|
||||
/// <summary>
|
||||
/// 主檔
|
||||
/// </summary>
|
||||
Execute,
|
||||
/// <summary>
|
||||
/// 新增
|
||||
/// </summary>
|
||||
Insert,
|
||||
/// <summary>
|
||||
/// 更正
|
||||
/// </summary>
|
||||
Update,
|
||||
/// <summary>
|
||||
/// 刪除
|
||||
/// </summary>
|
||||
Delete,
|
||||
/// <summary>
|
||||
/// 查詢
|
||||
/// </summary>
|
||||
Search,
|
||||
/// <summary>
|
||||
/// 印表
|
||||
/// </summary>
|
||||
Print
|
||||
}
|
||||
|
||||
public class ProgramID
|
||||
{
|
||||
public const string 匯出基本資料 = "TR_EXPORT";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user