/// <summary> /// 验证该用户是否拥有该模块功能权限 /// </summary> /// <param name="userName">用户账号</param> /// <param name="functionId">模块id</param> /// <returns>true=是 false=否</returns> private bool HasRightIdCore(string userName, string functionId) { AppUser user = UserManager.GetByName(userName); AppFunction func = FunctionManager.GetById(functionId); /* * 返回值在原有基础上添加了用户与模块功能的判断 by_zjf * (user.FunctionIds.Count() == 0 || user.FunctionIds.Contains(functionId)) * 判断规则优先顺序 * 1.已设置用户与模块功能权限,验证是否存在该模块功能. * 2.未设置用户与模块功能权限,根据模块关联角色的关系进行验证. */ return(user != null && (func == null || func.AuthType == JAuthType.AllUsers || func.AuthType == JAuthType.EveryOne || user.FunctionIds.Contains(functionId) || user.RoleIds.Any(rId => RoleManager.GetById(rId).FunctionIds.Contains(functionId)) ) && (user.IsDefaultRole || func.AuthType == JAuthType.AllUsers || func.AuthType == JAuthType.EveryOne || user.FunctionIds.Contains(functionId) )); }
/// <summary> /// 验证该用户是否拥有该模块功能权限 /// </summary> /// <param name="userName">用户账号</param> /// <param name="functionId">模块id</param> /// <returns>true=是 false=否</returns> private bool HasRightIdCore(string userName, string functionId) { AppFunction func = FunctionManager.GetById(functionId); if (func == null || func.AuthType == JAuthType.EveryOne) { return(true); } var user = AppManager.Instance.UserManager.GetByName(userName); if (user == null) { return(false); } if (func.AuthType == JAuthType.AllUsers) { return(true); } if (!user.IsDefaultRole && user.FunctionIds.Contains(functionId)) { return(true); } if (user.IsDefaultRole && user.RoleIds.Any(rId => RoleManager.GetById(rId).FunctionIds.Contains(functionId))) { return(true); } return(false); /* * 返回值在原有基础上添加了用户与模块功能的判断 by_zjf * (user.FunctionIds.Count() == 0 || user.FunctionIds.Contains(functionId)) * 判断规则优先顺序 * 1.已设置用户与模块功能权限,验证是否存在该模块功能. * 2.未设置用户与模块功能权限,根据模块关联角色的关系进行验证. */ //return user != null // && (func == null // || func.AuthType == JAuthType.AllUsers // || func.AuthType == JAuthType.EveryOne // || user.FunctionIds.Contains(functionId) // || user.RoleIds.Any(rId => RoleManager.GetById(rId).FunctionIds.Contains(functionId)) // ) // && (user.IsDefaultRole // || func.AuthType == JAuthType.AllUsers // || func.AuthType == JAuthType.EveryOne // || user.FunctionIds.Contains(functionId) // ); }