Пример #1
0
        /// <summary>
        /// 获得用户sourceID在角色roleID委派中的被委派对象的显示名称
        /// </summary>
        /// <param name="xmlDoc"></param>
        protected void GetRoleDelegationUser(XmlDocument xmlDoc)
        {
            using (DbContext context = DbContext.GetContext(AppResource.ConnAlias))
            {
                string strSourceID = xmlDoc.DocumentElement.GetAttribute("sourceID");
                string strRoleID   = xmlDoc.DocumentElement.GetAttribute("roleID");

                string strSQL = "SELECT TARGET_ID, START_TIME, END_TIME FROM DELEGATIONS WHERE SOURCE_ID = "
                                + TSqlBuilder.Instance.CheckQuotationMark(strSourceID, true)
                                + " AND ROLE_ID = " + TSqlBuilder.Instance.CheckQuotationMark(strRoleID, true);

                DataSet ds = InnerCommon.ExecuteDataset(strSQL);
                _XmlResult = InnerCommon.GetXmlDoc(ds);

                string strTargetID = string.Empty;

                if (ds.Tables[0].Rows.Count != 0)
                {
                    strTargetID = ds.Tables[0].Rows[0]["TARGET_ID"].ToString();
                }

                if (strTargetID != string.Empty)
                {
                    ds = OGUReader.GetObjectsDetail("USERS", strTargetID,
                                                    SearchObjectColumn.SEARCH_GUID, string.Empty, SearchObjectColumn.SEARCH_NULL);
                    string strDisplayName = ds.Tables[0].Rows[0]["DISPLAY_NAME"].ToString();

                    XmlHelper.AppendNode <string>(_XmlResult.DocumentElement.SelectSingleNode("DELEGATIONS"),
                                                  "TARGET_DISPLAYNAME", strDisplayName);
                }
            }
        }
Пример #2
0
        private void InitPageObject()
        {
            XmlDocument xmlDoc = this.GetXMLDocument("OrgAttribute");
            XmlElement  root   = xmlDoc.DocumentElement;

            XmlElement classElem = (XmlElement)root.SelectSingleNode("Attributes[@NAME=\"ORG_CLASS\"]");

            foreach (XmlElement itemElem in classElem.ChildNodes)
            {
                ORG_CLASS.Items.Add(new ListItem(itemElem.GetAttribute("NAME"), itemElem.GetAttribute("ID")));
            }

            XmlElement typeElem = (XmlElement)root.SelectSingleNode("Attributes[@NAME=\"ORG_TYPE\"]");

            foreach (XmlElement itemElem in typeElem.ChildNodes)
            {
                ORG_TYPE.Items.Add(new ListItem(itemElem.GetAttribute("NAME"), itemElem.GetAttribute("ID")));
            }
            ORG_TYPE.SelectedIndex = 1;

            DataSet ds = OGUReader.GetRankDefine(1, 1);

            RANK_CODE.DataSource     = new DataView(ds.Tables[0]);
            RANK_CODE.DataTextField  = "NAME";
            RANK_CODE.DataValueField = "CODE_NAME";
            RANK_CODE.DataBind();
            RANK_CODE.Items.Insert(0, new ListItem("--", string.Empty));
        }
Пример #3
0
        private void GetUsersInGroupsInPage()
        {
            XmlElement root          = _XmlRequest.DocumentElement;
            string     strGroupGuid  = root.GetAttribute("GUID");
            string     strAttrs      = OGUCommonDefine.CombinateAttr(root.GetAttribute("extAttr"));
            int        iPageNo       = Convert.ToInt32(root.GetAttribute("PageNo"));
            int        iPageSize     = Convert.ToInt32(root.GetAttribute("PageSize"));
            string     strSortColumn = root.GetAttribute("PageSort");
            string     strSearchName = root.GetAttribute("SearchName");

            DataSet ds = OGUReader.GetUsersInGroups(strGroupGuid,
                                                    SearchObjectColumn.SEARCH_GUID,
                                                    strSearchName,
                                                    strSortColumn,
                                                    strAttrs,
                                                    iPageNo,
                                                    iPageSize);

            _XmlResult = InnerCommon.GetXmlDocAttr(ds.Tables[0], "OBJECTCLASS");

            _XmlResult.DocumentElement.SetAttribute("GetCount",
                                                    OGUReader.GetUsersInGroups(strGroupGuid,
                                                                               SearchObjectColumn.SEARCH_GUID,
                                                                               strSearchName,
                                                                               strSortColumn,
                                                                               0,
                                                                               0).Tables[0].Rows.Count.ToString());
        }
