コード例 #1
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            Response.Cache.SetNoStore();

            string strUserGuid = GetRequestData("userGuid", string.Empty).ToString();

            if (strUserGuid.Trim().Length == 0)
            {
                strUserGuid = LogOnUserInfo.UserGuid;
            }
            ExceptionHelper.FalseThrow(strUserGuid == LogOnUserInfo.UserGuid, "对不起,用户只能自己来修改口令!");

            UserGuid.Value     = strUserGuid;
            userName.InnerText = LogOnUserInfo.OuUsers[0].UserDisplayName;

            if (false == IsPostBack)
            {
                string  strSql = "SELECT GUID, NAME + '(' + VERSION + ')' AS DISPLAYNAME FROM PWD_ARITHMETIC WHERE VISIBLE = 1 ORDER BY SORT_ID";
                DataSet ds     = InnerCommon.ExecuteDataset(strSql);

                DataView dv = new DataView(ds.Tables[0]);

                newPwdType.DataSource     = dv;
                newPwdType.DataTextField  = "DISPLAYNAME";
                newPwdType.DataValueField = "GUID";
                newPwdType.DataBind();

                oldPwdType.DataSource     = dv;
                oldPwdType.DataTextField  = "DISPLAYNAME";
                oldPwdType.DataValueField = "GUID";
                oldPwdType.DataBind();
            }
        }
コード例 #2
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;
        }
コード例 #3
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);
                }
            }
        }
コード例 #4
0
        /// <summary>
        /// 查询某功能与所有角色的对应关系
        /// </summary>
        private void DoQueryFuncToRole()
        {
            XmlElement root      = _XmlRequest.DocumentElement;
            string     strAppID  = root.GetAttribute("app_id");
            string     strFuncID = root.GetAttribute("func_id");

            string strSQL = @"SELECT ID,APP_ID,NAME,CODE_NAME,DESCRIPTION,CLASSIFY,SORT_ID,INHERITED,ALLOW_DELEGATE,{1} AS FUNC_ID 
							FROM ROLES  
							WHERE APP_ID = {0} 
							AND ID IN (SELECT ROLE_ID AS ID FROM ROLE_TO_FUNCTIONS WHERE FUNC_ID = {1})
							AND CLASSIFY = (SELECT CLASSIFY FROM FUNCTIONS WHERE ID = {1}) 

							union all 

							SELECT ID,APP_ID,NAME,CODE_NAME,DESCRIPTION,CLASSIFY,SORT_ID,INHERITED,ALLOW_DELEGATE,'' AS FUNC_ID 
							FROM ROLES  
							WHERE APP_ID = {0} 
							AND ID NOT IN 
							(SELECT ROLE_ID AS ID FROM ROLE_TO_FUNCTIONS WHERE FUNC_ID = {1})
							AND CLASSIFY = (SELECT CLASSIFY FROM FUNCTIONS WHERE ID = {1})
							ORDER BY SORT_ID"                            ;

            strSQL = string.Format(strSQL,
                                   TSqlBuilder.Instance.CheckQuotationMark(strAppID, true),
                                   TSqlBuilder.Instance.CheckQuotationMark(strFuncID, true));
#if DEBUG
            Debug.WriteLine(strSQL.ToString());
#endif
            _XmlResult = InnerCommon.GetXmlDoc(InnerCommon.ExecuteDataset(strSQL));
        }
