public bool _CheckPerHARDDISK(RES_PERMISSION_TYPE per_type, long HD_ID) { if (this.IsPermission == false) return true; if (HD_ID <= 0) return false; string storeName = ""; switch (per_type) { case RES_PERMISSION_TYPE.CREATE: storeName = "CHECK_HARDDISK_ISCREATE"; break; case RES_PERMISSION_TYPE.DELETE: storeName = "CHECK_HARDDISK_ISDELETE"; break; case RES_PERMISSION_TYPE.READ: storeName = "CHECK_HARDDISK_ISREAD"; break; case RES_PERMISSION_TYPE.UPDATE: storeName = "CHECK_HARDDISK_ISUPDATE"; break; default: storeName = "CHECK_HARDDISK_ISCREATE"; break; } string sql = string.Format(@"select is_per from {0}({1},{2})", storeName, FrameworkParams.currentUser.employee_id, HD_ID); FWDBService db = HelpDB.getDBService(); DbCommand cmd = db.GetSQLStringCommand(sql); object isPer = db.ExecuteScalar(cmd); if (isPer != null) return isPer.ToString() == "Y"; return false; }
/// <summary> /// Trả về chuỗi danh sách tài nguyên theo ID mà người dùng chỉ định có quyền. /// </summary> /// <param name="UserID">ID người dùng</param> /// <param name="per_type">Loại quyền</param> /// <returns></returns> public string _getPermissionResStrIDs(long Employee_ID, RES_PERMISSION_TYPE per_type) { try { if (this.DMTableName_Res == "") { throw new Exception("Hàm này chỉ dành cho phân quyền có chứa tài nguyên!"); } string deparmentIDs = this.GetDepartmentIDs(Employee_ID); string sql = ""; if (_HasResGroup) { sql = string.Format(@" select list(resource_id,',') from (select id resource_id from {0} res where res.{1} in( select per.resource_id from per_resource per where per.resource_type={2} and per.is_group='Y' and per.{3}='Y' and (per.employee_id= {4} or per.department_id in ({5}))) union select per.resource_id from per_resource per where per.resource_type={2} and per.is_group='N' and per.{3}='Y' and (per.employee_id= {4} or per.department_id in ({5})))", this._DMTableName_Res, this._RefFieldNameDM_Res_ResGroup, this._Resource_Type_ID, GetFieldPermission(per_type), Employee_ID, deparmentIDs ); } else { sql = string.Format(@"select list(distinct per.resource_id,',') from per_resource per where per.resource_type={0} and per.is_group='N' and per.{1}='Y' and (per.employee_id= {2} or per.department_id in ({3}))", _Resource_Type_ID, GetFieldPermission(per_type), Employee_ID, deparmentIDs); } FWDBService dbRes = HelpDB.getDBService(); DbCommand cmdRes = dbRes.GetSQLStringCommand(sql); object resIDs = dbRes.ExecuteScalar(cmdRes); if (resIDs != null) return resIDs.ToString(); return ""; } catch { return ""; } }
/// <summary> /// Trả về chuỗi danh sách tài nguyên theo ID mà người dùng hiện hành có quyền. /// </summary> /// <param name="per_type">Loại quyền</param> /// <returns></returns> public string _getPermissionResStrIDs(RES_PERMISSION_TYPE per_type) { switch (per_type) { case RES_PERMISSION_TYPE.CREATE: return _PerRes_CREATE_StrIds; case RES_PERMISSION_TYPE.READ: return _PerRes_READ_StrIds; case RES_PERMISSION_TYPE.UPDATE: return _PerRes_UPDATE_StrIds; case RES_PERMISSION_TYPE.DELETE: return _PerRes_DELETE_StrIds; default: return _PerRes_READ_StrIds; } }
/// <summary> /// Trả về danh sách tài nguyên theo ID mà người dùng chỉ định có quyền. /// </summary> /// <param name="UserID">ID người dùng</param> /// <param name="per_type">Loại quyền</param> /// <returns></returns> public long[] _getPermissionResIDs(long Employee_ID, RES_PERMISSION_TYPE per_type) { try { string strIds = _getPermissionResStrIDs(Employee_ID, per_type); if (strIds == "") return null; return Array.ConvertAll<string, long>(strIds.Split(','), HelpNumber.ParseInt64); } catch { return null; } }
/// <summary> /// Trả về chuỗi danh sách nhóm tài nguyên theo ID mà người dùng chỉ định có quyền. /// </summary> /// <param name="UserID">ID người dùng</param> /// <param name="per_type">Loại quyền</param> /// <returns></returns> public string _getPermissionResGroupStrIDs(long Employee_ID, RES_PERMISSION_TYPE per_type) { if (_HasResGroup == false) throw new Exception("Hàm này chỉ dành cho phân quyền dạng nhóm tài nguyên và tài nguyên"); try { string deparmentIDs = this.GetDepartmentIDs(Employee_ID); string sql = string.Format(@"select list(distinct per.resource_id,',') from per_resource per where per.resource_type={0} and per.is_group='Y' and per.{1}='Y' and (per.employee_id= {2} or per.department_id in ({3}))", _Resource_Type_ID, GetFieldPermission(per_type), Employee_ID, deparmentIDs); FWDBService dbResGroup = HelpDB.getDBService(); DbCommand cmdResGroup = dbResGroup.GetSQLStringCommand(sql); object resGroupIDs = dbResGroup.ExecuteScalar(cmdResGroup); if (resGroupIDs != null) return resGroupIDs.ToString(); return ""; } catch { return ""; } }
/// <summary> /// Trả về chuỗi danh sách nhóm tài nguyên theo ID mà người dùng hiện hành có quyền. /// </summary> /// <param name="per_type">Loại quyền</param> /// <returns></returns> public string _getPermissionResGroupStrIDs(RES_PERMISSION_TYPE per_type) { if (_HasResGroup == false) throw new Exception("Hàm này chỉ dành cho phân quyền dạng nhóm tài nguyên và tài nguyên"); switch (per_type) { case RES_PERMISSION_TYPE.CREATE: return _PerResGroup_CREATE_StrIds; case RES_PERMISSION_TYPE.READ: return _PerResGroup_READ_StrIds; case RES_PERMISSION_TYPE.UPDATE: return _PerResGroup_UPDATE_StrIds; case RES_PERMISSION_TYPE.DELETE: return _PerResGroup_DELETE_StrIds; default: return _PerResGroup_READ_StrIds; } }
/// <summary> /// Trả về danh sách nhóm tài nguyên theo ID mà người dùng chỉ định có quyền. /// </summary> /// <param name="UserID">ID người dùng</param> /// <param name="per_type">Loại quyền</param> /// <returns></returns> public long[] _getPermissionResGroupIDs(long Employee_ID, RES_PERMISSION_TYPE per_type) { if (_HasResGroup == false) throw new Exception("Hàm này chỉ dành cho phân quyền dạng nhóm tài nguyên và tài nguyên"); try { string strIds = _getPermissionResGroupStrIDs(Employee_ID, per_type); if (strIds == "") return null; return Array.ConvertAll<string, long>(strIds.Split(','), HelpNumber.ParseInt64); } catch { return null; } }
/// <summary> /// Kiểm tra người dùng chỉ định có quyền trên 1 nhóm tài nguyên cụ thể hay không. /// </summary> /// <param name="UserID">ID người dùng</param> /// <param name="ResGroupID">ID nhóm tài nguyên</param> /// <param name="per_type">Loại quyền</param> /// <returns></returns> public bool _checkPermissionResGroup(long Employee_ID, long ResGroupID, RES_PERMISSION_TYPE per_type) { if (_HasResGroup == false) throw new Exception("Hàm này chỉ dành cho phân quyền dạng nhóm tài nguyên và tài nguyên"); return this._checkPermissionResGroup(Employee_ID, ResGroupID, null, per_type); }
/// <summary> /// Kiểm tra người dùng hiện hành có quyền trên 1 nhóm tài nguyên cụ thể hay không. /// </summary> /// <param name="ResGroupID">ID nhóm tài nguyên</param> /// <param name="per_type">Loại quyền</param> /// <returns></returns> public bool _checkPermissionResGroup(long ResGroupID, RES_PERMISSION_TYPE per_type) { if (_HasResGroup == false) throw new Exception("Hàm này chỉ dành cho phân quyền dạng nhóm tài nguyên và tài nguyên"); if (isPermission == false) return true; switch (per_type) { case RES_PERMISSION_TYPE.CREATE: return ExistLong(this._PerResGroup_CREATE_Ids, ResGroupID); case RES_PERMISSION_TYPE.DELETE: return ExistLong(this._PerResGroup_DELETE_Ids, ResGroupID); case RES_PERMISSION_TYPE.READ: return ExistLong(this._PerResGroup_READ_Ids, ResGroupID); case RES_PERMISSION_TYPE.UPDATE: return ExistLong(this._PerResGroup_UPDATE_Ids, ResGroupID); } return false; }
/// <summary> /// Kiểm tra người dùng chỉ định có quyền trên 1 tài nguyên cụ thể hay không. /// </summary> /// <param name="UserID">ID người dùng</param> /// <param name="ResID">ID tài nguyên</param> /// <param name="per_type">Loại quyền</param> /// <returns></returns> public bool _checkPermissionRes(long Employee_ID, long ResID, RES_PERMISSION_TYPE per_type) { try { if (this.DMTableName_Res == "") { throw new Exception("Hàm này chỉ dành cho phân quyền có chứa tài nguyên!"); } string deparmentIDs = this.GetDepartmentIDs(Employee_ID); string sql = string.Format(@"select per.id from per_resource per where per.resource_type={0} and per.resource_id={1} and per.is_group='N' and per.{2}='Y' and (per.employee_id= {3} or per.department_id in ({4}))", this._Resource_Type_ID, ResID, GetFieldPermission(per_type), Employee_ID, deparmentIDs); DataSet ds = HelpDB.getDBService().LoadDataSet(sql); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) return true; else if (_HasResGroup && _checkPermissionResGroup(Employee_ID, GetResGroupID(ResID), deparmentIDs, per_type)) return true; return false; } catch { return false; } }
/// <summary> /// Kiểm tra người dùng hiện hành có quyền trên 1 tài nguyên cụ thể hay không. /// </summary> /// <param name="ResID">ID tài nguyên</param> /// <param name="per_type">Loại quyền</param> /// <returns></returns> public bool _checkPermissionRes(long ResID, RES_PERMISSION_TYPE per_type) { if (isPermission == false) return true; switch (per_type) { case RES_PERMISSION_TYPE.CREATE: return ExistLong(this._PerRes_CREATE_Ids, ResID); case RES_PERMISSION_TYPE.DELETE: return ExistLong(this._PerRes_DELETE_Ids, ResID); case RES_PERMISSION_TYPE.READ: return ExistLong(this._PerRes_READ_Ids, ResID); case RES_PERMISSION_TYPE.UPDATE: return ExistLong(this._PerRes_UPDATE_Ids, ResID); } return false; }
private string GetFieldPermission(RES_PERMISSION_TYPE per_type) { switch (per_type) { case RES_PERMISSION_TYPE.CREATE: return "ISCREATE_BIT"; case RES_PERMISSION_TYPE.READ: return "ISREAD_BIT"; case RES_PERMISSION_TYPE.UPDATE: return "ISUPDATE_BIT"; case RES_PERMISSION_TYPE.DELETE: return "ISDELETE_BIT"; default: return "ISREAD_BIT"; } }
/// <summary> /// Kiểm tra người dùng chỉ định có quyền trên 1 nhóm tài nguyên cụ thể hay không. /// </summary> /// <param name="UserID">ID người dùng</param> /// <param name="ResGroupID">ID nhóm tài nguyên</param> /// <param name="per_type">Loại quyền</param> /// <returns></returns> public static bool CheckPermissionResGroup(long ResourceTypeID, long Employee_ID, long ResGroupID, RES_PERMISSION_TYPE per_type) { DataPermission data = GetDataPermission(ResourceTypeID); return data._checkPermissionResGroup(Employee_ID, ResGroupID, per_type); }
/// <summary> /// Trả về chuỗi danh sách tài nguyên theo ID mà người dùng chỉ định có quyền. /// </summary> /// <param name="UserID">ID người dùng</param> /// <param name="per_type">Loại quyền</param> /// <returns></returns> public string GetPermissionResStrIDs(long ResourceTypeID, long Employee_ID, RES_PERMISSION_TYPE per_type) { DataPermission data = GetDataPermission(ResourceTypeID); return data._getPermissionResStrIDs(Employee_ID, per_type); }
/// <summary> /// Trả về danh sách tài nguyên theo ID mà người dùng hiện hành có quyền. /// </summary> /// <param name="per_type">Loại quyền</param> /// <returns></returns> public static long[] GetPermissionResIDs(long ResourceTypeID, RES_PERMISSION_TYPE per_type) { DataPermission data = GetDataPermission(ResourceTypeID); return data._getPermissionResIDs(per_type); }