Пример #4
0
        private void InitPageObject()
        {
            using (DbContext context = DbContext.GetContext(AccreditResource.ConnAlias))
            {
                DataSet ds = OGUReader.GetRankDefine(2, 1);

                USER_RANK_SEARCH.DataSource     = new DataView(ds.Tables[0]);
                USER_RANK_SEARCH.DataTextField  = "NAME";
                USER_RANK_SEARCH.DataValueField = "CODE_NAME";
                USER_RANK_SEARCH.DataBind();
                USER_RANK_SEARCH.Items.Insert(0, new ListItem("--", ""));

                USER_RANK.DataSource     = new DataView(ds.Tables[0]);
                USER_RANK.DataTextField  = "NAME";
                USER_RANK.DataValueField = "CODE_NAME";
                USER_RANK.DataBind();
                USER_RANK.Items.Insert(0, new ListItem("--", ""));

                ds = OGUReader.GetRankDefine(1, 1);
                ORGANIZATION_RANK_SEARCH.DataSource     = new DataView(ds.Tables[0]);
                ORGANIZATION_RANK_SEARCH.DataTextField  = "NAME";
                ORGANIZATION_RANK_SEARCH.DataValueField = "CODE_NAME";
                ORGANIZATION_RANK_SEARCH.DataBind();
                ORGANIZATION_RANK_SEARCH.Items.Insert(0, new ListItem("--", ""));
            }
        }
Пример #5
0
        private void AddSidelineObjects(string strOrgGuid)
        {
            string  strObjGuid = (string)GetRequestData("objGuid", string.Empty);
            DataSet ds, orgDs;
            DataRow row;

            ds = OGUReader.GetObjectsDetail("USERS",
                                            strObjGuid,
                                            SearchObjectColumn.SEARCH_USER_GUID,
                                            strOrgGuid,
                                            SearchObjectColumn.SEARCH_GUID);
            ExceptionHelper.TrueThrow((ds == null) || (ds.Tables.Count == 0) || (ds.Tables[0].Rows.Count == 0),
                                      "对不起,系统中没有找到指定的对象!");
            row = ds.Tables[0].Rows[0];

            string strSParentGuid = (string)GetRequestData("SParentGuid", string.Empty);

            orgDs = OGUReader.GetObjectsDetail("ORGANIZATIONS",
                                               strSParentGuid,
                                               SearchObjectColumn.SEARCH_GUID,
                                               string.Empty,
                                               SearchObjectColumn.SEARCH_NULL);

            parentAllPathName.Value = OGUCommonDefine.DBValueToString(orgDs.Tables[0].Rows[0]["ALL_PATH_NAME"]);

            row["ALL_PATH_NAME"] = parentAllPathName.Value + "\\" + OGUCommonDefine.DBValueToString(row["OBJ_NAME"]);
            row["SIDELINE"]      = 1;
            row["CREATE_TIME"]   = row["END_TIME"] = row["START_TIME"] = row["RANK_NAME"] = DBNull.Value;

            userData.Value = InnerCommon.GetXmlDoc(ds).OuterXml;
        }
        //public SearchOrgChildrenCondition(string strRootGuids, string strAttrs, DataAccess da)
        //{
        //    InitSearchOrgChildrenCondition(strRootGuids, strAttrs, da);
        //}

        /// <summary>
        /// 构造函数(构造数据对象查询条件)
        /// </summary>
        /// <param name="strRootValues">指定的机构标识(多个之间采用“,”分隔)</param>
        /// <param name="soc">查询要求的查询列名称
        /// (GUID、USER_GUID、LOGON_NAME、ORIGINAL_SORT、GLOBAL_SORT、ALL_PATH_NAME)</param>
        /// <param name="strAttrs">要求获取的属性</param>
        public SearchOrgChildrenCondition(string strRootValues, SearchObjectColumn soc, string strAttrs)
        {
            using (DbContext context = DbContext.GetContext(CommonResource.AccreditConnAlias))
            {
                string strRootGuids = string.Empty;
                if (strRootValues.Length > 0 && soc != SearchObjectColumn.SEARCH_GUID)
                {
                    Database database = DatabaseFactory.Create(context);
                    DataSet  ds       = OGUReader.GetObjectsDetail("ORGANIZATIONS",
                                                                   strRootValues,
                                                                   soc,
                                                                   string.Empty,
                                                                   SearchObjectColumn.SEARCH_NULL,
                                                                   string.Empty);

                    foreach (DataRow row in ds.Tables[0].Rows)
                    {
                        if (strRootGuids.Length > 0)
                        {
                            strRootGuids += ",";
                        }

                        strRootGuids += row["GUID"].ToString();
                    }
                }
                else
                {
                    strRootGuids = strRootValues;
                }

                InitSearchOrgChildrenCondition(strRootGuids, strAttrs, string.IsNullOrEmpty(strRootValues) ? true : false);
            }
        }
Пример #7
0
        private static IList <string> GetUserDepartmentsPath(DataTable userTable)
        {
            Dictionary <string, string> allPathDict = new Dictionary <string, string>();

            foreach (DataRow row in userTable.Rows)
            {
                string fullPath = row["ALL_PATH_NAME"].ToString();

                string[] allPath = GetAncestorsFullPath(fullPath);

                foreach (string path in allPath)
                {
                    allPathDict[path] = path;
                }
            }

            List <string> result = new List <string>();

            if (allPathDict.Count > 0)
            {
                string ids = GetAllPathString(allPathDict);

                DataTable deptTable = OGUReader.GetObjectsDetail("ORGANIZATIONS", ids, SearchObjectColumn.SEARCH_ALL_PATH_NAME).Tables[0];

                foreach (DataRow row in deptTable.Rows)
                {
                    result.Add(row["GUID"].ToString());
                }
            }

            return(result);
        }