コード例 #5
0
        private void DoQueryFuncSetToFunc()
        {
            XmlElement root         = _XmlRequest.DocumentElement;
            string     strAppID     = TSqlBuilder.Instance.CheckQuotationMark(root.GetAttribute("app_id"), true);
            string     strFuncSetID = TSqlBuilder.Instance.CheckQuotationMark(root.GetAttribute("func_set_id"), true);

            string strSQL = @"SELECT FUNC_ID INTO #FUNC_IDS
								FROM FUNC_SET_TO_FUNCS
								WHERE FUNC_SET_ID = {0};
								SELECT FUNC_ID INTO #FUNC_IDS2 FROM FUNC_SET_TO_FUNCS
								WHERE FUNC_ID IN (SELECT ID FROM FUNCTIONS WHERE APP_ID = {1});

								SELECT *, 0 AS TYPE, {0} AS FUNC_SET_ID  FROM FUNCTIONS
								WHERE ID IN (SELECT * FROM #FUNC_IDS)
								AND APP_ID = {1}
								AND CLASSIFY = (SELECT CLASSIFY FROM FUNCTION_SETS WHERE ID = {0})
								UNION ALL
								SELECT *, 0 AS TYPE, '' AS FUNC_SET_ID FROM FUNCTIONS
								WHERE ID NOT IN (SELECT * FROM #FUNC_IDS2)
								AND APP_ID = {1}
								AND CLASSIFY = (SELECT CLASSIFY FROM FUNCTION_SETS WHERE ID = {0})
								ORDER BY FUNC_SET_ID DESC, SORT_ID"                                ;

            strSQL     = string.Format(strSQL, strFuncSetID, strAppID);
            _XmlResult = InnerCommon.GetXmlDoc(InnerCommon.ExecuteDataset(strSQL));
        }
コード例 #6
0
        private void DoQueryExpScope()
        {
            XmlElement root     = _XmlRequest.DocumentElement;
            string     strAppID = TSqlBuilder.Instance.CheckQuotationMark(root.GetAttribute("app_id"), true);
            string     strExpID = TSqlBuilder.Instance.CheckQuotationMark(root.GetAttribute("exp_id"), true);

            string strSQL = @"SELECT SCOPE_ID INTO #SCOPE_IDS
							FROM EXP_TO_SCOPES 
							WHERE EXP_ID = {1}


							SELECT * , {1} AS EXP_ID
							FROM SCOPES 
							WHERE APP_ID = {0}
							AND ID IN (SELECT * FROM #SCOPE_IDS)
							UNION ALL
							SELECT * , '' AS EXP_ID
							FROM SCOPES 
							WHERE APP_ID = {0}
							AND ID NOT IN (SELECT * FROM #SCOPE_IDS)
							ORDER BY EXP_ID DESC, DESCRIPTION "                            ;

            strSQL     = string.Format(strSQL, strAppID, strExpID);
            _XmlResult = InnerCommon.GetXmlDoc(InnerCommon.ExecuteDataset(strSQL));
        }
コード例 #7
0
        protected void DoQueryObj()
        {
            XmlElement root     = _XmlRequest.DocumentElement;
            string     strTable = root.GetAttribute("type");
            string     strAppID = root.GetAttribute("app_id");
            string     strObjID = root.GetAttribute("id");

            string strAnd;

            if (strTable == "APPLICATIONS")
            {
                strAnd = string.Empty;
            }
            else
            {
                strAnd = string.Format(" AND APP_ID = {0}", TSqlBuilder.Instance.CheckQuotationMark(strAppID, true));
            }

            string strSQL = @"SELECT * 
							FROM {0} 
							WHERE ID = {1} 
							{2}"                            ;

            strSQL = string.Format(strSQL, strTable, TSqlBuilder.Instance.CheckQuotationMark(strObjID, true), strAnd);

            _XmlResult = InnerCommon.GetXmlDoc(InnerCommon.ExecuteDataset(strSQL));
        }
コード例 #8
0
ファイル: OGUEditer.aspx.cs プロジェクト: wooln/AK47Source
        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());
        }
コード例 #9
0
        private void InsertOrgOrGroups(DataRow oRow, string strObjClass)
        {
            string  strParent, strSelfAllPathName, strRootGuid, strInnerSort;
            DataRow row = PrepareForInsert(oRow, out strParent, out strSelfAllPathName, out strRootGuid, out strInnerSort);

            string strGuid            = Guid.NewGuid().ToString();
            InsertSqlClauseBuilder ic = new InsertSqlClauseBuilder();

            ic.AppendItem("GUID", strGuid);
            ic.AppendItem("PARENT_GUID", strRootGuid);

            for (int i = 2; i < oRow.Table.Columns.Count; i++)
            {
                string strRealColumnName = _DataColumns[ContainsValue(2, oRow.Table.Columns[i].ColumnName)][0];
                if (strRealColumnName == "NAME" && strObjClass == "ORGANIZATIONS")
                {
                    ic.AppendItem("RANK_CODE", GetRankCode(strObjClass, (string)oRow[i]));
                }
                else
                {
                    if (strRealColumnName == "GUID" || strRealColumnName.IndexOf("GUID") >= 0)
                    {
                        continue;
                    }
                    else
                    {
                        if (CheckXsdExist(strRealColumnName, strObjClass))
                        {
                            ic.AppendItem(strRealColumnName, oRow[i]);
                        }
                    }
                }
            }

            if (ContainsValue(0, "NAME") < 0 && strObjClass == "ORGANIZATIONS")
            {
                ic.AppendItem("RANK_CODE", GetRankCode(strObjClass, string.Empty));
            }
            if (ContainsValue(0, "ALL_PATH_NAME") < 0)
            {
                ic.AppendItem("ALL_PATH_NAME", strSelfAllPathName);
            }

            ic.AppendItem("INNER_SORT", strInnerSort);
            ic.AppendItem("GLOBAL_SORT", OGUCommonDefine.DBValueToString(row["GLOBAL_SORT"]) + strInnerSort);
            ic.AppendItem("ORIGINAL_SORT", OGUCommonDefine.DBValueToString(row["ORIGINAL_SORT"]) + strInnerSort);
            ic.AppendItem("STATUS", "1");

            string strSql = "INSERT INTO " + strObjClass + ic.ToSqlString(TSqlBuilder.Instance) + ";\n";

            _StrBuild.Append(strSql);

            InnerCommon.ExecuteDataset(strSql);

            if (strObjClass == "ORGANIZATIONS")
            {
                _RootHash.Add(strSelfAllPathName, strGuid);
            }
        }
コード例 #10
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");
            }
        }
