Пример #1
0
        public ActionResult UsuarioMenuDelete(Int16 id = 0)
        {
            if (id != 0)
            {
                //exclui registro
                ServiceUsuarioMenu.DeleteUsuarioMenuId(id);
            }

            return(Redirect(Domain.Util.config.UrlSite + "UserMeni/UsuarioMenu"));
        }
Пример #2
0
        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));
        }
Пример #3
0
        //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);
            }
        }
Пример #4
0
        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"));
        }
Пример #5
0
 //busca as permissoes
 public JsonResult ListaPermissoes()
 {
     return(Json(ServiceUsuarioMenu.getUsuarioMenu(), JsonRequestBehavior.AllowGet));
 }