Пример #8
0
        /// <summary>
        /// 取得填写日志的SQL语句
        /// </summary>
        /// <param name="userLogonName">用户登录名</param>
        /// <param name="winVer">windows版本</param>
        /// <param name="ieVer">IE版本</param>
        /// <param name="hostIP">客户端IP地址</param>
        /// <param name="hostName">客户端机器名</param>
        /// <param name="killInfo">杀毒软件</param>
        /// <param name="status">是否登陆成功</param>
        /// <param name="description">系统说明</param>
        /// <returns>INSERT INTO SYS_USER_LOGON + WHERE ......</returns>
        private static string GetInsertSysSql2(string userLogonName,
                                               string winVer,
                                               string ieVer,
                                               string hostIP,
                                               string hostName,
                                               string killInfo,
                                               string status,
                                               string description)
        {
            DataRow row = OGUReader.GetObjectsDetail("USERS",
                                                     userLogonName,
                                                     SearchObjectColumn.SEARCH_LOGON_NAME).Tables[0].Rows[0];

            string strUserDisplayname = (string)row["DISPLAY_NAME"];
            string strUserGuid        = (string)row["USER_GUID"];
            string strUserAllPathName = (string)row["ALL_PATH_NAME"];

            InsertSqlClauseBuilder ic = new InsertSqlClauseBuilder();

            ic.AppendItem("USER_GUID", strUserGuid);
            ic.AppendItem("USER_DISPLAYNAME", strUserDisplayname);
            ic.AppendItem("USER_DISTINCTNAME", strUserAllPathName);
            ic.AppendItem("USER_LOGONNAME", userLogonName);
            ic.AppendItem("HOST_IP", hostIP);
            ic.AppendItem("HOST_NAME", hostName);
            ic.AppendItem("WINDOWS_VERSION", winVer);
            ic.AppendItem("IE_VERSION", ieVer);
            ic.AppendItem("KILL_VIRUS", killInfo);
            ic.AppendItem("STATUS", status);
            ic.AppendItem("DESCRIPTION", description);

            return(" INSERT INTO SYS_USER_LOGON " + ic.ToSqlString(TSqlBuilder.Instance));
        }
Пример #9
0
        private XmlDocument eventContainer_GroupSortObjects(XmlDocument xmlDoc, Dictionary <object, object> context)
        {
            XmlDocument result;

            XmlElement root         = xmlDoc.DocumentElement;
            string     strGroupGuid = root.GetAttribute("GUID");

            ExceptionHelper.TrueThrow(strGroupGuid == string.Empty, "对不起,没有指定人员组的标识!");

            string strSql = @"
			UPDATE GROUPS
				SET MODIFY_TIME = GETDATE()
			WHERE GUID = {0};"            ;

            strSql = string.Format(strSql, TSqlBuilder.Instance.CheckQuotationMark(strGroupGuid, true));
            int iPageNo   = Convert.ToInt32(root.GetAttribute("PageNo"));
            int iPageSize = Convert.ToInt32(root.GetAttribute("PageSize"));

            StringBuilder builder = new StringBuilder(1024);

            for (int iSort = iPageNo * iPageSize; iSort < root.ChildNodes.Count; iSort++)
            {
                XmlNode elem = root.ChildNodes[iSort];

                string strUserGuid = elem.SelectSingleNode("USER_GUID").InnerText;
                string strOrgGuid  = elem.SelectSingleNode("USER_PARENT_GUID").InnerText;
                ExceptionHelper.TrueThrow(strUserGuid == string.Empty || strOrgGuid == string.Empty, "对不起,存在未指定的用户身份标志!");

                strSql = @"
					UPDATE GROUP_USERS
						SET INNER_SORT = {0}, MODIFY_TIME = GETDATE()
					WHERE GROUP_GUID = {1}
						AND USER_GUID = {2}
						AND USER_PARENT_GUID = {3}
				"                ;

                strSql = string.Format(strSql,
                                       TSqlBuilder.Instance.CheckQuotationMark(iSort.ToString(CommonResource.OriginalSortDefault), true),
                                       TSqlBuilder.Instance.CheckQuotationMark(strGroupGuid, true),
                                       TSqlBuilder.Instance.CheckQuotationMark(strUserGuid, true),
                                       TSqlBuilder.Instance.CheckQuotationMark(strOrgGuid, true));

                builder.Append(strSql + Environment.NewLine);
            }
            InnerCommon.ExecuteNonQuery(strSql);

            DataSet ds = OGUReader.GetUsersInGroups(strGroupGuid,
                                                    SearchObjectColumn.SEARCH_GUID,
                                                    OGUCommonDefine.CombinateAttr(root.GetAttribute("extAttr")),
                                                    string.Empty,
                                                    SearchObjectColumn.SEARCH_NULL,
                                                    string.Empty,
                                                    (int)ListObjectDelete.COMMON);


            result = this.GetXmlDocAttr(ds.Tables[0], "OBJECTCLASS");

            return(result);
        }