コード例 #11
0
        /// <summary>
        /// 查询应用(app_id)中包含用户(UserID)的所有角色
        /// </summary>
        /// <param name="xmlDoc"></param>
        /// <remarks>
        /// <code>
        /// <getAppDelegationRoles logonName="userLogonName" appID="app_id" appCodeName="app_code_name"></getAppDelegationRoles>
        /// </code>
        /// </remarks>
        protected void GetAppDelegationRoles(XmlDocument xmlDoc)
        {
            string strLogonName = xmlDoc.DocumentElement.GetAttribute("logonName");

            string strAppCodeName = xmlDoc.DocumentElement.GetAttribute("appCodeName");

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

            _XmlResult = InnerCommon.GetXmlDoc(ds);
        }
コード例 #12
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            string      strXSDPath = Server.MapPath(Request.ApplicationPath) + @"/xsd/";
            XmlDocument sqlXml     = GetXMLDocument("GetDBSchema");

            using (DbContext context = DbContext.GetContext(AccreditResource.ConnAlias))
            {
                string strSqlTable  = sqlXml.DocumentElement.SelectSingleNode("QueryTable").InnerText;
                string strSqlColumn = sqlXml.DocumentElement.SelectSingleNode("QueryColumns").InnerText;

                DataSet dsTables = InnerCommon.ExecuteDataset(strSqlTable);

                foreach (DataRow row in dsTables.Tables[0].Rows)                //each table
                {
                    if (row["opk_id"] is DBNull)
                    {
                        continue;
                    }

                    string strSql = "SELECT TOP 1 * FROM ["
                                    + TSqlBuilder.Instance.CheckQuotationMark(OGUCommonDefine.DBValueToString(row["name"]), false) + "]";
                    DataSet ds = InnerCommon.ExecuteDataset(strSql);

                    XmlDocument xmlDoc = XmlHelper.CreateDomDocument(ds.GetXmlSchema());

                    strSql = string.Format(strSqlColumn,
                                           TSqlBuilder.Instance.CheckQuotationMark(OGUCommonDefine.DBValueToString(row["opk_id"]), true),
                                           TSqlBuilder.Instance.CheckQuotationMark(OGUCommonDefine.DBValueToString(row["id"]), true));

                    DataSet tableInfo = InnerCommon.ExecuteDataset(strSql);

                    foreach (DataRow infoRow in tableInfo.Tables[0].Rows)
                    {
                        XmlElement elem = (XmlElement)InnerCommon.GetXSDColumnNode(xmlDoc, OGUCommonDefine.DBValueToString(infoRow["name"]));
                        elem.SetAttribute("size", OGUCommonDefine.DBValueToString(infoRow["prec"]));
                        elem.SetAttribute("caption", OGUCommonDefine.DBValueToString(infoRow["description"]));
                        elem.SetAttribute("allowNull", OGUCommonDefine.DBValueToString(infoRow["isnullable"]) == "0" ? "false" : "true");
                        elem.SetAttribute("isKey", infoRow["keyno"] is DBNull ? "false" : "true");
                        elem.SetAttribute("imeMode", OGUCommonDefine.DBValueToString(infoRow["type"]).ToUpper() == "NVARCHAR" ? "active" : "inactive");
                    }

                    XmlElement root = xmlDoc.DocumentElement;
                    while (root.FirstChild != null && root.GetAttribute("name") != "Table")
                    {
                        root = (XmlElement)root.FirstChild;
                    }
                    if (root.GetAttribute("name") == "Table")
                    {
                        root.SetAttribute("name", OGUCommonDefine.DBValueToString(row["name"]));
                    }
                    xmlDoc.Save(strXSDPath + OGUCommonDefine.DBValueToString(row["name"]) + ".xsd");
                }
            }
        }
