在我的应用中,我有不同的角色与不同的组织相关联。我现在有三种组织类型
组织类型可以包含多个组织,例如
厨房有多个厨房(厨房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");
}
}
有关如何以最佳方式实现此目标的任何见解?
答案 0 :(得分:1)
您是否可以制作单个动态页面,列出根据角色可访问的模块?因此,用户可以选择要查看的页面。 如果添加更多角色,它也会有所帮助。