Пример #10
0
        private static IList <string> PrepareUserDepartmentIDs(string userID)
        {
            List <string> deptIds = new List <string>();

            DataTable table = OGUReader.GetObjectsDetail("USERS", userID, SearchObjectColumn.SEARCH_GUID, string.Empty, SearchObjectColumn.SEARCH_NULL, "RANK_CODE").Tables[0];

            return(GetUserDepartmentsPath(table));
        }
Пример #11
0
        private void InitPageObject()
        {
            DataSet ds = OGUReader.GetRankDefine(2, 1);

            RANK_CODE.DataSource     = new DataView(ds.Tables[0]);
            RANK_CODE.DataTextField  = "NAME";
            RANK_CODE.DataValueField = "CODE_NAME";
            RANK_CODE.DataBind();
            RANK_CODE.Items.Insert(0, new ListItem("--", string.Empty));
        }
Пример #12
0
        private void InsertObjects(string strOrgGuid)
        {
            DataSet ds = OGUReader.GetObjectsDetail("ORGANIZATIONS",
                                                    strOrgGuid,
                                                    SearchObjectColumn.SEARCH_GUID,
                                                    string.Empty,
                                                    SearchObjectColumn.SEARCH_NULL);

            parentAllPathName.Value = OGUCommonDefine.DBValueToString(ds.Tables[0].Rows[0]["ALL_PATH_NAME"]);
        }
Пример #13
0
        /// <summary>
        /// 根据查询条件获取系统中符合条件的数据对象
        /// </summary>
        ///
        //2009-05-08
        private void QueryOGUByCondition2()
        {
            XmlNode root         = _XmlRequest.DocumentElement.FirstChild;
            string  strRootOrg   = XmlHelper.GetSingleNodeValue <string>(root, "ALL_PATH_NAME", string.Empty);
            string  strLikeName  = XmlHelper.GetSingleNodeValue <string>(root, "name", "*");
            bool    bFirstPerson = (root.SelectSingleNode("firstPerson") != null);

            string strOrgAccessRankCN  = string.Empty;
            string strUserAccessRankCN = string.Empty;
            int    iQueryType          = (int)ListObjectType.GROUPS;

            if (root.SelectSingleNode("USERS") != null)
            {
                iQueryType          = (int)(ListObjectType.USERS | ListObjectType.SIDELINE);
                strUserAccessRankCN = XmlHelper.GetSingleNodeValue <string>(root, "RANK_CODE", string.Empty);
            }
            else
            {
                if (root.SelectSingleNode("ORGANIZATIONS") != null)
                {
                    iQueryType         = (int)ListObjectType.ORGANIZATIONS;
                    strOrgAccessRankCN = XmlHelper.GetSingleNodeValue <string>(root, "RANK_CODE", string.Empty);
                }
            }

            string strAttr = OGUCommonDefine.CombinateAttr(string.Empty);

            using (DbContext context = DbContext.GetContext(AccreditResource.ConnAlias))
            {
                string strOrgGuid = string.Empty;
                string strSql     = string.Empty;

                if (strRootOrg.Length > 0)
                {
                    strSql = "SELECT GUID FROM ORGANIZATIONS WHERE ALL_PATH_NAME = "
                             + TSqlBuilder.Instance.CheckQuotationMark(strRootOrg, true);
                    Database database = DatabaseFactory.Create(context);

                    object obj = database.ExecuteScalar(CommandType.Text, strSql);

                    ExceptionHelper.TrueThrow(obj == null, "系统中没有找到指定的根对象(“" + strRootOrg + "”)!");

                    strOrgGuid = obj.ToString();
                }
                else
                {
                    strOrgGuid = OGUCommonDefine.DBValueToString(OGUReader.GetRootDSE().Tables[0].Rows[0]["GUID"]);
                }

                DataSet ds = OGUReader.QueryOGUByCondition2(strOrgGuid, SearchObjectColumn.SEARCH_GUID, strLikeName, true,
                                                            strAttr, iQueryType, ListObjectDelete.COMMON, 0, string.Empty, -1);
                _XmlResult = InnerCommon.GetXmlDocAttr(ds.Tables[0], "OBJECTCLASS");
                Debug.WriteLine(_XmlResult.OuterXml, "Result");
            }
        }
Пример #14
0
        /// <summary>
        /// 获得用户的全名称
        /// </summary>
        /// <param name="xmlDoc"></param>
        /// <remarks>
        /// <code>
        ///	<getUserAllPathName guid="dddd"></getUserdisplayName>
        /// </code>
        /// </remarks>
        protected void GetUserAllPathName(XmlDocument xmlDoc)
        {
            string strUserGuid = xmlDoc.DocumentElement.GetAttribute("guid");

            DataSet ds = OGUReader.GetObjectsDetail("USERS", strUserGuid);

            string strAllPathName = ds.Tables[0].Rows[0]["ALL_PATH_NAME"].ToString();

            _XmlResult.LoadXml("<DataSet />");
            _XmlResult.DocumentElement.SetAttribute("allPathName", strAllPathName);
        }