コード例 #13
0
ファイル: SysLogDetail.aspx.cs プロジェクト: wooln/AK47Source
        protected void Page_Load(object sender, System.EventArgs e)
        {
            // 在此处放置用户代码以初始化页面
            string sortID = GetRequestData("sortID", "0").ToString();

            string strSql = @"SELECT * FROM SYS_USER_LOGON WHERE ID = " + TSqlBuilder.Instance.CheckQuotationMark(sortID, true);

            XmlDocument doc = InnerCommon.GetXmlDoc(InnerCommon.ExecuteDataset(strSql));

            SetControlValue(doc.DocumentElement.FirstChild);
        }
コード例 #14
0
        /// <summary>
        /// 查询角色、功能或功能集合的信息
        /// </summary>
        /// <param name="xmlDoc"></param>
        protected void GetObjInfo(XmlDocument xmlDoc)
        {
            XmlElement root         = xmlDoc.DocumentElement;
            string     strTableName = root.GetAttribute("type");
            string     strID        = root.GetAttribute("id");

            string strSQL = "SELECT * FROM " + TSqlBuilder.Instance.CheckQuotationMark(strTableName, false)
                            + " WHERE ID = " + TSqlBuilder.Instance.CheckQuotationMark(strID, true);
            DataSet ds = InnerCommon.ExecuteDataset(strSQL);

            _XmlResult = InnerCommon.GetXmlDoc(ds);
        }
コード例 #15
0
        /// <summary>
        /// 查询某应用下的所有服务范围
        /// </summary>
        private void DoQueryAppScope()
        {
            XmlElement root     = _XmlRequest.DocumentElement;
            string     strAppID = root.GetAttribute("app_id");

            string strSQL = "SELECT ID,APP_ID,NAME,CODE_NAME, EXPRESSION,DESCRIPTION,CLASSIFY,SORT_ID,INHERITED "
                            + " FROM SCOPES "
                            + " WHERE APP_ID = " + TSqlBuilder.Instance.CheckQuotationMark(strAppID, true)
                            + " ORDER BY DESCRIPTION";

            _XmlResult = InnerCommon.GetXmlDoc(InnerCommon.ExecuteDataset(strSQL));
        }
