Esempio n. 1
0
        /// <summary>
        /// 取有权限的操作列表(仅资源权限)
        /// </summary>
        /// <param name="code"></param>
        /// <param name="className"></param>
        /// <returns></returns>
        public EntityData GetOperationEntityDataOfResource(string code, string className)
        {
            try
            {
                string stationCodes = BuildStationCodeString(this.BuildStationCodes());

                object[] ooo = new object[] { code
                                              , SystemClassDescription.GetItemClassCode(className)
                                              , this.UserCode
                                              , stationCodes
                                              , SystemClassDescription.GetItemTableName(className)
                                              , SystemClassDescription.GetItemKeyColumnName(className)
                                              , SystemClassDescription.GetItemTypeColumnName(className)
                                              , SystemClassDescription.GetItemCreateUserColumnName(className) };

                string selfAccessString = String.Format(" ( AccessRange.ResourceCode = ( Select ResourceCode from Resource where RelationCode='{0}' and ClassCode='{1}' ) and ( ( AccessRange.AccessRangeType=0 and AccessRange.relationCode = '{2}' )  or ( AccessRange.AccessRangeType=1 and AccessRange.relationCode in ( {3} ) and ( RoleLevel <> 1 or RoleLevel is null ) )   or ( AccessRange.AccessRangeType=1 and AccessRange.relationCode in ( {3} ) and  RoleLevel = 1 and {4}.{7}='{2}'  )  )  ) "
                                                        , ooo);

                string sss = String.Format("select accessrange.* from accessrange , {4} where substring (AccessRange.operationCode,1,4 )='{1}' and {4}.{5} = '{0}' and ( " + selfAccessString + " )"
                                           , ooo);

                QueryAgent qa     = new QueryAgent();
                EntityData entity = qa.FillEntityData("AccessRange", sss);
                qa.Dispose();
                return(entity);
            }
            catch (Exception ex)
            { throw ex; }
        }