Пример #15
0
        /// <summary>
        ///
        /// </summary>
        private void GetSecretariesOfLeaders()
        {
            XmlElement root          = _XmlRequest.DocumentElement;
            string     strLeaderGuid = root.GetAttribute("GUID");
            string     strAttrs      = OGUCommonDefine.CombinateAttr(root.GetAttribute("extAttr"));

            DataSet ds = OGUReader.GetSecretariesOfLeaders(strLeaderGuid,
                                                           SearchObjectColumn.SEARCH_GUID,
                                                           strAttrs,
                                                           (int)ListObjectDelete.COMMON);

            _XmlResult = InnerCommon.GetXmlDocAttr(ds.Tables[0], "OBJECTCLASS");
        }
Пример #16
0
        /// <summary>
        /// 查询userID在应用的角色中存在的所有应用
        /// </summary>
        /// <param name="xmlDoc"></param>
        /// <remarks>
        ///	<code>
        ///	<getDelegationApps logonName="userlogonname" idType="logonName" appID="application_id"></getDelegationApps>
        /// </code>
        /// </remarks>
        protected void GetDelegationApplications(XmlDocument xmlDoc)
        {
            string strLogonName = xmlDoc.DocumentElement.GetAttribute("logonName");

            DataSet ds = SecurityCheck.GetUserApplicationsForDelegation(strLogonName, UserValueType.LogonName, RightMaskType.All);

            _XmlResult = InnerCommon.GetXmlDoc(ds);

            ds = OGUReader.GetObjectsDetail("USERS", strLogonName, SearchObjectColumn.SEARCH_LOGON_NAME,
                                            string.Empty, SearchObjectColumn.SEARCH_NULL);
            string strDisplayName = ds.Tables[0].Rows[0]["DISPLAY_NAME"].ToString();

            _XmlResult.DocumentElement.SetAttribute("displayName", strDisplayName);
        }
Пример #17
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            Response.Cache.SetNoStore();

            string strUserGuid = (string)GetRequestData("Guid", string.Empty);

            ExceptionHelper.TrueThrow(strUserGuid == string.Empty, "对不起,没有指定确定的用户!");
            DataSet ds = OGUReader.GetObjectsDetail("USERS", strUserGuid);

            rsUserMessDetail.Value = OGUReader.GetLevelSortXmlDocAttr(ds.Tables[0],
                                                                      "GLOBAL_SORT",
                                                                      "OBJECTCLASS",
                                                                      Properties.AccreditResource.OriginalSortDefault.Length).OuterXml;
        }
Пример #18
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            Response.Cache.SetNoStore();

            string strParentGuid = (string)GetRequestData("parentGuid", string.Empty).ToString();

            string strOPType = (string)GetRequestData("opType", string.Empty);

            ExceptionHelper.TrueThrow(strOPType == string.Empty, "对不起,系统传输数据缺少“opType”!");

            if (false == IsPostBack)
            {
                using (DbContext context = DbContext.GetContext(AccreditResource.ConnAlias))
                {
                    InitPageObject();
                    switch (strOPType)
                    {
                    case "Update":
                        string strObjGuid = (string)GetRequestData("objGuid", string.Empty);
                        ExceptionHelper.TrueThrow(string.IsNullOrEmpty(strObjGuid), "对不起,系统传输数据缺少“objGuid”!");
                        DataSet ds = OGUReader.GetObjectsDetail("ORGANIZATIONS",
                                                                strObjGuid,
                                                                SearchObjectColumn.SEARCH_GUID,
                                                                strParentGuid,
                                                                SearchObjectColumn.SEARCH_GUID);
                        ExceptionHelper.TrueThrow((ds == null) || (ds.Tables.Count == 0) || (ds.Tables[0].Rows.Count == 0),
                                                  "对不起,系统中没有找到指定的对象!");

                        organizationData.Value = InnerCommon.GetXmlDoc(ds).OuterXml;
                        string strAllPathName = OGUCommonDefine.DBValueToString(ds.Tables[0].Rows[0]["ALL_PATH_NAME"]);
                        if (strAllPathName.LastIndexOf("\\") >= 0)
                        {
                            parentAllPathName.Value = strAllPathName.Substring(0, strAllPathName.LastIndexOf("\\"));
                        }
                        break;

                    case "Insert":
                        string strSql = "SELECT ALL_PATH_NAME FROM ORGANIZATIONS WHERE GUID = "
                                        + TSqlBuilder.Instance.CheckQuotationMark(strParentGuid, true);
                        parentAllPathName.Value = InnerCommon.ExecuteScalar(strSql).ToString();
                        break;

                    default: ExceptionHelper.TrueThrow(true, "对不起,系统传输数据“opType”不正确!");
                        break;
                    }
                }
                CheckPermission(strOPType);
            }
        }
Пример #19
0
        private static IList <string> PrepareUserGroupIDs(string userID)
        {
            List <string> groupIds = new List <string>();

            DataTable table = OGUReader.GetGroupsOfUsers(userID, SearchObjectColumn.SEARCH_GUID, string.Empty, SearchObjectColumn.SEARCH_GUID, string.Empty).Tables[0];

            foreach (DataRow row in table.Rows)
            {
                if (groupIds.Exists(id => id == row["GUID"].ToString()) == false)
                {
                    groupIds.Add(row["GUID"].ToString());
                }
            }

            return(groupIds);
        }
