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)); }
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)); }