コード例 #16
0
        private void DoQueryRoleToExp()
        {
            using (DbContext context = DbContext.GetContext(AppResource.ConnAlias))
            {
                XmlElement root      = _XmlRequest.DocumentElement;
                string     strAppID  = root.GetAttribute("app_id");
                string     strRoleID = root.GetAttribute("role_id");

                //string strSQL = "SELECT ID, ROLE_ID, NAME, EXPRESSION, DESCRIPTION, SORT_ID, INHERITED, CLASSIFY "
                //    + " FROM EXPRESSIONS "
                //    + " WHERE ROLE_ID = " + TSqlBuilder.Instance.CheckQuotationMark(strRoleID)
                //    + " ORDER BY CLASSIFY DESC, DESCRIPTION, SORT_ID";

                string strSQL = string.Format("SELECT CODE_NAME FROM APPLICATIONS WHERE ID = {0}; SELECT CODE_NAME FROM ROLES WHERE ID={1}",
                                              TSqlBuilder.Instance.CheckQuotationMark(strAppID, true), TSqlBuilder.Instance.CheckQuotationMark(strRoleID, true));
                DataSet ds              = InnerCommon.ExecuteDataset(strSQL);
                string  strAppCodeName  = string.Empty;
                string  strRoleCodeName = string.Empty;
                if (ds.Tables[0].Rows.Count > 0)
                {
                    strAppCodeName = ds.Tables[0].Rows[0]["CODE_NAME"].ToString();
                }
                if (ds.Tables[1].Rows.Count > 0)
                {
                    strRoleCodeName = ds.Tables[1].Rows[0]["CODE_NAME"].ToString();
                }

                //如果不是总管理员,则得到机构管理范围
                string strOrgRoot = string.Empty;
                if (false == SecurityCheck.IsAdminUser(LogOnUserInfo.UserLogOnName))
                {
                    ds = SecurityCheck.GetUserFunctionsScopes(LogOnUserInfo.UserLogOnName, strAppCodeName, "ADD_OBJECT_FUNC,DELETE_OBJECT_FUNC,MODIFY_OBJECT_FUNC");
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        if (strOrgRoot == string.Empty)
                        {
                            strOrgRoot += ds.Tables[0].Rows[i]["DESCRIPTION"].ToString();
                        }
                        else
                        {
                            strOrgRoot += "," + ds.Tables[0].Rows[i]["DESCRIPTION"].ToString();
                        }
                    }
                    if (strOrgRoot == string.Empty)
                    {
                        strOrgRoot = "NoOrgRoot";
                    }
                }
                ds         = SecurityCheck.GetChildrenInRoles(strOrgRoot, strAppCodeName, strRoleCodeName, false, false, false);
                _XmlResult = InnerCommon.GetXmlDoc(ds);
            }
        }
コード例 #17
0
        /// <summary>
        /// 查询某应用下某类型的所有角色
        /// </summary>
        private void DoQueryRole()
        {
            XmlElement root        = _XmlRequest.DocumentElement;
            string     strAppID    = root.GetAttribute("app_id");
            string     strClassify = root.GetAttribute("classify");

            string strSQL = "SELECT ID,APP_ID,NAME,CODE_NAME,DESCRIPTION,CLASSIFY,SORT_ID,INHERITED,ALLOW_DELEGATE "
                            + " FROM ROLES WHERE APP_ID = " + TSqlBuilder.Instance.CheckQuotationMark(strAppID, true)
                            + " AND CLASSIFY = " + TSqlBuilder.Instance.CheckQuotationMark(strClassify, true)
                            + " ORDER BY SORT_ID";

            _XmlResult = InnerCommon.GetXmlDoc(InnerCommon.ExecuteDataset(strSQL));
        }
コード例 #18
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");
        }
