Exemplo n.º 1
0
 public ResResultModel GetMenusTreeGrid(MenusPermissionModel model)
 {
     try
     {
         var accessId         = Guid.Empty;
         var accessType       = "";
         var isAdministrators = false;
         if (!string.IsNullOrWhiteSpace(model.AllowRole))
         {
             accessType = "Roles";
             SiteRoles rBll     = new SiteRoles();
             var       roleInfo = rBll.GetAspnetModel(Membership.ApplicationName, model.AllowRole);
             accessId         = roleInfo.Id;
             isAdministrators = roleInfo.LowerName == "administrators";
         }
         if (!string.IsNullOrWhiteSpace(model.DenyUser))
         {
             accessType = "Users";
             accessId   = Guid.Parse(Membership.GetUser(model.DenyUser).ProviderUserKey.ToString());
         }
         var bll = new SiteMenus();
         return(ResResult.Response(true, "", bll.GetTreeGridJson(Membership.ApplicationName, accessId, accessType, isAdministrators)));
     }
     catch (Exception ex)
     {
         return(ResResult.Response(false, ex.Message, ""));
     }
 }
Exemplo n.º 2
0
        public ResResultModel GetMenusTreeChildrenByParentId(Guid parentId)
        {
            try
            {
                var userMenuList = MenusDataProxy.GetUserMenus();
                if (userMenuList == null || userMenuList.Count() == 0)
                {
                    return(ResResult.Response(false, MC.Data_InvalidExist, ""));
                }
                var parentInfo = userMenuList.FirstOrDefault(m => m.Id.Equals(parentId));
                if (parentInfo == null)
                {
                    return(ResResult.Response(false, MC.Data_InvalidExist, ""));
                }
                var sb  = new StringBuilder();
                var bll = new SiteMenus();
                bll.CreateTreeJson(userMenuList, parentInfo.Id, ref sb);

                return(ResResult.Response(true, "", sb.ToString()));
            }
            catch (Exception ex)
            {
                return(ResResult.Response(false, ex.Message, ""));
            }
        }
Exemplo n.º 3
0
        public ResResultModel DeleteMenus(Guid Id)
        {
            try
            {
                //MenusDataProxy.ValidateAccess((int)EnumData.EnumOperationAccess.删除, true);
                if (!HttpContext.Current.User.IsInRole("Administrators"))
                {
                    throw new ArgumentException(MC.Role_InvalidError);
                }

                if (Id.Equals(Guid.Empty))
                {
                    return(ResResult.Response(false, MC.Request_Params_InvalidError, ""));
                }

                var bll = new SiteMenus();

                bll.Delete(Id);
                return(ResResult.Response(true, "", ""));
            }
            catch (Exception ex)
            {
                return(ResResult.Response(false, ex.Message, ""));
            }
        }
Exemplo n.º 4
0
 public ResResultModel GetMenusTree()
 {
     try
     {
         var bll = new SiteMenus();
         return(ResResult.Response(true, "", bll.GetTreeJson(Membership.ApplicationName)));
     }
     catch (Exception ex)
     {
         return(ResResult.Response(false, ex.Message, ""));
     }
 }
Exemplo n.º 5
0
        public void SetMigrateAnonymous()
        {
            var userId = WebCommon.GetUserId();
            IList <SiteMenusInfo> smis = new List <SiteMenusInfo>();
            UserProfileInfo       upi  = new UserProfileInfo();
            var menuBll = new SiteMenus();

            if (Roles.GetRolesForUser().Length == 0)
            {
                var      guestRole = new SiteRoles().GetAspnetModel(Membership.ApplicationName, "guest");
                string[] accessIds = { guestRole.Id.ToString() };
                smis = menuBll.GetMenusAccess(Membership.ApplicationName, accessIds, false);
                upi  = new UserProfileInfo {
                    SiteCode = AppCode, SiteTitle = GlobalConfig.SiteTitle
                };
            }
            else
            {
                var accessIds = new List <string>();
                accessIds.Add(userId.ToString());
                var roleIds = new SiteRoles().GetAspnetRoleIds(Membership.ApplicationName, Roles.GetRolesForUser());
                foreach (var item in roleIds)
                {
                    accessIds.Add(item.ToString());
                }
                var    isAdmin = HttpContext.Current.User.IsInRole("Administrators");
                Task[] tasks   = new Task[2];
                tasks[0] = Task.Factory.StartNew(() =>
                {
                    var fuInfo = new FeatureUser().GetModel(userId, "UserProfile");
                    if (fuInfo != null)
                    {
                        upi.SiteCode    = fuInfo.SiteCode;
                        upi.SiteTitle   = fuInfo.SiteTitle;
                        upi.SiteLogo    = string.IsNullOrWhiteSpace(fuInfo.SiteLogo) ? "" : WebCommon.GetSiteAppName() + fuInfo.SiteLogo;
                        upi.CultureName = fuInfo.CultureName;
                    }
                });

                tasks[1] = Task.Factory.StartNew(() =>
                {
                    smis = menuBll.GetMenusAccess(Membership.ApplicationName, accessIds.ToArray(), isAdmin);
                });
                Task.WaitAll(tasks);
            }

            var Profile = new CustomProfileCommon();

            Profile.UserMenus = JsonConvert.SerializeObject(smis);
            Profile.UserInfo  = JsonConvert.SerializeObject(upi);

            Profile.Save();
        }
