예제 #1
0
        public ActionResult EditGroup(int id = 0)
        {
            SupplierRolePermissionModel model = new SupplierRolePermissionModel();
            var supplierID = CurrentUser.SupplierID;

            try
            {
                if (id == 0)
                {
                    model.Role = new SupplierRoleInfo();
                }
                else
                {
                    model.Role = SupplierUserBll.GetSupplierRoleInfo(supplierID, id);
                    if (model.Role == null)
                    {
                        throw new Exception("未找到用戶分組(id:" + id.ToString() + ")");
                    }
                }
                var menuIds = model.Role.MenuIdList ?? new List <int>();
                var lstMenu = new SupplierUserMenuBLL().GetAllMenuPermission();
                var dic     = lstMenu.ToDictionary(p => p.Permission,
                                                   p => new Tree <SupplierMenuInfo>()
                {
                    Node        = p,
                    IsActive    = menuIds.Contains(p.MenuId) ? (bool?)true : null,
                    SubNodeList = new List <Tree <SupplierMenuInfo> >()
                });
                foreach (var menu in lstMenu.Where(p => p.ParentPermission != EnumPermission.None))
                {
                    Tree <SupplierMenuInfo> node;
                    if (dic.TryGetValue(menu.ParentPermission, out node))
                    {
                        node.SubNodeList.Add(dic[menu.Permission]);
                    }
                }
                var PermissionTree = new List <Tree <SupplierMenuInfo> >();
                PermissionTree.AddRange(lstMenu.Where(p => p.ParentPermission == EnumPermission.None).Select(p => dic[p.Permission]));
                foreach (var node in PermissionTree.Where(p => p.IsActive == true))
                {
                    if (node.Exists(p => !p.IsActive.HasValue))
                    {
                        node.IsActive = false;
                    }
                }
                model.PermissionTree = PermissionTree;
            }
            catch (Exception ex)
            {
                LogHelper.Error(ex);
                return(new TransferResult("/Error/PageNotFound"));
            }
            return(View(model));
        }
예제 #2
0
 public ActionResult Login(LoginModel model)
 {
     if (!string.IsNullOrEmpty(model.UserName) && !string.IsNullOrEmpty(model.Password))
     {
         do
         {
             var date   = DateTime.Now.Date;
             var userID = SupplierUserBll.GetSupplierUserID(model.UserName.SafeTrim());
             if (userID <= 0)
             {
                 model.ErrorInfoForUserName = "******";
                 break;
             }
             var counter = SupplierUserBll.GetSupplierCounter(userID, EnumCountType.LoginFail, date);
             if (counter != null && counter.Value >= 10)
             {
                 model.ErrorInfoForUserName = "******";
                 break;
             }
             var userInfo = SupplierUserBll.GetUserInfoByLogin(model.UserName.SafeTrim(), model.Password);
             if (userInfo != null)
             {
                 if (userInfo.Status != 1)
                 {
                     model.ErrorInfoForUserName = "******";
                 }
                 else if (userInfo.SupplierStatus != 1)
                 {
                     model.ErrorInfoForUserName = "******";
                 }
                 else
                 {
                     var userMenuBll = new SupplierUserMenuBLL();
                     SupplierPermissionModel userPermission;
                     if (userInfo.IsAdmin == 1)
                     {
                         userPermission = userMenuBll.GetAllPermissionInfo();
                     }
                     else
                     {
                         userPermission = userMenuBll.GetMenuBySupplierUserId(userInfo.ID);
                     }
                     if (userPermission != null && userPermission.MenuList != null && userPermission.MenuList.Count > 0)
                     {
                         var loginUserModel = new LoginUserModel()
                         {
                             SupplierUserInfo = userInfo,
                             MenuList         = userPermission.MenuList,
                             PermissionSet    = userPermission.PermissionSet
                         };
                         LoginHelper.Cache(Session, loginUserModel);
                         if (string.IsNullOrEmpty(model.ReturnUrl) || string.Equals(model.ReturnUrl, "/") || model.ReturnUrl.StartsWith("/?"))
                         {
                             return(RedirectToAction("Index", "Home"));
                         }
                         else
                         {
                             return(Redirect(model.ReturnUrl));
                         }
                     }
                     else
                     {
                         model.ErrorInfoForUserName = "******";
                     }
                 }
             }
             else
             {
                 model.ErrorInfoForUserName = "******";
             }
         }while (false);
     }
     else
     {
         model.ErrorInfoForUserName = "******";
         model.ErrorInfoForPassword = "******";
     }
     return(View(model));
 }