コード例 #19
0
        private DataRow PrepareForInsert(DataRow oRow, out string strParent, out string strSelfAllPathName, out string strRootGuid, out string strInnerSort)
        {
            strParent = _RootAllPathName;
            if (ContainsValue(0, "ALL_PATH_NAME") >= 0)
            {
                strSelfAllPathName = (string)oRow[_DataColumns[ContainsValue(0, "ALL_PATH_NAME")][2]];
                strParent          = strSelfAllPathName.Substring(0, strSelfAllPathName.LastIndexOf("\\"));
            }
            else
            {
                strSelfAllPathName = strParent + "\\" + (string)oRow[_DataColumns[ContainsValue(0, "OBJ_NAME")][2]];
            }

            //strRootGuid = (string)_RootHash[strParent];
            //			string strSql = @"
            //				UPDATE ORGANIZATIONS
            //					SET CHILDREN_COUNTER = CHILDREN_COUNTER + 1, MODIFY_TIME = GETDATE()
            //				WHERE GUID = {0} ;
            //
            //				SELECT *
            //				FROM ORGANIZATIONS
            //				WHERE GUID = {0}";
            //
            //			strSql = string.Format(strSql, TSqlBuilder.Instance.CheckQuotationMark(strRootGuid));

            string strSql = @"
				UPDATE ORGANIZATIONS 
					SET CHILDREN_COUNTER = CHILDREN_COUNTER + 1, MODIFY_TIME = GETDATE() 
				WHERE ALL_PATH_NAME = {0} ; 

				SELECT * 
				FROM ORGANIZATIONS 
				WHERE ALL_PATH_NAME = {0}"                ;

            strSql = string.Format(strSql, TSqlBuilder.Instance.CheckQuotationMark(strParent, true));

            DataSet ds = InnerCommon.ExecuteDataset(strSql);

            ExceptionHelper.TrueThrow(((ds == null) || (ds.Tables.Count == 0) || (ds.Tables[0].Rows.Count == 0)), "对不起,系统中没有找到部门对象" + strParent + "!");
            DataRow row             = ds.Tables[0].Rows[0];
            string  strChildCounter = OGUCommonDefine.DBValueToString(row["CHILDREN_COUNTER"]);

            strInnerSort = AccreditResource.OriginalSortDefault.Substring(0, AccreditResource.OriginalSortDefault.Length - strChildCounter.Length) + strChildCounter;
            strRootGuid  = (string)_RootHash[strParent];
            if (string.IsNullOrEmpty(strRootGuid))
            {
                _RootHash.Add(strParent, row["GUID"].ToString());
                strRootGuid = (string)_RootHash[strParent];
            }
            return(row);
        }
コード例 #20
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            // 在此处放置用户代码以初始化页面
            Response.Cache.SetNoStore();
            secFrm.Value = Request.QueryString["secFrm"];

            string strSql = @"SELECT DISTINCT DISPLAYNAME 
					FROM APP_LOG_TYPE 
					WHERE VISIBLE = 'y' 
						AND CODE_NAME <> 'appall' 
					ORDER BY DISPLAYNAME"                    ;

            HiddenXml.DocumentContent = InnerCommon.GetXmlDoc(InnerCommon.ExecuteDataset(strSql)).DocumentElement.OuterXml;
        }
コード例 #21
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);
        }
コード例 #22
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);
            }
        }
コード例 #23
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
        }
コード例 #24
0
        private void CheckAllPathNameInSystem(string strAllPathName)
        {
            string strSql = @"
				SELECT * FROM ORGANIZATIONS WHERE ALL_PATH_NAME = {0};
				SELECT * FROM GROUPS WHERE ALL_PATH_NAME = {0};
				SELECT * FROM OU_USERS WHERE ALL_PATH_NAME = {0};"                ;

            strSql = string.Format(strSql, TSqlBuilder.Instance.CheckQuotationMark(strAllPathName, true));
            DataSet ds = InnerCommon.ExecuteDataset(strSql);

            foreach (DataTable table in ds.Tables)
            {
                ExceptionHelper.TrueThrow(table.Rows.Count > 0,
                                          "对不起,系统中已经存在您命名的对象"" + strAllPathName + ""!\n\n请修改"对象名称"后再保存!");
            }
        }
