public DataSet GetUserApplications(string userValue, UserValueType userValueType, RightMaskType rightMask, DelegationMaskType delegationMask) { return(SecurityCheck.GetUserApplications(userValue, userValueType, rightMask, delegationMask)); }
public bool IsUserInAllRoles(string userValue, string appCodeName, string roleCodeNames, UserValueType userValueType, DelegationMaskType delegationMask) { return(SecurityCheck.IsUserInAllRoles(userValue, appCodeName, roleCodeNames, userValueType, delegationMask)); }
public bool DoesUserHasAllPermissions(string userValue, string appCodeName, string funcCodeNames, UserValueType userValueType, DelegationMaskType delegationMask) { return(SecurityCheck.DoesUserHasAllPermissions(userValue, appCodeName, funcCodeNames, userValueType, delegationMask)); }
public DataSet GetUserPermissions(string userValue, string appCodeName, UserValueType userValueType, RightMaskType rightMask, DelegationMaskType delegationMask) { return(SecurityCheck.GetUserPermissions(userValue, appCodeName, userValueType, rightMask, delegationMask)); }
public DataSet GetFunctionsUsers(string orgRoot, string appCodeName, string funcCodeNames, DelegationMaskType delegationMask, SidelineMaskType sidelineMask, string extAttr) { return(SecurityCheck.GetFunctionsUsers(orgRoot, appCodeName, funcCodeNames, delegationMask, sidelineMask, extAttr)); }
public DataSet GetUserFunctionsScopes(string userValue, string appCodeName, string funcCodeNames, UserValueType userValueType, DelegationMaskType delegationMask, ScopeMaskType scopeMask) { return(SecurityCheck.GetUserFunctionsScopes(userValue, appCodeName, funcCodeNames, userValueType, delegationMask, scopeMask)); }
/// <summary> /// 查询指定部门范围下,指定应用系统中,指定角色下的所有人员 /// </summary> /// <param name="orgRoot">部门范围的全路径,空串时不做限制,多个时用逗号分隔</param> /// <param name="appCodeName">应用的英文标识</param> /// <param name="roleCodeNames">角色的英文标识,多个时用逗号分隔</param> /// <param name="delegationMask">权限委派类型</param> /// <param name="sidelineMask">人员职位类型</param> /// <param name="extAttr">要求获取的扩展属性</param> /// <returns>指定部门范围下,指定应用系统中,指定角色下的所有人员</returns> public static OguObjectCollection <IUser> GetUsersFromRoles(string orgRoot, string appCodeName, string roleCodeNames, DelegationMaskType delegationMask, SidelineMaskType sidelineMask, string extAttr) { DataSet ds = AppAdminServiceBroker.Instance.GetRolesUsers(orgRoot, appCodeName, roleCodeNames, delegationMask, SidelineMaskType.All, extAttr); var users = Common.BuildObjectsFromTable <IUser>(ds.Tables[0]); return(new OguObjectCollection <IUser>(users)); }
/// <summary> /// 得到当前人员指定功能的,相应服务范围 /// </summary> /// <example> /// <code> /// <queryUserFuncScopes app_code_name="asdf" func_code_names="ADD_OBJECT_FUNC" delegation_mask="3" scope_mask="1"/> /// </code> /// </example> protected void DoQueryUserFuncScopes() { XmlElement root = _XmlRequest.DocumentElement; string appCodeName = root.GetAttribute("app_code_name"); string funcCodeNames = root.GetAttribute("func_code_names"); string delegationMask = root.GetAttribute("delegation_mask"); string scopeMask = root.GetAttribute("scope_mask"); DelegationMaskType dm = DelegationMaskType.All; ScopeMaskType sm = ScopeMaskType.All; if (delegationMask != string.Empty) { dm = (DelegationMaskType)int.Parse(delegationMask); } if (scopeMask != string.Empty) { sm = (ScopeMaskType)int.Parse(scopeMask); } string userID = LogOnUserInfo.UserLogOnName; //得到服务范围 DataTable dt = SecurityCheck.GetUserFunctionsScopes(userID, appCodeName, funcCodeNames, UserValueType.LogonName, dm, sm).Tables[0]; _XmlResult = new XmlDocument(); _XmlResult.LoadXml("<DataSet/>"); XmlHelper.AppendNode(_XmlResult.FirstChild, "Table"); string strRootOrg; string[] arrRootOrg; for (int i = 0; i < dt.Rows.Count; i++) { strRootOrg = dt.Rows[i]["DESCRIPTION"].ToString(); arrRootOrg = strRootOrg.Split(new char[] { ',', ';' }); for (int j = 0; j < arrRootOrg.Length; j++) { if (arrRootOrg[j] != string.Empty) { if (_XmlResult.SelectSingleNode(string.Format(".//ORGANIZATIONS[.='{0}']", arrRootOrg[j])) == null) { XmlHelper.AppendNode(_XmlResult.FirstChild.FirstChild, "ORGANIZATIONS", arrRootOrg[j]); } } } } }
//查询指定部门下,指定应用中,指定角色,指定类别的所有人员 private static DataSet InnerGetRolesUsers(string orgRoot, string appCodeName, string roleCodeNames, DelegationMaskType delegationMask, SidelineMaskType sidelineMask, string extAttr) { //取原有权限人员 //参数extAttr已无效 string strSql = GetRolesUsers_SqlStr(orgRoot, appCodeName, roleCodeNames, sidelineMask, extAttr); if (strSql == string.Empty) { //如果没有表达式 if (extAttr == string.Empty) { strSql = @" SELECT 'USERS' OBJECTCLASS, OU.PARENT_GUID, OU.USER_GUID, OU.DISPLAY_NAME, OU.OBJ_NAME, OU.INNER_SORT, OU.ORIGINAL_SORT, OU.GLOBAL_SORT, OU.ALL_PATH_NAME, OU.STATUS, OU.SIDELINE, OU.RANK_NAME, OU.ATTRIBUTES, OU.DESCRIPTION, OU.START_TIME, OU.END_TIME, OU.OUSYSDISTINCT1, OU.OUSYSDISTINCT2, OU.OUSYSCONTENT1, OU.OUSYSCONTENT2, OU.OUSYSCONTENT3, U.GUID, U.FIRST_NAME, U.LAST_NAME, U.LOGON_NAME, U.IC_CARD, U.RANK_CODE, U.E_MAIL, U.POSTURAL, U.PERSON_ID, U.SYSDISTINCT1, U.SYSDISTINCT2, U.SYSCONTENT1, U.SYSCONTENT2, U.SYSCONTENT3, RD.CODE_NAME, RD.SORT_ID, RD.NAME FROM OU_USERS OU INNER JOIN USERS U ON OU.USER_GUID = U.GUID INNER JOIN RANK_DEFINE RD ON U.RANK_CODE = RD.CODE_NAME WHERE 1>1 "; return OGUCommonDefine.ExecuteDataset(strSql); } else { return OGUReader.GetObjectsDetail("USERS", string.Empty, SearchObjectColumn.SEARCH_LOGON_NAME, string.Empty, SearchObjectColumn.SEARCH_NULL, extAttr); } } DataSet returnDS = null; if (extAttr == string.Empty) { strSql += "\n ORDER BY OU.GLOBAL_SORT, RD.SORT_ID, OU.SIDELINE"; returnDS = OGUCommonDefine.ExecuteDataset(strSql); } else { DataTable dt = OGUCommonDefine.ExecuteDataset(strSql).Tables[0]; string IDs = GetColumnValue(dt, "USER_GUID"); returnDS = OGUReader.GetObjectsDetail("USERS", IDs, SearchObjectColumn.SEARCH_GUID, string.Empty, SearchObjectColumn.SEARCH_GUID, extAttr); //过滤非选定的职位 string strIDpIDs = string.Empty; foreach (DataRow row in dt.Rows) { if (strIDpIDs == string.Empty) strIDpIDs += row["USER_GUID"].ToString() + row["PARENT_GUID"].ToString(); else strIDpIDs += "," + row["USER_GUID"].ToString() + row["PARENT_GUID"].ToString(); } for (int i = returnDS.Tables[0].Rows.Count - 1; i >= 0; i--) { DataRow row2 = returnDS.Tables[0].Rows[i]; //str = row2["USER_GUID"].ToString() + row2["PARENT_GUID"].ToString();//Delete By Yuanyong 20080724 string str = row2["GUID"].ToString() + row2["PARENT_GUID"].ToString();// Add By yuanyong 20080724 if (strIDpIDs.IndexOf(str) == -1) returnDS.Tables[0].Rows.Remove(row2); } returnDS.AcceptChanges(); } //读委派权限类人员?? DataSet delegateDS = null; if ((returnDS.Tables[0].Rows.Count) > 0 && (delegationMask & DelegationMaskType.Delegated) != DelegationMaskType.None) { //得到当前角色下,有效的委派 strSql = @" SELECT * FROM DELEGATIONS D, ROLES R, APPLICATIONS A WHERE D.ROLE_ID = R.ID AND R.APP_ID = A.ID AND A.CODE_NAME = {0} AND R.CODE_NAME IN ({1}) AND R.ALLOW_DELEGATE = 'y' AND D.START_TIME < GETDATE() AND D.END_TIME > GETDATE() ORDER BY D.ROLE_ID, D.SOURCE_ID;"; strSql = string.Format(strSql, TSqlBuilder.Instance.CheckQuotationMark(appCodeName, true), OGUCommonDefine.AddMulitStrWithQuotationMark(roleCodeNames)); DataSet ds = OGUCommonDefine.ExecuteDataset(strSql); if (ds.Tables[0].Rows.Count > 0) { string dUserIDs = "''"; string strTemp = string.Empty; string strTemp2 = string.Empty; foreach (DataRow row in ds.Tables[0].Rows) { //委派者属于角色 strTemp = string.Format("[USER_GUID] = '{0}'", row["SOURCE_ID"]); //被委派者不属于角色 strTemp2 = string.Format("[USER_GUID] = '{0}'", row["TARGET_ID"]); if (returnDS.Tables[0].Select(strTemp).Length > 0 && returnDS.Tables[0].Select(strTemp2).Length == 0) { dUserIDs += string.Format(",'{0}'", row["TARGET_ID"]); } } //读被委派者 if (dUserIDs.Length > 2) { string strSql2 = string.Empty; if (extAttr == string.Empty) { strSql2 = @" SELECT 'USERS' OBJECTCLASS, OU.PARENT_GUID, OU.USER_GUID, OU.DISPLAY_NAME, OU.OBJ_NAME, OU.INNER_SORT, OU.ORIGINAL_SORT, OU.GLOBAL_SORT, OU.ALL_PATH_NAME, OU.STATUS, OU.SIDELINE, OU.RANK_NAME, OU.ATTRIBUTES, OU.DESCRIPTION, OU.START_TIME, OU.END_TIME, OU.OUSYSDISTINCT1, OU.OUSYSDISTINCT2, OU.OUSYSCONTENT1, OU.OUSYSCONTENT2, OU.OUSYSCONTENT3 ,U.GUID, U.FIRST_NAME, U.LAST_NAME, U.LOGON_NAME, U.IC_CARD, U.RANK_CODE, U.E_MAIL, U.POSTURAL, U.PERSON_ID, U.SYSDISTINCT1, U.SYSDISTINCT2, U.SYSCONTENT1, U.SYSCONTENT2, U.SYSCONTENT3, RD.CODE_NAME, RD.SORT_ID, RD.NAME "; } else { strSql2 = @"OU.PARENT_GUID, OU.USER_GUID"; } strSql2 += string.Format(@" FROM OU_USERS OU INNER JOIN USERS U ON OU.USER_GUID = U.GUID INNER JOIN RANK_DEFINE RD ON U.RANK_CODE = RD.CODE_NAME WHERE OU.USER_GUID IN ({0}) AND OU.STATUS = 1 AND GETDATE() BETWEEN OU.START_TIME AND OU.END_TIME ORDER BY OU.GLOBAL_SORT, RD.SORT_ID, OU.SIDELINE", dUserIDs); //*********** //委派的人不过滤机构:原有权限在范围中,认定被委派人在范围中。 //*********** //处理兼职 if ((sidelineMask & SidelineMaskType.All) != SidelineMaskType.All) { if (sidelineMask == SidelineMaskType.NotSideline) //主职 { strSql2 += " AND SIDELINE = 0"; } if (sidelineMask == SidelineMaskType.Sideline) //兼职 { strSql2 += " AND SIDELINE = 1"; } } delegateDS = OGUCommonDefine.ExecuteDataset(strSql2); if (extAttr != string.Empty) { string IDs = GetColumnValue(delegateDS.Tables[0], "USER_GUID"); string pIDs = GetColumnValue(delegateDS.Tables[0], "PARENT_GUID"); delegateDS = OGUReader.GetObjectsDetail("USERS", IDs, SearchObjectColumn.SEARCH_GUID, string.Empty, SearchObjectColumn.SEARCH_GUID, extAttr); } } } } if (delegationMask == DelegationMaskType.Delegated) { if (delegateDS == null) { if (extAttr == string.Empty) { string strSql3 = @" SELECT 'USERS' OBJECTCLASS, OU.PARENT_GUID, OU.USER_GUID, OU.DISPLAY_NAME, OU.OBJ_NAME, OU.INNER_SORT, OU.ORIGINAL_SORT, OU.GLOBAL_SORT, OU.ALL_PATH_NAME, OU.STATUS, OU.SIDELINE, OU.RANK_NAME, OU.ATTRIBUTES, OU.DESCRIPTION, OU.START_TIME, OU.END_TIME, OU.OUSYSDISTINCT1, OU.OUSYSDISTINCT2, OU.OUSYSCONTENT1, OU.OUSYSCONTENT2, OU.OUSYSCONTENT3 ,U.GUID, U.FIRST_NAME, U.LAST_NAME, U.LOGON_NAME, U.IC_CARD, U.RANK_CODE, U.E_MAIL, U.POSTURAL, U.PERSON_ID, U.SYSDISTINCT1, U.SYSDISTINCT2, U.SYSCONTENT1, U.SYSCONTENT2, U.SYSCONTENT3, RD.CODE_NAME, RD.SORT_ID, RD.NAME FROM OU_USERS OU INNER JOIN USERS U ON OU.USER_GUID = U.GUID INNER JOIN RANK_DEFINE RD ON U.RANK_CODE = RD.CODE_NAME WHERE 1>1 "; delegateDS = OGUCommonDefine.ExecuteDataset(strSql3); } else { delegateDS = OGUReader.GetObjectsDetail("", string.Empty, SearchObjectColumn.SEARCH_GUID, string.Empty, SearchObjectColumn.SEARCH_NULL, extAttr); } } returnDS = delegateDS; } else if (delegationMask == DelegationMaskType.All) { if (delegateDS != null) { returnDS.Merge(delegateDS); } } return returnDS; }
//判断人员是否在指定应用,指定角色中 private static bool IsUserInAllRoles(string userID, string userAllPath, string appCodeName, string roleCodeNames, DelegationMaskType delegationMask) { //modified by yangrui 2005.1 //新版程序 //不调机构人员接口,直接读库进行表连接 string strSql = GetUserRoles_SqlStr(userID, userAllPath, appCodeName, RightMaskType.All, delegationMask, roleCodeNames); if (strSql == string.Empty) return false; strSql = string.Format(@" SELECT COUNT(*) FROM ({0} AND R.CODE_NAME IN ({1}) AND R.APP_ID = (SELECT ID FROM APPLICATIONS WHERE CODE_NAME = {2}) ) AS T1 ", strSql, OGUCommonDefine.AddMulitStrWithQuotationMark(roleCodeNames), TSqlBuilder.Instance.CheckQuotationMark(appCodeName, true)); object obj = OGUCommonDefine.ExecuteScalar(strSql); if (obj != null && (int)obj == roleCodeNames.Split(',').Length) return true; return false; }
//查询拥有指定功能的所有人员 private static DataSet InnerGetFunctionsUsers(string orgRoot, string appCodeName, string funcCodeNames, DelegationMaskType delegationMask, SidelineMaskType sidelineMask, string extAttr) { //ExceptionHelper.CheckStringIsNullOrEmpty(orgRoot, "orgRoot"); //ExceptionHelper.CheckStringIsNullOrEmpty(appCodeName, "appCodeName"); //ExceptionHelper.CheckStringIsNullOrEmpty(funcCodeNames, "funcCodeNames"); //得到拥有功能的所有角色 DataTable roleDT = GetFunctionsRoles(appCodeName, funcCodeNames).Tables[0]; DataSet result = null; //if (roleDT.Rows.Count > 0) { string roleCodeNames = GetColumnValue(roleDT, "CODE_NAME"); result = InnerGetRolesUsers(orgRoot, appCodeName, roleCodeNames, delegationMask, sidelineMask, extAttr); } return result; }
public bool IsUserInAllRoles(string userValue, string appCodeName, string roleCodeNames, UserValueType userValueType, DelegationMaskType delegationMask) { object[] results = this.Invoke("IsUserInAllRoles", new object[] { userValue, appCodeName, roleCodeNames, userValueType, delegationMask}); return ((bool)(results[0])); }
public System.Data.DataSet GetUserApplications(string userValue, UserValueType userValueType, RightMaskType rightMask, DelegationMaskType delegationMask) { object[] results = this.Invoke("GetUserApplications", new object[] { userValue, userValueType, rightMask, delegationMask}); return ((System.Data.DataSet)(results[0])); }
public System.Data.DataSet GetUserApplications(string userValue, UserValueType userValueType, RightMaskType rightMask, DelegationMaskType delegationMask) { object[] results = this.Invoke("GetUserApplications", new object[] { userValue, userValueType, rightMask, delegationMask }); return((System.Data.DataSet)(results[0])); }
/// <remarks/> public System.IAsyncResult BeginGetUserFunctionsScopes(string userValue, string appCodeName, string funcCodeNames, UserValueType userValueType, DelegationMaskType delegationMask, ScopeMaskType scopeMask, System.AsyncCallback callback, object asyncState) { return(this.BeginInvoke("GetUserFunctionsScopes", new object[] { userValue, appCodeName, funcCodeNames, userValueType, delegationMask, scopeMask }, callback, asyncState)); }
//生成语句:查询指定人员,在指定应用具有的权限(功能) private static string GetUserPermissions_SqlStr(string userID, string userAllPath, string appCodeName, RightMaskType rightMask, DelegationMaskType delegationMask) { //得到人员所拥有的角色 string strSql = GetUserRoles_SqlStr(userID, userAllPath, appCodeName, rightMask, delegationMask, string.Empty); if (strSql != string.Empty) { strSql = string.Format(@" SELECT DISTINCT F.ID, F.APP_ID, F.NAME, F.CODE_NAME, F.DESCRIPTION, F.SORT_ID, F.CLASSIFY, F.INHERITED FROM FUNCTIONS F, ROLE_TO_FUNCTIONS RTF WHERE F.ID = RTF.FUNC_ID AND RTF.ROLE_ID IN (SELECT ID FROM ({0}) AS T1) ", strSql); } else strSql = "SELECT F.ID, F.APP_ID, F.NAME, F.CODE_NAME, F.DESCRIPTION, F.SORT_ID, F.CLASSIFY, F.INHERITED FROM FUNCTIONS F WHERE 1>1"; return strSql; }
//查询指定人员的应用角色信息 private static DataSet GetUserApplicationsRoles(string userID, string userAllPath, RightMaskType rightMask, DelegationMaskType delegationMask) { //modified by yangrui 2005.1 string strSql = GetUserRoles_SqlStr(userID, userAllPath, string.Empty, rightMask, delegationMask, string.Empty); if (strSql == string.Empty) { strSql = @" SELECT DISTINCT A.NAME APP_NAME, A.CODE_NAME APP_CODE_NAME, A.RESOURCE_LEVEL APP_RESOURCE_LEVEL, R.ID, R.APP_ID, R.NAME, R.CODE_NAME, R.DESCRIPTION, R.CLASSIFY, R.SORT_ID, R.ALLOW_DELEGATE, R.INHERITED FROM APPLICATIONS A INNER JOIN ROLES R ON R.APP_ID = A.ID WHERE 1>1 "; } else { strSql = string.Format(@" SELECT DISTINCT A.NAME APP_NAME, A.CODE_NAME APP_CODE_NAME, A.RESOURCE_LEVEL APP_RESOURCE_LEVEL, R.ID, R.APP_ID, R.NAME, R.CODE_NAME, R.DESCRIPTION, R.CLASSIFY, R.SORT_ID, R.ALLOW_DELEGATE, R.INHERITED FROM ({0}) AS R INNER JOIN APPLICATIONS A ON R.APP_ID = A.ID ", strSql); strSql += "\n ORDER BY RESOURCE_LEVEL, CLASSIFY DESC, R.SORT_ID"; } return OGUCommonDefine.ExecuteDataset(strSql); }
/// <summary> /// 得到用户所在的表达式IDs(包括委派),本函数进行原始权限和委派权限的相关处理,细节处理由其重载函数完成 /// </summary> /// <param name="userID"></param> /// <param name="appCodeName"></param> /// <param name="userAllPath"></param> /// <param name="rightMask"></param> /// <param name="delegationMask"></param> /// <param name="roleCodeNames">角色范围限定,由角色的code_name串表示</param> /// <returns></returns> private static string GetUserExpressionIDs_SqlStr(string userID, string userAllPath, string appCodeName, RightMaskType rightMask, DelegationMaskType delegationMask, string roleCodeNames) { if (userID == string.Empty) return string.Empty; //原始的权限对应的表达式IDs string strExpIDs_O = string.Empty; //委派的权限对应的表达式IDs string strExpIDs_D = string.Empty; string strSql = string.Empty; DataTable expDT = null; if ((delegationMask & DelegationMaskType.Original) != DelegationMaskType.None) { strSql = GetUserExpressionIDs_SqlStr2(userID, userAllPath, appCodeName, rightMask, string.Empty); if (strSql != string.Empty) { expDT = OGUCommonDefine.ExecuteDataset(strSql).Tables[0]; foreach (DataRow row in expDT.Rows) { if (row[0].ToString() == string.Empty) continue; if (strExpIDs_O == string.Empty) strExpIDs_O = "'" + row[0].ToString() + "'"; else strExpIDs_O += ",'" + row[0].ToString() + "'"; } } else return string.Empty; } string strSql2 = string.Empty; //读委派权限类人员?? if ((delegationMask & DelegationMaskType.Delegated) != DelegationMaskType.None) { strSql2 = GetValidDelegationsForTarget_SqlStr(userID, appCodeName, roleCodeNames, rightMask); DataSet ds = OGUCommonDefine.ExecuteDataset(strSql2); if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow row in ds.Tables[0].Rows) { //委派人 在 相应的角色 中, 才能证明被委派在此角色中。 所以设置了row["ROLE_ID"].ToString()参数。 strSql2 = GetUserExpressionIDs_SqlStr2(row["SOURCE_ID"].ToString(), string.Empty, appCodeName, rightMask, row["ROLE_ID"].ToString()); if (strSql2 != string.Empty) { expDT = OGUCommonDefine.ExecuteDataset(strSql2).Tables[0]; foreach (DataRow row2 in expDT.Rows) { if (row2[0].ToString() == string.Empty) continue; if (strExpIDs_D == string.Empty) strExpIDs_D = "'" + row2[0].ToString() + "'"; else strExpIDs_D += ",'" + row2[0].ToString() + "'"; } } } } } //合并结果 // strRoleIDs_O += "," + strRoleIDs_D ; if (strExpIDs_O != string.Empty && strExpIDs_D != string.Empty) strSql = string.Format("{0},{1}", strExpIDs_O, strExpIDs_D); else if (strExpIDs_O == string.Empty && strExpIDs_D == string.Empty) strSql = string.Empty; else strSql = strExpIDs_O + strExpIDs_D; return strSql; }
//查询指定人员,在指定应用具有的权限(功能) private static DataSet GetUserPermissions(string userID, string userAllPath, string appCodeName, RightMaskType rightMask, DelegationMaskType delegationMask) { string strSql = GetUserPermissions_SqlStr(userID, userAllPath, appCodeName, rightMask, delegationMask); strSql += "\n ORDER BY APP_ID, CLASSIFY DESC, SORT_ID"; return OGUCommonDefine.ExecuteDataset(strSql); }
/// <summary> /// /// </summary> /// <param name="userID"></param> /// <param name="appCodeName"></param> /// <param name="userAllPath"></param> /// <param name="rightMask"></param> /// <param name="delegationMask"></param> /// <param name="roleCodeNames">角色范围限定,由角色的code_name串表示</param> /// <returns></returns> private static string GetUserRoles_SqlStr(string userID, string userAllPath, string appCodeName, RightMaskType rightMask, DelegationMaskType delegationMask, string roleCodeNames) { string strSql = GetUserExpressionIDs_SqlStr(userID, userAllPath, appCodeName, rightMask, delegationMask, roleCodeNames); if (strSql != string.Empty) strSql = string.Format(@" SELECT DISTINCT R.ID, R.APP_ID, R.NAME, R.CODE_NAME, R.DESCRIPTION, R.CLASSIFY, R.SORT_ID, R.ALLOW_DELEGATE, R.INHERITED FROM ROLES R, EXPRESSIONS E WHERE R.ID = E.ROLE_ID AND E.ID IN ({0})", strSql); return strSql; }
private static DataSet GetUserRoles(string userID, string userAllPath, string appCodeName, RightMaskType rightMask, DelegationMaskType delegationMask) { return GetUserRoles(userID, userAllPath, appCodeName, rightMask, delegationMask, string.Empty); }
//2009-6-11修改人员角色信息入口,返回dataset结果,子方法为拼sql语句 /// <summary> /// 查询指定用户,在指定应用中所拥有的角色 /// </summary> /// <param name="userID"></param> /// <param name="appCodeName"></param> /// <param name="userAllPath"></param> /// <param name="rightMask"></param> /// <param name="delegationMask"></param> /// <param name="roleCodeNames">角色范围限定,由角色的code_name串表示</param> /// <returns></returns> private static DataSet GetUserRoles(string userID, string userAllPath, string appCodeName, RightMaskType rightMask, DelegationMaskType delegationMask, string roleCodeNames) { //沈峥优化,根据OA常用情况,去掉了Deligate的判断,如果appCodeName为空,走优化分支 DataSet result = null; if (string.IsNullOrEmpty(userAllPath)) result = ExtSecurityCheck.GetUserAppRoles(userID, appCodeName, RightMaskType.All); else { string strSql = string.Empty; if (appCodeName != string.Empty) strSql = GetUserRoles_SqlStr(userID, userAllPath, appCodeName, rightMask, delegationMask, roleCodeNames); if (strSql != string.Empty) strSql += "\n ORDER BY R.CLASSIFY DESC, R.SORT_ID"; else strSql = @" SELECT R.ID, R.APP_ID, R.NAME, R.CODE_NAME, R.DESCRIPTION, R.CLASSIFY, R.SORT_ID, R.ALLOW_DELEGATE, R.INHERITED FROM ROLES R WHERE 1>1"; result = OGUCommonDefine.ExecuteDataset(strSql); } return result; }
/// <summary> /// 查询指定部门下,指定应用中,指定角色的所有人员 /// </summary> /// <param name="orgRoot">根部门的全路径,空串时不限制部门</param> /// <param name="appCodeName">应用的英文标识</param> /// <param name="roleCodeNames">角色的英文标识,多个时用逗号分隔</param> /// <param name="delegationMask">委派类型</param> /// <returns></returns> public static DataSet GetRolesUsers(string orgRoot, string appCodeName, string roleCodeNames, DelegationMaskType delegationMask) { return GetRolesUsers(orgRoot, appCodeName, roleCodeNames, delegationMask, SidelineMaskType.All); }
//查询指定人员的应用角色信息 private static DataSet GetUserApplications(string userID, string userAllPath, RightMaskType rightMask, DelegationMaskType delegationMask) { string strSql = GetUserApplications_SqlStr(userID, userAllPath, rightMask, delegationMask); strSql += "\n ORDER BY RESOURCE_LEVEL, SORT_ID"; return OGUCommonDefine.ExecuteDataset(strSql); }
public bool IsUserInAllRoles(string userValue, string appCodeName, string roleCodeNames, UserValueType userValueType, DelegationMaskType delegationMask) { object[] results = this.Invoke("IsUserInAllRoles", new object[] { userValue, appCodeName, roleCodeNames, userValueType, delegationMask }); return((bool)(results[0])); }
//生成语句:查询指定人员的应用角色信息 private static string GetUserApplications_SqlStr(string userID, string userAllPath, RightMaskType rightMask, DelegationMaskType delegationMask) { //modified by yangrui 2005.1 string strSql = GetUserRoles_SqlStr(userID, userAllPath, String.Empty, rightMask, delegationMask, string.Empty); if (strSql != string.Empty) { strSql = string.Format(@" SELECT DISTINCT A.ID, A.NAME, A.CODE_NAME, A.DESCRIPTION, A.SORT_ID, A.RESOURCE_LEVEL, A.CHILDREN_COUNT, A.ADD_SUBAPP, A.USE_SCOPE, A.INHERITED_STATE FROM APPLICATIONS A WHERE ID IN (SELECT APP_ID FROM ({0}) AS T1)", strSql); } else { strSql = @" SELECT A.ID, A.NAME, A.CODE_NAME, A.DESCRIPTION, A.SORT_ID, A.RESOURCE_LEVEL, A.CHILDREN_COUNT, A.ADD_SUBAPP, A.USE_SCOPE, A.INHERITED_STATE FROM APPLICATIONS A WHERE 1>1"; } return strSql; }
/// <summary> /// 查询指定人员,在指定应用,指定角色中所拥有的服务范围 /// </summary> /// <param name="userValue">用户身份标识(由userValueType参数指定类型)</param> /// <param name="appCodeName">应用的英文标识</param> /// <param name="funcCodeNames">功能的英文标识,多个时用逗号分隔</param> /// <param name="userValueType">用户身份标识类型(UserValueType.LogonName:登录名, UserValueType.AllPath:全路径)</param> /// <param name="delegationMask">委派类型</param> /// <returns></returns> public static DataSet GetUserFunctionsScopes(string userValue, string appCodeName, string funcCodeNames, UserValueType userValueType, DelegationMaskType delegationMask) { return GetUserFunctionsScopes(userValue, appCodeName, funcCodeNames, userValueType, delegationMask, ScopeMaskType.All); }
/// <summary> /// 生成语句:查询指定人员,在指定应用,指定角色中所拥有的服务范围 /// </summary> /// <param name="userID"></param> /// <param name="userAllPath"></param> /// <param name="appCodeName"></param> /// <param name="roleCodeNames"></param> /// <param name="delegationMask"></param> /// <param name="scopeMask"></param> /// <returns></returns> private static string GetUserRolesScopes_SqlStr(string userID, string userAllPath, string appCodeName, string roleCodeNames, DelegationMaskType delegationMask, ScopeMaskType scopeMask) { //modified by yangrui 2005.1 string strSql = string.Format("SELECT ISNULL(USE_SCOPE, 'n') FROM APPLICATIONS WHERE CODE_NAME = {0}", TSqlBuilder.Instance.CheckQuotationMark(appCodeName, true)); object obj = OGUCommonDefine.ExecuteScalar(strSql); if (obj == null || obj.ToString().ToLower() == "n") { return string.Empty; } string expIDsSql = GetUserExpressionIDs_SqlStr(userID, userAllPath, appCodeName, RightMaskType.All, delegationMask, roleCodeNames); strSql = string.Empty; if (expIDsSql != string.Empty) { strSql = string.Format(@" SELECT ID, APP_ID, NAME, CODE_NAME, EXPRESSION, DESCRIPTION, CLASSIFY, SORT_ID, INHERITED FROM SCOPES WHERE ID IN ( SELECT ES.SCOPE_ID FROM EXP_TO_SCOPES ES INNER JOIN EXPRESSIONS E ON ES.EXP_ID = E.ID INNER JOIN ROLES R ON E.ROLE_ID = R.ID INNER JOIN APPLICATIONS A ON R.APP_ID = A.ID WHERE ES.EXP_ID IN ({0}) AND A.CODE_NAME = {1} AND R.CODE_NAME IN ({2}) )", expIDsSql, TSqlBuilder.Instance.CheckQuotationMark(appCodeName, true), OGUCommonDefine.AddMulitStrWithQuotationMark(roleCodeNames)); string classCondition = string.Empty; if (scopeMask == ScopeMaskType.OrgScope) classCondition = "\n AND (CLASSIFY = 'y') "; if (scopeMask == ScopeMaskType.DataScope) classCondition = "\n AND (CLASSIFY = 'n') "; if (classCondition != string.Empty) strSql += classCondition; //strSql = string.Format(strSql, OGUCommonDefine.AddMulitStrWithQuotationMark(expIDs)); } return strSql; }
public System.Data.DataSet GetFunctionsUsers(string orgRoot, string appCodeName, string funcCodeNames, DelegationMaskType delegationMask, SidelineMaskType sidelineMask, string extAttr) { object[] results = this.Invoke("GetFunctionsUsers", new object[] { orgRoot, appCodeName, funcCodeNames, delegationMask, sidelineMask, extAttr}); return ((System.Data.DataSet)(results[0])); }
/// <summary> /// 查询指定部门范围下,指定应用系统中,指定角色下的所有人员 /// </summary> /// <param name="orgRoot">部门范围的全路径,空串时不做限制,多个时用逗号分隔</param> /// <param name="appCodeName">应用的英文标识</param> /// <param name="roleCodeNames">角色的英文标识,多个时用逗号分隔</param> /// <param name="delegationMask">权限委派类型</param> /// <param name="sidelineMask">人员职位类型</param> /// <param name="extAttr">要求获取的扩展属性</param> /// <returns>指定部门范围下,指定应用系统中,指定角色下的所有人员</returns> public static OguObjectCollection<IUser> GetUsersFromRoles(string orgRoot, string appCodeName, string roleCodeNames, DelegationMaskType delegationMask, SidelineMaskType sidelineMask, string extAttr) { DataSet ds = AppAdminServiceBroker.Instance.GetRolesUsers(orgRoot, appCodeName, roleCodeNames, delegationMask, SidelineMaskType.All, extAttr); var users = Common.BuildObjectsFromTable<IUser>(ds.Tables[0]); return new OguObjectCollection<IUser>(users); }
public bool DoesUserHasAllPermissions(string userValue, string appCodeName, string funcCodeNames, UserValueType userValueType, DelegationMaskType delegationMask) { object[] results = this.Invoke("DoesUserHasAllPermissions", new object[] { userValue, appCodeName, funcCodeNames, userValueType, delegationMask}); return ((bool)(results[0])); }
public System.Data.DataSet GetUserPermissions2(string userValue, string appCodeName, UserValueType userValueType, RightMaskType rightMask, DelegationMaskType delegationMask, bool includeMatrixUsers) { object[] results = this.Invoke("GetUserPermissions2", new object[] { userValue, appCodeName, userValueType, rightMask, delegationMask, includeMatrixUsers }); return((System.Data.DataSet)(results[0])); }
public System.Data.DataSet GetUserFunctionsScopes(string userValue, string appCodeName, string funcCodeNames, UserValueType userValueType, DelegationMaskType delegationMask, ScopeMaskType scopeMask) { object[] results = this.Invoke("GetUserFunctionsScopes", new object[] { userValue, appCodeName, funcCodeNames, userValueType, delegationMask, scopeMask}); return ((System.Data.DataSet)(results[0])); }
public DataSet GetUserPermissions2(string userValue, string appCodeName, UserValueType userValueType, RightMaskType rightMask, DelegationMaskType delegationMask, bool includeMatrixUsers) { string[] schemaTypes = SchemaInfo.FilterByCategory("Roles").ToSchemaNames(); string[] userIDs = OGUReaderService.SplitObjectValues(userValue); SCObjectAndRelationCollection users = OGUReaderService.GetSearchAdapter(GetSearchOUIDType(userValueType), SchemaInfo.FilterByCategory("Users").ToSchemaNames(), userIDs, false).QueryObjectsAndRelations(); SchemaObjectCollection permissions = SCSnapshotAdapter.Instance.QueryUserBelongToPermissions(schemaTypes, appCodeName, users.ToIDArray(), false, DateTime.MinValue); if (includeMatrixUsers) { string[] permissionTypes = SchemaInfo.FilterByCategory("Permissions").ToSchemaNames(); List <string> roleIDsInMatrix = GetUserRoleIDsInMatrix(users.ToIDArray(), appCodeName); SCObjectAndRelationCollection permissionsInMatrixRelation = SCSnapshotAdapter.Instance.QueryObjectAndRelationByParentIDs(permissionTypes, roleIDsInMatrix.ToArray(), false, true, false, DateTime.MinValue); InSqlClauseBuilder inBuilder = new InSqlClauseBuilder("ID"); List <string> permissionInMatrixIDs = new List <string>(); foreach (SCObjectAndRelation pim in permissionsInMatrixRelation) { if (permissions.ContainsKey(pim.ID) == false) { inBuilder.AppendItem(pim.ID); } } if (inBuilder.IsEmpty == false) { SchemaObjectCollection permissionsInMatrix = SchemaObjectAdapter.Instance.Load(inBuilder, DateTime.MinValue); permissions.CopyFrom(permissionsInMatrix); } } DataSet ds = new DataSet(); ds.Tables.Add(QueryHelper.GetAppObjectTableBuilder(schemaTypes).Convert(permissions)); return(ds); }
//判断人员是否在指定应用,指定角色中 private static bool IsUserInRoles(string userID, string userAllPath, string appCodeName, string roleCodeNames, DelegationMaskType delegationMask) { //ExceptionHelper.CheckStringIsNullOrEmpty(userID, "userID"); //ExceptionHelper.CheckStringIsNullOrEmpty(appCodeName, "appCodeName"); //ExceptionHelper.CheckStringIsNullOrEmpty(roleCodeNames, "roleCodeNames"); string strSql = GetUserRoles_SqlStr(userID, userAllPath, appCodeName, RightMaskType.All, delegationMask, roleCodeNames); if (strSql == string.Empty) return false; strSql = string.Format(@" SELECT COUNT(*) FROM ({0} AND R.CODE_NAME IN ({1}) AND R.APP_ID = (SELECT ID FROM APPLICATIONS WHERE CODE_NAME = {2})) AS T1 ", strSql, OGUCommonDefine.AddMulitStrWithQuotationMark(roleCodeNames), TSqlBuilder.Instance.CheckQuotationMark(appCodeName, true)); object obj = OGUCommonDefine.ExecuteScalar(strSql); if (obj != null && (int)obj > 0) return true; return false; }
//查询指定人员,在指定应用中,是否拥有指定的功能权限(有一个即可) private static bool DoesUserHasPermissions(string userID, string userAllPath, string appCodeName, string funcCodeNames, DelegationMaskType delegationMask) { //查找函数对应的角色,把funcCodeNames转成roleCodeNames DataTable roleCodeNameDT = GetFunctionsRoles(appCodeName, funcCodeNames).Tables[0]; //ExceptionHelper.FalseThrow(roleCodeNameDT.Rows.Count > 0, // string.Format("应用名称【{0}】或者功能名称【{1}】是非法数据值", appCodeName, funcCodeNames)); bool result = false; //if (roleCodeNameDT.Rows.Count > 0) { string roleCodeNames = GetColumnValue(roleCodeNameDT, "CODE_NAME"); result = IsUserInRoles(userID, userAllPath, appCodeName, roleCodeNames, delegationMask); } return result; }
//查询指定部门下,指定应用中,指定角色,指定类别的所有人员(不分职位) private static DataSet InnerGetRolesUsers(string orgRoot, string appCodeName, string roleCodeNames, DelegationMaskType delegationMask, string extAttr) { return InnerGetRolesUsers(orgRoot, appCodeName, roleCodeNames, delegationMask, SidelineMaskType.All, extAttr); }
public DataSet GetUserPermissions(string userValue, string appCodeName, UserValueType userValueType, RightMaskType rightMask, DelegationMaskType delegationMask) { string[] schemaTypes = SchemaInfo.FilterByCategory("Roles").ToSchemaNames(); string[] userIDs = OGUReaderService.SplitObjectValues(userValue); SCObjectAndRelationCollection users = OGUReaderService.GetSearchAdapter(GetSearchOUIDType(userValueType), SchemaInfo.FilterByCategory("Users").ToSchemaNames(), userIDs, false).QueryObjectsAndRelations(); SchemaObjectCollection roles = SCSnapshotAdapter.Instance.QueryUserBelongToPermissions(schemaTypes, appCodeName, users.ToIDArray(), false, DateTime.MinValue); DataSet ds = new DataSet(); ds.Tables.Add(QueryHelper.GetAppObjectTableBuilder(schemaTypes).Convert(roles)); return(ds); }
/// <summary> /// 查询指定人员,在指定应用,指定角色中所拥有的服务范围 /// </summary> /// <param name="userID"></param> /// <param name="userAllPath"></param> /// <param name="appCodeName"></param> /// <param name="funcCodeNames"></param> /// <param name="delegationMask"></param> /// <param name="scopeMask"></param> /// <returns></returns> private static DataSet GetUserFunctionsScopes(string userID, string userAllPath, string appCodeName, string funcCodeNames, DelegationMaskType delegationMask, ScopeMaskType scopeMask) { string strSql = GetUserFunctionsScopes_SqlStr(userID, userAllPath, appCodeName, funcCodeNames, delegationMask, scopeMask); if (strSql == string.Empty) { strSql = @" SELECT ID, APP_ID, NAME, CODE_NAME, EXPRESSION, DESCRIPTION, CLASSIFY, SORT_ID, INHERITED FROM SCOPES WHERE 1>1"; return OGUCommonDefine.ExecuteDataset(strSql); } else { strSql += "\n ORDER BY CLASSIFY, SORT_ID"; return GetScopeAllPath(OGUCommonDefine.ExecuteDataset(strSql), userID, userAllPath); } }
//查询指定人员,在指定应用中,是否拥有指定的功能权限(全部才可) private static bool DoesUserHasAllPermissions(string userID, string userAllPath, string appCodeName, string funcCodeNames, DelegationMaskType delegationMask) { string[] arrFuncCodeName = funcCodeNames.Split(new char[] { ',', ';' }); for (int i = 0; i < arrFuncCodeName.Length; i++) { if (false == DoesUserHasPermissions(userID, userAllPath, appCodeName, arrFuncCodeName[i], delegationMask)) return false; } return true; }
public System.Data.DataSet GetRolesUsers2(string orgRoot, string appCodeName, string roleCodeNames, DelegationMaskType delegationMask, SidelineMaskType sidelineMask, string extAttr, bool includeMatrixUsers) { object[] results = this.Invoke("GetRolesUsers2", new object[] { orgRoot, appCodeName, roleCodeNames, delegationMask, sidelineMask, extAttr, includeMatrixUsers }); return((System.Data.DataSet)(results[0])); }
//生成语句:查询指定人员,在指定应用,指定角色中所拥有的服务范围 private static string GetUserFunctionsScopes_SqlStr(string userID, string userAllPath, string appCodeName, string funcCodeNames, DelegationMaskType delegationMask, ScopeMaskType scopeMask) { //从功能到角色 DataTable roleDT = GetFunctionsRoles(appCodeName, funcCodeNames).Tables[0]; string roleCodeNames = GetColumnValue(roleDT, "CODE_NAME"); return GetUserRolesScopes_SqlStr(userID, userAllPath, appCodeName, roleCodeNames, delegationMask, scopeMask); }
public DataSet GetUserRoles2(string userValue, string appCodeName, UserValueType userValueType, RightMaskType rightMask, DelegationMaskType delegationMask, bool includeMatrixUsers) { string[] schemaTypes = SchemaInfo.FilterByCategory("Roles").ToSchemaNames(); string[] userIDs = OGUReaderService.SplitObjectValues(userValue); SCObjectAndRelationCollection users = OGUReaderService.GetSearchAdapter(GetSearchOUIDType(userValueType), SchemaInfo.FilterByCategory("Users").ToSchemaNames(), userIDs, false).QueryObjectsAndRelations(); SchemaObjectCollection roles = SCSnapshotAdapter.Instance.QueryUserBelongToRoles(schemaTypes, appCodeName, users.ToIDArray(), false, DateTime.MinValue); if (includeMatrixUsers) { List <string> matachedRoleIDs = GetUserRoleIDsInMatrix(users.ToIDArray(), appCodeName); //过滤掉已经在之前查询过的角色 matachedRoleIDs = matachedRoleIDs.FindAll(rID => roles.ContainsKey(rID) == false); if (matachedRoleIDs.Count > 0) { InSqlClauseBuilder matrixRoleBuilder = new InSqlClauseBuilder("ID"); matrixRoleBuilder.AppendItem(matachedRoleIDs.ToArray()); SchemaObjectCollection rolesInMatrix = SchemaObjectAdapter.Instance.Load(matrixRoleBuilder, DateTime.MinValue); rolesInMatrix.ForEach(rMatrix => roles.AddNotExistsItem(rMatrix, (r) => string.Compare(r.ID, rMatrix.ID, true) == 0)); } } DataSet ds = new DataSet(); ds.Tables.Add(QueryHelper.GetAppObjectTableBuilder(schemaTypes).Convert(roles)); return(ds); }
/// <summary> /// 查询指定部门下,指定应用中,拥有指定功能的所有人员 /// </summary> /// <param name="orgRoot">根部门的全路径,空串时不限制部门</param> /// <param name="appCodeName">应用的英文标识</param> /// <param name="funcCodeNames">功能的英文标识,多个时用逗号分隔[只要有其中一项就可以]</param> /// <param name="delegationMask">委派类型</param> /// <param name="sidelineMask">职位类型</param> /// <param name="extAttr">要求获取的扩展属性</param> /// <returns>查询指定部门下,指定应用中,拥有指定功能的所有人员[多个功能号的时候,只要有其中一项就可以]</returns> //[Obsolete("不建议使用参数extAttr,使用参数extAttr会调有机构人员接口,影响性能", false)] public static DataSet GetFunctionsUsers(string orgRoot, string appCodeName, string funcCodeNames, DelegationMaskType delegationMask, SidelineMaskType sidelineMask, string extAttr) { string cacheKey = InnerCacheHelper.BuildCacheKey(orgRoot, appCodeName, funcCodeNames, delegationMask, sidelineMask, extAttr); DataSet result; //if (false == GetFunctionsUsersQueue.Instance.TryGetValue(cacheKey, out result)) //{ // lock (typeof(GetFunctionsUsersQueue))//.CacheQueueSync) // { if (false == GetFunctionsUsersQueue.Instance.TryGetValue(cacheKey, out result)) { result = InnerGetFunctionsUsers(orgRoot, appCodeName, funcCodeNames, delegationMask, sidelineMask, extAttr); GetFunctionsUsersQueue.Instance.Add(cacheKey, result, InnerCacheHelper.PrepareDependency()); } // } //} return result; }
/// <summary> /// 查询指定部门下,指定应用中,拥有指定功能的所有人员 /// </summary> /// <param name="orgRoot">根部门的全路径,空串时不限制部门</param> /// <param name="appCodeName">应用的英文标识</param> /// <param name="funcCodeNames">功能的英文标识,多个时用逗号分隔</param> /// <param name="delegationMask">委派类型</param> /// <param name="sidelineMask">职位类型</param> /// <returns></returns> public static DataSet GetFunctionsUsers(string orgRoot, string appCodeName, string funcCodeNames, DelegationMaskType delegationMask, SidelineMaskType sidelineMask) { return GetFunctionsUsers(orgRoot, appCodeName, funcCodeNames, delegationMask, sidelineMask, string.Empty); }
/// <remarks/> public System.IAsyncResult BeginGetFunctionsUsers(string orgRoot, string appCodeName, string funcCodeNames, DelegationMaskType delegationMask, SidelineMaskType sidelineMask, string extAttr, System.AsyncCallback callback, object asyncState) { return(this.BeginInvoke("GetFunctionsUsers", new object[] { orgRoot, appCodeName, funcCodeNames, delegationMask, sidelineMask, extAttr }, callback, asyncState)); }
public DataSet GetRolesUsers(string orgRoot, string appCodeName, string roleCodeNames, DelegationMaskType delegationMask, SidelineMaskType sidelineMask, string extAttr) { string[] schemaTypes = SchemaInfo.FilterByCategory("Roles").ToSchemaNames(); string[] roleIDs = OGUReaderService.SplitObjectValues(roleCodeNames); bool removeDuplicateData = GetMethodSettingAttributeValue("GetChildrenInRoles", "removeDuplicateData", false); SCObjectAndRelationCollection relations = SCSnapshotAdapter.Instance.QueryRolesContainsUsers(schemaTypes, appCodeName, roleIDs, removeDuplicateData, false, DateTime.MinValue); relations.FillDetails(); DataSet ds = new DataSet(); ds.Tables.Add(QueryHelper.GetOguTableBuilder(SchemaInfo.FilterByCategory("Users").ToSchemaNames()).Convert(relations)); return(ds); }
/// <remarks/> public System.IAsyncResult BeginIsUserInAllRoles(string userValue, string appCodeName, string roleCodeNames, UserValueType userValueType, DelegationMaskType delegationMask, System.AsyncCallback callback, object asyncState) { return(this.BeginInvoke("IsUserInAllRoles", new object[] { userValue, appCodeName, roleCodeNames, userValueType, delegationMask }, callback, asyncState)); }
public System.Data.DataSet GetFunctionsUsers(string orgRoot, string appCodeName, string funcCodeNames, DelegationMaskType delegationMask, SidelineMaskType sidelineMask, string extAttr) { object[] results = this.Invoke("GetFunctionsUsers", new object[] { orgRoot, appCodeName, funcCodeNames, delegationMask, sidelineMask, extAttr }); return((System.Data.DataSet)(results[0])); }
/// <remarks/> public System.IAsyncResult BeginDoesUserHasAllPermissions(string userValue, string appCodeName, string funcCodeNames, UserValueType userValueType, DelegationMaskType delegationMask, System.AsyncCallback callback, object asyncState) { return(this.BeginInvoke("DoesUserHasAllPermissions", new object[] { userValue, appCodeName, funcCodeNames, userValueType, delegationMask }, callback, asyncState)); }
public bool DoesUserHasAllPermissions(string userValue, string appCodeName, string funcCodeNames, UserValueType userValueType, DelegationMaskType delegationMask) { object[] results = this.Invoke("DoesUserHasAllPermissions", new object[] { userValue, appCodeName, funcCodeNames, userValueType, delegationMask }); return((bool)(results[0])); }
/// <remarks/> public System.IAsyncResult BeginGetUserApplications(string userValue, UserValueType userValueType, RightMaskType rightMask, DelegationMaskType delegationMask, System.AsyncCallback callback, object asyncState) { return(this.BeginInvoke("GetUserApplications", new object[] { userValue, userValueType, rightMask, delegationMask }, callback, asyncState)); }
public System.Data.DataSet GetUserFunctionsScopes(string userValue, string appCodeName, string funcCodeNames, UserValueType userValueType, DelegationMaskType delegationMask, ScopeMaskType scopeMask) { object[] results = this.Invoke("GetUserFunctionsScopes", new object[] { userValue, appCodeName, funcCodeNames, userValueType, delegationMask, scopeMask }); return((System.Data.DataSet)(results[0])); }
/// <summary> /// 查询指定人员,在指定应用,指定角色中所拥有的服务范围 /// </summary> /// <param name="userValue">用户身份标识(由userValueType参数指定类型)</param> /// <param name="appCodeName">应用的英文标识</param> /// <param name="funcCodeNames">功能的英文标识,多个时用逗号分隔</param> /// <param name="userValueType">用户身份标识类型(UserValueType.LogonName:登录名, UserValueType.AllPath:全路径)</param> /// <param name="delegationMask">委派类型</param> /// <param name="scopeMask">服务范围类型</param> /// <returns></returns> public static DataSet GetUserFunctionsScopes(string userValue, string appCodeName, string funcCodeNames, UserValueType userValueType, DelegationMaskType delegationMask, ScopeMaskType scopeMask) { string cacheKey = InnerCacheHelper.BuildCacheKey(userValue, appCodeName, funcCodeNames, userValueType, delegationMask, scopeMask); DataSet result; //if (false == GetUserFunctionsScopesQueue.Instance.TryGetValue(cacheKey, out result)) //{ // lock (typeof(GetUserFunctionsScopesQueue))//.CacheQueueSync) // { if (false == GetUserFunctionsScopesQueue.Instance.TryGetValue(cacheKey, out result)) { using (DbContext context = DbContext.GetContext(CommonResource.AppConnAlias)) { string strUserIDs = string.Empty; strUserIDs = GetUserGuids(userValue, userValueType); if (userValueType == UserValueType.AllPath) { result = GetUserFunctionsScopes(strUserIDs, userValue, appCodeName, funcCodeNames, delegationMask, scopeMask); } else { result = GetUserFunctionsScopes(strUserIDs, string.Empty, appCodeName, funcCodeNames, delegationMask, scopeMask); } } GetUserFunctionsScopesQueue.Instance.Add(cacheKey, result, InnerCacheHelper.PrepareDependency()); } // } //} return result; }