向用户显示他可以去的路线的列表

时间:2014-12-10 10:51:30

标签: c# asp.net-mvc razor

在我的应用中,我有不同的角色与不同的组织相关联。我现在有三种组织类型

  1. Crondale(我们的内部系统)
  2. 厨柜
  3. 机构
  4. 组织类型可以包含多个组织,例如

      

    厨房有多个厨房(厨房1,厨房2等......)

         

    拥有多个厨房的机构(机构1,机构2等......)

    现在角色就是这样,

    Bob是组织类型Kitchen和Kitchen 1的管理员。

    直到现在,一切顺利。现在的问题是用户可以拥有多个角色。例如,

    除了作为厨房管理员1之外,鲍勃还是机构1的护士。

    现在我想要的是,当用户登录时,我获得所有角色类型,然后允许用户选择他想去的那个。如果它只有一个,那么直接把他带到那里。但是对于倍数应该怎么办?

    这就是我到目前为止所做的,

    public ActionResult Dashboard()
    {
        User user = TableHelper.Get<User>("1", User.Identity.Name);
    
        if (user != null)
        {
            List<OrganizationValues> data = CheckOrganizationType.organizationType(user); // getting organization type
            if (data.Count() == 1) // if we have one role at a time
            {
                foreach (OrganizationValues ov in data)
                {
                    if (ov.name != "crondale" && ov.name != "") // which means it doesn't belong to US!
                    {
                        return RedirectToAction("Dashboard", System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(ov.name), new { id = ov.organizationId, roleId = ov.roleType });
                    }
                    else // we are crondale
                    {
                        ViewBag.rolesType = getRoles();
                        ViewBag.organizationTypes = getOrganizationTypes();
                    }
                }
                return View(user);
            }
            else // you have more than 1 role
            {
    
            }
        } // if user is not logged in
        else
        {
            return RedirectToAction("Index", "Site");
        }
    }
    

    有关如何以最佳方式实现此目标的任何见解?

1 个答案:

答案 0 :(得分:1)

您是否可以制作单个动态页面,列出根据角色可访问的模块?因此,用户可以选择要查看的页面。 如果添加更多角色,它也会有所帮助。