コード例 #25
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            // 在此处放置用户代码以初始化页面
            string sortID = GetRequestData("sortID", "0").ToString();

            string strSql = @"SELECT UOL.*, ALT.DISPLAYNAME AS APP_DISPLAYNAME, AOT.DISPLAYNAME AS OP_DISPLAYNAME 
				FROM USER_OPEATION_LOG UOL, APP_LOG_TYPE ALT, APP_OPERATION_TYPE AOT 
				WHERE ALT.GUID = AOT.APP_GUID 
					AND UOL.APP_GUID = ALT.GUID 
					AND UOL.OP_GUID = AOT.GUID 
					AND UOL.ID = "                     + TSqlBuilder.Instance.CheckQuotationMark(sortID, true);

            XmlDocument doc = InnerCommon.GetXmlDoc(InnerCommon.ExecuteDataset(strSql));

            SetControlValue(doc.DocumentElement.FirstChild);
        }
コード例 #26
0
        private bool CheckXsdExist(string strColumnName, string strObjClass)
        {
            XmlDocument xsdDoc;
            bool        bResult = false;

            switch (strObjClass)
            {
            case "ORGANIZATIONS":
            case "GROUPS":
            case "USERS":
            case "OU_USERS":
                xsdDoc  = GetXSDDocument(strObjClass);
                bResult = InnerCommon.GetXSDColumnNode(xsdDoc, strColumnName) != null;
                break;
            }
            return(bResult);
        }
コード例 #27
0
        /// <summary>
        /// 查询某应用下某种类型的所有功能
        /// </summary>
        private void DoQueryFunction()
        {
            XmlElement root         = _XmlRequest.DocumentElement;
            string     strAppID     = root.GetAttribute("app_id");
            string     strClassify  = root.GetAttribute("classify");
            string     strFuncSetID = root.GetAttribute("parent_id");

            string strSQL = string.Empty;

            if (strFuncSetID == string.Empty)
            {
                strSQL = "SELECT ID,APP_ID,NAME,CODE_NAME,DESCRIPTION,SORT_ID,CHILDREN_COUNT,RESOURCE_LEVEL,LOWEST_SET,INHERITED,CLASSIFY,1 AS TYPE "
                         + " FROM FUNCTION_SETS "
                         + " WHERE APP_ID = " + TSqlBuilder.Instance.CheckQuotationMark(strAppID, true)
                         + " AND CLASSIFY = " + TSqlBuilder.Instance.CheckQuotationMark(strClassify, true)
                         + " AND LEN(RESOURCE_LEVEL) = 3";

                strSQL += " union all SELECT ID,APP_ID,NAME,CODE_NAME,DESCRIPTION,SORT_ID,0 AS CHILDREN_COUNT,'' AS RESOURCE_LEVEL,'' "
                          + "AS LOWEST_SET,INHERITED,CLASSIFY,0 AS TYPE"
                          + " FROM FUNCTIONS "
                          + " WHERE APP_ID = " + TSqlBuilder.Instance.CheckQuotationMark(strAppID, true)
                          + " AND CLASSIFY = " + TSqlBuilder.Instance.CheckQuotationMark(strClassify, true)
                          + " AND ID NOT IN (SELECT FUNC_ID AS ID FROM FUNC_SET_TO_FUNCS)"
                          + " ORDER BY TYPE DESC, SORT_ID";
            }
            else
            {
                strSQL = "SELECT ID,APP_ID,NAME,CODE_NAME,DESCRIPTION,SORT_ID,CHILDREN_COUNT,RESOURCE_LEVEL,LOWEST_SET,INHERITED,CLASSIFY,1 AS TYPE "
                         + " FROM FUNCTION_SETS "
                         + " WHERE APP_ID = " + TSqlBuilder.Instance.CheckQuotationMark(strAppID, true)
                         + " AND CLASSIFY = " + TSqlBuilder.Instance.CheckQuotationMark(strClassify, true)
                         + " AND LEN(RESOURCE_LEVEL) = LEN((SELECT RESOURCE_LEVEL FROM FUNCTION_SETS WHERE ID = "
                         + TSqlBuilder.Instance.CheckQuotationMark(strFuncSetID, true) + ")) + 3"
                         + " AND RESOURCE_LEVEL LIKE (SELECT RESOURCE_LEVEL FROM FUNCTION_SETS WHERE ID = "
                         + TSqlBuilder.Instance.CheckQuotationMark(strFuncSetID, true) + ") + '%'";

                strSQL += " union all SELECT ID,APP_ID,NAME,CODE_NAME,DESCRIPTION,SORT_ID,0 AS CHILDREN_COUNT,'' AS RESOURCE_LEVEL,'' AS LOWEST_SET,INHERITED,CLASSIFY,0 AS TYPE "
                          + " FROM FUNCTIONS "
                          + " WHERE APP_ID = " + TSqlBuilder.Instance.CheckQuotationMark(strAppID, true)
                          + " AND CLASSIFY = " + TSqlBuilder.Instance.CheckQuotationMark(strClassify, true)
                          + " AND ID IN (SELECT FUNC_ID AS ID FROM FUNC_SET_TO_FUNCS WHERE FUNC_SET_ID = " + TSqlBuilder.Instance.CheckQuotationMark(strFuncSetID, true) + ")"
                          + " ORDER BY SORT_ID;";
            }
            _XmlResult = InnerCommon.GetXmlDoc(InnerCommon.ExecuteDataset(strSQL));
        }
