public ActionResult UsuarioMenuDelete(Int16 id = 0) { if (id != 0) { //exclui registro ServiceUsuarioMenu.DeleteUsuarioMenuId(id); } return(Redirect(Domain.Util.config.UrlSite + "UserMeni/UsuarioMenu")); }
public ActionResult UsuarioMenu(Int16 id = 0) { var model = new UsuarioMenuModelView(); if (id != 0) { //busca as informações para edição model = ServiceUsuarioMenu.GetUsuarioMenuId(id); } model.UsuariosTipos = ServiceUsuarioTipo.getUsuarioTipo(); model.Menus = ServiceMenu.getMenu(); model.UsuariosMenus = ServiceUsuarioMenu.getUsuarioMenu(); return(View(model)); }
//insere as atividades do participante public void InsertAjax(List <string> data) { //posição 0 = tipoid - admin, padrão, etc //posição 1 = menuid UsuarioMenuModelView model = new UsuarioMenuModelView(); string usuario = User.Identity.Name; //apaga todos Domain.Consumo.UsuarioMenuRepository.DeleteUsuarioMenuAll(); for (int i = 0; i < data.Count; i++) { string[] menuarray = data[i].Split(new Char[] { ':' }); model.usuariotipoid = Convert.ToInt16(menuarray[0]); model.menuid = Convert.ToInt16(menuarray[1]); model.status = 1; model.user = usuario; //insere um de cada vez. ServiceUsuarioMenu.InsertUsuarioMenu(model); } }
public ActionResult MenuHeader() { var msg = "Verifique-Permissão"; List <User> lstUser = new List <Data.Entities.User>(); lstUser = ServiceUsuario.getUsuariobyEmail(User.Identity.Name); Int16 tipoid = 0; if (lstUser.Count == 1) { foreach (var item in lstUser) { tipoid = item.usuariotipoid; } } //busca o menu List <Data.Entities.Menu> lstMn = new List <Data.Entities.Menu>(); lstMn = Domain.Service.ServiceMenu.getMenu(); string path = Request.Path; int posic = path.IndexOf("/", 1); if (posic > 0) { string actSolic = path.Substring(1, posic - 1); //busca os usuariostipos que contém os menus permitidos List <Data.Entities.UsuarioMenu> lstTp = new List <UsuarioMenu>(); lstTp = ServiceUsuarioMenu.getUsuarioMenuByTipoId(tipoid); //pega somente os ids var lstMenuIdValido = from id in lstTp select id.menuid; //compara os ids permitidos com os todos o menus e pega somenteos permitidos var lstFinal = (from c in lstMn where lstMenuIdValido.Contains(c.menuid) select c).ToList(); ViewData["result"] = lstFinal; //verifica se o usuário pode acessar esta página ou se está forçando na mão var permissao = from lst in lstFinal where lst.controller == actSolic select lst; //se não tem permissao, verifica se é um submenu if (!permissao.Any()) { //verifica se é um submenu no qual ele tem permissão no meu principal //se tiver, deixa entrar. List <MenuSub> lstSub = new List <MenuSub>(); lstSub = ServiceMenuSub.getMenuSubByController(actSolic); if (lstSub.Count == 0) { //se não encontrar aquele submenu, porque a solicitação é de um menu normal e não tem acesso Response.Redirect(@Domain.Util.config.UrlSite + "Home/Index/0/0/" + msg); } else { //se encontrou é porque realmente é um submenu, verifica se o usuário possui acesso ao menu daquele submenu //pega o action do menu principal var actmenu = (from lst1 in lstSub select lst1.menuact).FirstOrDefault(); //verifica se o action está na lista de permissões - se não estiver é porque não tem permissão e forçou acesso. var permissaosub = (from lst2 in lstFinal where lst2.controller == actmenu select lst2.controller).FirstOrDefault(); if (string.IsNullOrEmpty(permissaosub)) { Response.Redirect(@Domain.Util.config.UrlSite + "Home/Index/0/0/" + msg); } } } } else { Response.Redirect(@Domain.Util.config.UrlSite + "Home/Index/0/0/" + msg); } return(PartialView("MenuHeader")); }
//busca as permissoes public JsonResult ListaPermissoes() { return(Json(ServiceUsuarioMenu.getUsuarioMenu(), JsonRequestBehavior.AllowGet)); }