Пример #20
0
        /// <summary>
        ///
        /// </summary>
        private void GetObjectsDetail()
        {
            XmlElement         root         = _XmlRequest.DocumentElement;
            string             strValueType = root.GetAttribute("valueType");
            SearchObjectColumn soc          = OGUCommonDefine.GetSearchObjectColumn(strValueType);

            string strValue   = root.GetAttribute("oValues");
            string strExtAttr = root.GetAttribute("extAttrs");

            DataSet ds = OGUReader.GetObjectsDetail(string.Empty, strValue, soc, string.Empty, SearchObjectColumn.SEARCH_NULL, strExtAttr);

            _XmlResult = InnerCommon.GetXmlDocAttr(ds.Tables[0], "OBJECTCLASS");
#if DEBUG
            Debug.WriteLine(_XmlResult.OuterXml, "Result");
#endif
        }
Пример #21
0
        private XmlDocument GetSearchData()
        {
            string strAllColumns = (string)GetFormData("dataColumns", "ALL_PATH_NAME");

            GetXmlParam(strAllColumns);

            string strRootOrgGuid = (string)GetFormData("rootOrganizationGuid", string.Empty);
            int    iDataType      = (int)GetFormData("ExportOrganization", 0) + (int)GetFormData("ExportGroup", 0) + (int)GetFormData("ExportUser", 0);

            if ((int)GetFormData("ExportUser", 0) != 0)
            {
                iDataType += 8;
            }

            DataSet ds = OGUReader.GetOrganizationChildren(strRootOrgGuid,
                                                           SearchObjectColumn.SEARCH_GUID,
                                                           iDataType,
                                                           (int)ListObjectDelete.COMMON,
                                                           0,
                                                           string.Empty,
                                                           string.Empty,
                                                           strAllColumns);

            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc = OGUReader.GetLevelSortXmlDocAttr(ds.Tables[0],
                                                      "GLOBAL_SORT",
                                                      "OBJECTCLASS",
                                                      AccreditResource.OriginalSortDefault.Length);
            XmlElement root       = xmlDoc.DocumentElement;
            string     strRootOrg = root.FirstChild.Attributes["ALL_PATH_NAME"].Value;

            if (root.FirstChild.Attributes["OBJECTCLASS"].Value != "ORGANIZATIONS")
            {
                strRootOrg = OGUReader.GetObjectsDetail("ORGANIZATIONS",
                                                        strRootOrgGuid,
                                                        SearchObjectColumn.SEARCH_GUID).Tables[0].Rows[0]["ALL_PATH_NAME"].ToString();
            }

            root.SetAttribute("rootOrg", strRootOrg.Replace("\\", "."));

            xmlResultServer.DocumentContent = xmlDoc.DocumentElement.OuterXml;

            return(xmlDoc);
        }
Пример #22
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="userLogonName"></param>
        /// <param name="strAppName"></param>
        /// <param name="strHostIP"></param>
        /// <param name="strHostName"></param>
        /// <param name="strUrl"></param>
        /// <param name="strGoalID"></param>
        /// <param name="strGoalName"></param>
        /// <param name="strGoalDisplayName"></param>
        /// <param name="strOpType"></param>
        /// <param name="strExplain"></param>
        /// <param name="strOriginalData"></param>
        /// <param name="bOpSucceed"></param>
        /// <returns></returns>
        private static string GetInsertUserSql2(string userLogonName,
                                                string strAppName,
                                                string strHostIP,
                                                string strHostName,
                                                string strUrl,
                                                string strGoalID,
                                                string strGoalName,
                                                string strGoalDisplayName,
                                                string strOpType,
                                                string strExplain,
                                                string strOriginalData,
                                                bool bOpSucceed)
        {
            DataRow row = OGUReader.GetObjectsDetail("USERS",
                                                     userLogonName,
                                                     SearchObjectColumn.SEARCH_LOGON_NAME).Tables[0].Rows[0];

            string strUserDisplayname = (string)row["DISPLAY_NAME"];
            string strUserGuid        = (string)row["USER_GUID"];
            string strUserAllPathName = (string)row["ALL_PATH_NAME"];

            InsertSqlClauseBuilder ic = new InsertSqlClauseBuilder();

            ic.AppendItem("OP_USER_DISPLAYNAME", strUserDisplayname);
            ic.AppendItem("OP_USER_GUID", strUserGuid);
            ic.AppendItem("OP_USER_DISTINCTNAME", strUserAllPathName);
            ic.AppendItem("OP_USER_LOGONNAME", userLogonName);
            ic.AppendItem("HOST_IP", strHostIP);
            ic.AppendItem("HOST_NAME", strHostName);
            ic.AppendItem("APP_GUID", GetGuidByType(strAppName, "", "CODE_NAME"));
            //ic.AppendItem("APP_GUID", strAppName);
            ic.AppendItem("OP_URL", strUrl);
            ic.AppendItem("GOAL_ID", strGoalID);
            ic.AppendItem("GOAL_NAME", strGoalName);
            ic.AppendItem("GOAL_DISNAME", strGoalDisplayName);
            ic.AppendItem("OP_GUID", GetGuidByType(strAppName, strOpType, "CODE_NAME"));
            //ic.AppendItem("OP_GUID", strAppName);
            ic.AppendItem("GOAL_EXPLAIN", strExplain);
            ic.AppendItem("ORIGINAL_DATA", strOriginalData);
            ic.AppendItem("LOG_SUCCED", bOpSucceed ? "y" : "n");

            return(" INSERT INTO USER_OPEATION_LOG " + ic.ToSqlString(TSqlBuilder.Instance));
        }