コード例 #28
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");
        }
コード例 #29
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("\\"));
            }
        }
コード例 #30
0
        private void DoQueryFuncSetToRole()
        {
            XmlElement root         = _XmlRequest.DocumentElement;
            string     strAppID     = root.GetAttribute("app_id");
            string     strFuncSetID = root.GetAttribute("func_set_id");

            string strSQL = @"SELECT FUNC_ID INTO #FUNC_IDS
							FROM FUNC_SET_TO_FUNCS
							WHERE FUNC_SET_ID IN(
								SELECT ID FROM FUNCTION_SETS
								WHERE APP_ID = {0} 
								AND RESOURCE_LEVEL LIKE (SELECT RESOURCE_LEVEL FROM FUNCTION_SETS WHERE ID = {1} ) + '%'
								AND CLASSIFY = (SELECT CLASSIFY FROM FUNCTION_SETS WHERE ID = {1}));

							SELECT ID INTO #ROLE_IDS
							FROM ROLES
							WHERE APP_ID = {0} 
							AND (SELECT COUNT(DISTINCT FUNC_ID) FROM ROLE_TO_FUNCTIONS WHERE ROLE_TO_FUNCTIONS.ROLE_ID = ROLES.ID AND FUNC_ID IN (SELECT * FROM #FUNC_IDS)) = (SELECT COUNT(*) FROM #FUNC_IDS)
							AND (SELECT COUNT(*) FROM #FUNC_IDS) > 0;

							SELECT ID,APP_ID,NAME,CODE_NAME,DESCRIPTION,CLASSIFY,SORT_ID,INHERITED,ALLOW_DELEGATE, {1} AS FUNC_ID FROM ROLES
							WHERE ID IN (SELECT * FROM #ROLE_IDS)
							AND APP_ID = {0}
							AND CLASSIFY = ( SELECT CLASSIFY FROM FUNCTION_SETS WHERE ID = {1} )
							UNION ALL
							SELECT ID,APP_ID,NAME,CODE_NAME,DESCRIPTION,CLASSIFY,SORT_ID,INHERITED,ALLOW_DELEGATE,'' AS FUNC_ID FROM ROLES
							WHERE ID NOT IN (SELECT * FROM #ROLE_IDS)
							AND APP_ID = {0}
							AND CLASSIFY = ( SELECT CLASSIFY FROM FUNCTION_SETS WHERE ID = {1} )
							ORDER BY SORT_ID;
							
							SELECT * FROM FUNCTIONS WHERE ID IN (SELECT * FROM #FUNC_IDS)"                            ;

            strSQL = string.Format(strSQL, TSqlBuilder.Instance.CheckQuotationMark(strAppID, true), TSqlBuilder.Instance.CheckQuotationMark(strFuncSetID, true));
#if DEBUG
            Debug.Write(strSQL.ToString());
#endif
            _XmlResult = InnerCommon.GetXmlDoc(InnerCommon.ExecuteDataset(strSQL));
        }