Exemplo n.º 6
0
        private void InitEdit(Guid Id)
        {
            var bll   = new SiteMenus();
            var model = bll.GetModel(Id);

            if (model != null)
            {
                hId.Value       = model.Id.ToString();
                hParentId.Value = model.ParentId.ToString();
                txtTitle.Value  = model.Title;
                txtUrl.Value    = model.Url;
                txtDescr.Value  = model.Descr;
                txtSort.Value   = model.Sort.ToString();
            }
        }
Exemplo n.º 7
0
        protected void Profile_OnMigrateAnonymous(object sender, ProfileMigrateEventArgs args)
        {
            AnonymousIdentificationModule.ClearAnonymousIdentifier();

            try
            {
                var userId    = WebCommon.GetUserId();
                var menuBll   = new SiteMenus();
                var accessIds = new List <string>();
                accessIds.Add(userId.ToString());
                Task[] tasks = new Task[3];
                tasks[0] = Task.Factory.StartNew(() =>
                {
                    var roleIds = new SiteRoles().GetAspnetRoleIds(Roles.GetRolesForUser());
                    foreach (var item in roleIds)
                    {
                        accessIds.Add(item.ToString());
                    }
                });
                var userProfileInfo = new UserProfileInfo();
                tasks[1] = Task.Factory.StartNew(() =>
                {
                    var fuInfo = new FeatureUser().GetModel(userId, "UserProfile");
                    if (fuInfo != null)
                    {
                        userProfileInfo.SiteCode    = fuInfo.SiteCode;
                        userProfileInfo.SiteTitle   = fuInfo.SiteTitle;
                        userProfileInfo.SiteLogo    = string.IsNullOrWhiteSpace(fuInfo.SiteLogo) ? "" : WebCommon.GetSiteAppName() + fuInfo.SiteLogo;
                        userProfileInfo.CultureName = fuInfo.CultureName;
                    }
                });
                IList <SiteMenusInfo> maList = new List <SiteMenusInfo>();
                tasks[2] = Task.Factory.StartNew(() =>
                {
                    maList = menuBll.GetMenusAccess(Membership.ApplicationName, accessIds.ToArray(), User.IsInRole("Administrators"));
                });
                Task.WaitAll(tasks);

                var Profile = new CustomProfileCommon();
                Profile.UserMenus = JsonConvert.SerializeObject(maList);
                Profile.UserInfo  = JsonConvert.SerializeObject(userProfileInfo);

                Profile.Save();
            }
            catch { }
        }
Exemplo n.º 8
0
        public static IList <SiteMenusInfo> GetList()
        {
            var appName = Membership.ApplicationName;
            var bll     = new SiteMenus();

            if (!enableCaching)
            {
                return(bll.GetMenus(appName));
            }

            string key = "Menus_All_" + appName + "";
            IList <SiteMenusInfo> data = (List <SiteMenusInfo>)HttpRuntime.Cache[key];

            if (data == null || data.Count == 0)
            {
                data = bll.GetMenus(appName);
                if (data != null && data.Count > 0)
                {
                    HttpRuntime.Cache.Add(key, data, null, DateTime.Now.AddHours(menusTimeout), Cache.NoSlidingExpiration, CacheItemPriority.High, null);
                }
            }

            return(data);
        }