Пример #23
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            Response.Cache.SetNoStore();

            string strGroupGuid = (string)GetRequestData("Guid", string.Empty);

            ExceptionHelper.TrueThrow(strGroupGuid == string.Empty, "对不起,没有确定的人员组标识!");
            LeaderGuid.Value = strGroupGuid;

            DataSet ds = OGUReader.GetObjectsDetail("USERS",
                                                    strGroupGuid,
                                                    SearchObjectColumn.SEARCH_USER_GUID,
                                                    string.Empty,
                                                    SearchObjectColumn.SEARCH_NULL);

            LeaderDisplayName.Text = OGUCommonDefine.DBValueToString(ds.Tables[0].Rows[0]["DISPLAY_NAME"]);

            userPermission.Value = classLib.OGUUserPermission.GetOGUPemission();
        }
Пример #24
0
        /// <summary>
        /// 根据查询条件查询系统中符合条件的所有对象
        /// </summary>
        private void QueryObjForOGUInput()
        {
            XmlElement root        = (XmlElement)_XmlRequest.DocumentElement.FirstChild;
            string     strLikeName = root.GetAttribute("likeName");

            ExceptionHelper.TrueThrow(strLikeName.Length == 0, "对不起,查询条件不能为空!");

            int    iListType       = 0;
            string strQueryObjMask = root.GetAttribute("queryObjMask");

            if (strQueryObjMask.Length == 0)
            {
                iListType = (int)ListObjectType.USERS;
            }
            else
            {
                iListType = int.Parse(strQueryObjMask);
            }

            string strRootOrg = root.GetAttribute("rootOrg");

            if (strRootOrg.Length == 0)
            {
                strRootOrg = AccreditSection.GetConfig().AccreditSettings.OguRootName;
            }

            string strOrgAccessLevel  = root.GetAttribute("orgAccessLevel");
            string strUserAccesslevel = root.GetAttribute("userAccessLevel");
            string strAttr            = root.GetAttribute("extAttr");

            DataSet ds = OGUReader.QueryOGUByCondition(strRootOrg,
                                                       SearchObjectColumn.SEARCH_ALL_PATH_NAME,
                                                       strLikeName,
                                                       false,
                                                       strOrgAccessLevel,
                                                       strUserAccesslevel,
                                                       strAttr,
                                                       iListType);

            _XmlResult = InnerCommon.GetXmlDocAttr(ds.Tables[0], "OBJECTCLASS");
            Debug.WriteLine(_XmlResult.OuterXml, "Result");
        }
Пример #25
0
        private void UpdateObjects(string strOrgGuid)
        {
            string strObjGuid = (string)GetRequestData("objGuid", string.Empty);

            DataSet ds = OGUReader.GetObjectsDetail("USERS",
                                                    strObjGuid,
                                                    SearchObjectColumn.SEARCH_USER_GUID,
                                                    strOrgGuid,
                                                    SearchObjectColumn.SEARCH_GUID);

            ExceptionHelper.TrueThrow((ds == null) || (ds.Tables.Count == 0) || (ds.Tables[0].Rows.Count == 0),
                                      "对不起,系统中没有找到指定的对象!");

            userData.Value = InnerCommon.GetXmlDoc(ds).OuterXml;
            string strAllPathName = OGUCommonDefine.DBValueToString(ds.Tables[0].Rows[0]["ALL_PATH_NAME"]);

            if (strAllPathName.LastIndexOf("\\") >= 0)
            {
                parentAllPathName.Value = strAllPathName.Substring(0, strAllPathName.LastIndexOf("\\"));
            }
        }
Пример #26
0
        //public SearchOrgChildrenCondition(string strRootValues, SearchObjectColumn soc, string strAttrs, DataAccess da)
        //{
        //    string strRootGuids = string.Empty;
        //    if (strRootValues.Length > 0 && soc != SearchObjectColumn.SEARCH_GUID)
        //    {
        //			DataSet ds = OGUReader.GetObjectsDetail("ORGANIZATIONS",
        //				strRootValues,
        //				soc,
        //				string.Empty,
        //				SearchObjectColumn.SEARCH_NULL,
        //				string.Empty,
        //				da);
        //        foreach (DataRow row in ds.Tables[0].Rows)
        //        {
        //            if (strRootGuids.Length > 0)
        //                strRootGuids += ",";
        //            strRootGuids += XmlHelper.DBValueToString(row["GUID"]);
        //        }
        //    }
        //    else
        //        strRootGuids = strRootValues;

        //    InitSearchOrgChildrenCondition(strRootGuids, strAttrs, da);
        //}

        #endregion

        #region Private Function Define
        private void InitSearchOrgChildrenCondition(string strRootGuids, string strAttrs, bool isNeedDefault)
        {
            using (DbContext context = DbContext.GetContext(CommonResource.AccreditConnAlias))
            {
                Database database = DatabaseFactory.Create(context);
                if (0 == strRootGuids.Length && true == isNeedDefault)
                {
                    strRootGuids = OGUReader.GetRootDSE().Tables[0].Rows[0]["GUID"].ToString();
                }

                string[] strRoots = strRootGuids.Split(',');
                _HashRoot = new SortedList <string, string>();               // new Hashtable();
                for (int i = 0; i < strRoots.Length; i++)
                {
                    _HashRoot.Add(strRoots[i], strRoots[i]);
                }

                strAttrs     = OGUCommonDefine.CombinateAttr(strAttrs);
                _StrObjAttrs = strAttrs;
            }
        }
