private string GetFieldPermission(PERMISSION_RES per_type) { switch (per_type) { case PERMISSION_RES.CREATE: return "ISCREATE_BIT"; case PERMISSION_RES.READ: return "ISREAD_BIT"; case PERMISSION_RES.UPDATE: return "ISUPDATE_BIT"; case PERMISSION_RES.DELETE: return "ISDELETE_BIT"; default: return "ISREAD_BIT"; } }
/// <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 UserID, PERMISSION_RES per_type) { try { DataSet ds = new DataSet(); ds = HelpDB.getDatabase().LoadDataSet( @"select id from (select tn.id from " + this._DMTableResName + @" tn inner join " + this._PerTableResGroupName + " u_ntn on tn." + this._RefFieldDMResName + "=u_ntn." + this._RefFieldPerResGroupName + @" where " + GetFieldPermission(per_type) + @"='Y' and userid=" + UserID + @" union select u_tn." + this._RefFieldPerResName + @" as id from " + this._PerTableResName + @" u_tn where " + GetFieldPermission(per_type) + @"='Y' and userid=" + UserID + ")"); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { List<long> list = new List<long>(); foreach (DataRow row in ds.Tables[0].Rows) list.Add(HelpNumber.ParseInt64(row[0])); return list.ToArray(); } return null; } catch { return null; } }
/// <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 long[] _getPermissionResIDs(PERMISSION_RES per_type) { switch (per_type) { case PERMISSION_RES.CREATE: return _PerRes_CREATE_Ids; case PERMISSION_RES.READ: return _PerRes_READ_Ids; case PERMISSION_RES.UPDATE: return _PerRes_UPDATE_Ids; case PERMISSION_RES.DELETE: return _PerRes_DELETE_Ids; default: return _PerRes_READ_Ids; } }
/// <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 UserID, PERMISSION_RES per_type) { try { DataSet ds = new DataSet(); ds = HelpDB.getDatabase().LoadDataSet( "select " + this._RefFieldPerResGroupName + " from " + this._PerTableResGroupName + " where userid=" + UserID + " and " + GetFieldPermission(per_type) + "='Y'"); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { List<long> list = new List<long>(); foreach (DataRow row in ds.Tables[0].Rows) list.Add(HelpNumber.ParseInt64(row[0])); return list.ToArray(); } return null; } 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 UserID, long ResGroupID, PERMISSION_RES per_type) { try { DataSet ds = new DataSet(); ds = HelpDB.getDatabase().LoadDataSet( "select * from " + this._PerTableResGroupName + " where userid=" + UserID + " and " + this._RefFieldPerResGroupName + "=" + ResGroupID + " and " + GetFieldPermission(per_type) + "='Y'"); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) 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 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, PERMISSION_RES per_type) { return _checkPermissionResGroup(FrameworkParams.currentUser.id, ResGroupID, per_type); }