Exemplo n.º 9
0
        public ResResultModel SaveMenus(MenusModel model)
        {
            try
            {
                if (!HttpContext.Current.User.IsInRole("Administrators"))
                {
                    throw new ArgumentException(MC.Role_InvalidError);
                }

                if (model == null)
                {
                    return(ResResult.Response(false, MC.Request_Params_InvalidError));
                }
                if (string.IsNullOrWhiteSpace(model.Title))
                {
                    return(ResResult.Response(false, MC.Request_Params_InvalidError));
                }
                var Id       = Guid.Empty;
                var parentId = Guid.Empty;
                if (model.Id != null && !string.IsNullOrWhiteSpace(model.Id.ToString()))
                {
                    Guid.TryParse(model.Id.ToString(), out Id);
                }
                if (model.ParentId != null && !string.IsNullOrWhiteSpace(model.ParentId.ToString()))
                {
                    Guid.TryParse(model.ParentId.ToString(), out parentId);
                }

                var appBll = new Applications();
                var appId  = appBll.GetAspnetAppId(Membership.ApplicationName);

                var bll    = new SiteMenus();
                int effect = 0;

                var modelInfo = new SiteMenusInfo(Guid.Parse(appId.ToString()), Id, parentId, model.IdStep, model.Title, model.Url, model.Descr, model.Sort, DateTime.Now);

                if (Id.Equals(Guid.Empty))
                {
                    //MenusDataProxy.ValidateAccess((int)EnumData.EnumOperationAccess.新增, true);

                    modelInfo.Id     = Guid.NewGuid();
                    modelInfo.IdStep = (modelInfo.Id + "," + modelInfo.IdStep).Trim(',');
                    effect           = bll.InsertByOutput(modelInfo);
                }
                else
                {
                    //MenusDataProxy.ValidateAccess((int)EnumData.EnumOperationAccess.编辑, true);
                    var oldInfo = bll.GetModel(Id);
                    effect = bll.Update(modelInfo);
                }
                if (effect < 1)
                {
                    return(ResResult.Response(false, "操作失败,数据库操作异常"));
                }

                return(ResResult.Response(true, "操作成功", modelInfo.Id));
            }
            catch (Exception ex)
            {
                return(ResResult.Response(false, "操作异常:" + ex.Message + ""));
            }
        }