Пример #27
0
        /// <summary>
        /// 得到用户在某个应用下的角色
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="appCodeName"></param>
        /// <param name="rightMask"></param>
        /// <returns></returns>
        public static DataSet GetUserAppRoles(
            string userID,
            string appCodeName,
            RightMaskType rightMask)
        {
            IList <string> deptIDs         = PrepareUserDepartmentIDs(userID);
            DataTable      tableExpression = GetAllExpressionsInApp(appCodeName, rightMask);

            ExpContext context = new ExpContext();

            DataTable userTable = OGUReader.GetObjectsDetail("USERS", userID, SearchObjectColumn.SEARCH_GUID, string.Empty, SearchObjectColumn.SEARCH_NULL, "RANK_CODE").Tables[0];

            ExceptionHelper.FalseThrow(userTable.Rows.Count > 0, "不能找到User ID为{0}的用户信息", userID);

            context.UserRow    = userTable.Rows[0];
            context.UserDepts  = deptIDs;
            context.RankDefine = OGUReader.GetRankDefine(2).Tables[0].Rows;
            context.UserGroups = PrepareUserGroupIDs(userID);

            return(GetUserRolesDS(tableExpression, context));
        }
Пример #28
0
        private bool IsObjectIsIncludeInObjects(string strObjType, string strObjValue, SearchObjectColumn soc, DataSet objsDs)
        {
            DataSet oDs = OGUReader.GetObjectsDetail(strObjType, strObjValue, soc, string.Empty, SearchObjectColumn.SEARCH_NULL);

            foreach (DataRow oRow in oDs.Tables[0].Rows)
            {
                string strObjAllPathName = OGUCommonDefine.DBValueToString(oRow["ALL_PATH_NAME"]);
                foreach (DataRow sRow in objsDs.Tables[0].Rows)
                {
                    string[] strArry = OGUCommonDefine.DBValueToString(sRow["DESCRIPTION"]).Split(',', ';', ' ');
                    foreach (string strValue in strArry)
                    {
                        if (strValue.Length <= strObjAllPathName.Length && strValue.Length >= 0 && strObjAllPathName.Substring(0, strValue.Length) == strValue)
                        {
                            return(true);
                        }
                    }
                }
            }

            return(false);
        }
Пример #29
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            if (false == IsPostBack)
            {
                using (DbContext context = DbContext.GetContext(AccreditResource.ConnAlias))
                {
                    DataSet ds = OGUReader.GetRankDefine(1, 1);
                    orgSelectAccessLevel.DataSource     = new DataView(ds.Tables[0]);
                    orgSelectAccessLevel.DataTextField  = "NAME";
                    orgSelectAccessLevel.DataValueField = "CODE_NAME";
                    orgSelectAccessLevel.DataBind();
                    orgSelectAccessLevel.Items.Insert(0, new ListItem("--", string.Empty));

                    ds = OGUReader.GetRankDefine(2, 1);
                    userSelectAccessLevel.DataSource     = new DataView(ds.Tables[0]);
                    userSelectAccessLevel.DataTextField  = "NAME";
                    userSelectAccessLevel.DataValueField = "CODE_NAME";
                    userSelectAccessLevel.DataBind();
                    userSelectAccessLevel.Items.Insert(0, new ListItem("--", string.Empty));
                }
            }
        }
Пример #30
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            Response.Cache.SetNoStore();

            string strGroupGuid = (string)GetRequestData("Guid", string.Empty);

            ExceptionHelper.TrueThrow(strGroupGuid == string.Empty, "对不起,没有确定的人员组标识!");

            groupGuid.Value = strGroupGuid;

            using (DbContext context = DbContext.GetContext(AccreditResource.ConnAlias))
            {
                DataSet ds = OGUReader.GetObjectsDetail("GROUPS",
                                                        strGroupGuid,
                                                        SearchObjectColumn.SEARCH_GUID,
                                                        string.Empty,
                                                        SearchObjectColumn.SEARCH_NULL);
                GroupDisplayName.Text = OGUCommonDefine.DBValueToString(ds.Tables[0].Rows[0]["DISPLAY_NAME"]);

                userPermission.Value = classLib.OGUUserPermission.GetOGUPemission();
            }
            txtPageSize.Value = AccreditSection.GetConfig().AccreditSettings.GroupUsersPageSize.ToString();
        }