Exemplo n.º 10
0
        //private void SaveBarcodeTemplate(HttpContext context)
        //{
        //    try
        //    {
        //        var isInsert = false;
        //        Guid Id = Guid.Empty;
        //        if (!string.IsNullOrWhiteSpace(context.Request.Form["Id"])) Guid.TryParse(context.Request.Form["Id"], out Id);
        //        if (Id.Equals(Guid.Empty))
        //        {
        //            Id = Guid.NewGuid();
        //            isInsert = true;
        //        }
        //        var sTypeName = context.Request.Form["TypeName"].Trim();
        //        var userId = WebCommon.GetUserId();
        //        BarcodeTemplateInfo modelInfo = null;
        //        var sTitle = context.Request.Form["Title"].Trim();
        //        var sJContent = HttpUtility.UrlDecode(context.Request.Form["JContent"]).Trim();
        //        var isDefault = bool.Parse(context.Request.Form["IsDefault"]);

        //        if (string.IsNullOrWhiteSpace(sTitle) && string.IsNullOrWhiteSpace(sJContent) && string.IsNullOrWhiteSpace(sTypeName))
        //        {
        //            throw new ArgumentException(MC.M_RuleInvalidError);
        //        }

        //        if (sTypeName == "Barcode")
        //        {
        //            var sBarcode = context.Request.Form["Barcode"].Trim();
        //            var sBarcodeFormat = context.Request.Form["BarcodeFormat"].Trim();
        //            var width = int.Parse(context.Request.Form["Width"]);
        //            var height = int.Parse(context.Request.Form["Height"]);
        //            var margin = int.Parse(context.Request.Form["Margin"]);

        //            var barcodeInfo = new BarcodeInfo(sBarcode, sBarcodeFormat, width, height, margin, "");
        //           barcodeInfo.ImageUrl = FilesHelper.GetRndUrl("Barcodes",
        //            barcodeInfo.ImageUrl = ZxingHelper.CreateBarcode(barcodeInfo, Id.ToString(), true);
        //            modelInfo = new BarcodeTemplateInfo(Id, userId, sTitle, JsonConvert.SerializeObject(barcodeInfo), isDefault, sTypeName, DateTime.Now);
        //        }
        //        else
        //        {
        //            modelInfo = new BarcodeTemplateInfo(Id, userId, sTitle, sJContent, isDefault, sTypeName, DateTime.Now);
        //        }

        //        var bll = new BarcodeTemplate();
        //        int effect = -1;

        //        if (isInsert)
        //        {
        //            effect = bll.InsertByOutput(modelInfo);
        //        }
        //        else
        //        {
        //            effect = bll.Update(modelInfo);
        //        }
        //        if (effect < 1) context.Response.Write(ResResult.ResJsonString(false, MC.M_Save_Error, ""));

        //        context.Response.Write(ResResult.ResJsonString(true, "", ""));
        //    }
        //    catch (Exception ex)
        //    {
        //        context.Response.Write(ResResult.ResJsonString(false, ex.Message, ""));
        //    }
        //}

        #endregion

        #region 系统管理

        private void SaveMenuAccess(HttpContext context)
        {
            if (!(HttpContext.Current.User.IsInRole("Administrators") || HttpContext.Current.User.IsInRole("System")))
            {
                throw new ArgumentException(MC.Role_InvalidError);
            }

            var sRoleName     = context.Request.Form["RoleName"];
            var sUserName     = context.Request.Form["UserName"];
            var sMenuItemJson = context.Request.Form["MenuItemJson"];

            if (string.IsNullOrWhiteSpace(sMenuItemJson))
            {
                throw new ArgumentException(MC.Request_Params_InvalidError);
            }
            sMenuItemJson = HttpUtility.UrlDecode(sMenuItemJson);
            if (string.IsNullOrWhiteSpace(sRoleName) && string.IsNullOrWhiteSpace(sUserName))
            {
                throw new ArgumentException(MC.Request_Params_InvalidError);
            }
            List <SiteMenusAccessItemInfo> list = JsonConvert.DeserializeObject <List <SiteMenusAccessItemInfo> >(sMenuItemJson);
            var accessId   = Guid.Empty;
            var isRole     = !string.IsNullOrWhiteSpace(sRoleName);
            var accessType = isRole ? "Roles" : "Users";

            if (isRole)
            {
                if (sRoleName.ToLower() == "administrators")
                {
                    throw new ArgumentException(MC.GetString(MC.Params_SaveRoleAccessError, sRoleName));
                }

                var roleBll = new SiteRoles();
                accessId = roleBll.GetAspnetModel(Membership.ApplicationName, sRoleName).Id;
            }
            else
            {
                if (Roles.GetRolesForUser(sUserName).Contains("administrators"))
                {
                    throw new ArgumentException(MC.GetString(MC.Params_SaveUserAccessError, sUserName));
                }

                accessId = Guid.Parse(Membership.GetUser(sUserName).ProviderUserKey.ToString());
            }
            var menuBll = new SiteMenus();
            var maBll   = new SiteMenusAccess();
            List <SiteMenusAccessItemInfo> maitems = null;
            var appId           = new Applications().GetAspnetAppId(Membership.ApplicationName);
            var menusAccessInfo = maBll.GetModel(appId, accessId);

            if (menusAccessInfo != null)
            {
                maitems = JsonConvert.DeserializeObject <List <SiteMenusAccessItemInfo> >(menusAccessInfo.OperationAccess);
            }
            else
            {
                maitems = new List <SiteMenusAccessItemInfo>();
            }

            foreach (var item in list)
            {
                var menuId = Guid.Parse(item.MenuId.ToString());

                var itemIndex = maitems.FindIndex(m => m.MenuId.Equals(menuId));
                if (itemIndex > -1)
                {
                    maitems[itemIndex] = item;
                }
                else
                {
                    maitems.Add(item);
                }
            }

            if (menusAccessInfo != null)
            {
                menusAccessInfo.OperationAccess = JsonConvert.SerializeObject(maitems);
                maBll.Update(menusAccessInfo);
            }
            else
            {
                menusAccessInfo = new SiteMenusAccessInfo(appId, accessId, JsonConvert.SerializeObject(maitems), accessType);
                maBll.Insert(menusAccessInfo);
            }

            context.Response.Write(ResResult.ResJsonString(true, "", ""));
        }