Exemple #1
0
        private static bool IsInCurrentModulo(Modulo currentModulo, int idParent)
        {
            ModuloRepository moduloRepository = new ModuloRepository();

            var listParent = moduloRepository.GetParentsList(currentModulo, AppSession.Modulos);//currentModulo.GetParentsList;

            foreach (var item in listParent)
            {
                if (item.Id == idParent)
                {
                    return(true);
                }
            }
            return(false);
        }
Exemple #2
0
        public override void OnAuthorization(HttpActionContext actionContext)
        {
            var principal = actionContext.RequestContext.Principal as ClaimsPrincipal;

            if (!principal.Identity.IsAuthenticated)
            {
                actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized);
                return;
            }

            var userStore   = new UserStore <ApplicationUser>(new ApplicationDbContext());
            var userManager = new UserManager <ApplicationUser>(userStore);
            //var user = userManager.FindByNameAsync(principal.Identity.Name);
            var user = (new ApplicationDbContext()).Users.Include(x => x.Roles).FirstOrDefault(x => x.UserName == principal.Identity.Name);

            if (user == null)
            {
                actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized);
            }
            bool hasPermission = false;

            foreach (var role in user.Roles)
            {
                var module = new ModuloRepository().GetByName(Modulo);
                var action = new AccionesRepository().GetByName(ActionName, module.ModuloId);

                if (action != null && new AccionesRoleRepository().exist(module.ModuloId, action.AccionesId, role.RoleId))
                {
                    hasPermission = true;
                    break;
                }
            }

            if (!hasPermission)
            {
                actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Forbidden);
                //return Task.FromResult<object>(null);
            }
            //User is Authorized, complete execution
            //return Task.FromResult<object>(null);
        }
        private static Modulo GetCurrenModulo(this HtmlHelper html)
        {
            try
            {
                RouteData routeData       = html.ViewContext.RouteData;
                var       _ControllerName = routeData.GetRequiredString("controller");
                if (_ControllerName == null)
                {
                    return(null);
                }

                ModuloRepository moduloRepository = new ModuloRepository();
                var result = moduloRepository.GetFiltered(o => o.URL != null && o.URL.ToUpper().StartsWith(_ControllerName.ToUpper()), p => p.Parent);

                var listResult = result.ToList();

                if (listResult.Count > 1)
                {
                    foreach (var item in result.ToList())
                    {
                        if (item.URL.Split('/')[0].Equals(_ControllerName))
                        {
                            return(item);
                        }
                    }
                }

                if (result == null)
                {
                    throw new Exception("Error al buscar el Modulo actual en el controlador: No se encontró en la consulta");
                }

                return(result.First());
            }
            catch (Exception ex)
            {
                throw new Exception("Error al buscar el Modulo actual en el controlador:" + ex.Message);
            }
        }
        public void PopulateTreeModulosEmpty()
        {
            ModuloRepository moduloRepository = new ModuloRepository();
            StringBuilder    sb    = new StringBuilder();
            var listModulosSistema = moduloRepository.GetAll(p => p.Parent).OrderBy(o => o.Descripcion);

            var menuVM = MenuViewModel.CreateVM(null, listModulosSistema.ToList());


            foreach (var menuItem in menuVM)
            {
                sb.Append("<li>");
                sb.Append("<p  >");
                sb.Append(" <span class='icon'><i class='" + menuItem.Class + "'></i></span>");
                sb.Append(" <label class='control-label'>" + menuItem.Descripcion + "</label>");
                sb.Append("</p>");

                if (menuItem.URL != string.Empty && menuItem.URL != null)
                {
                    var checked_edit = "";
                    var checked_view = "";

                    if (menuItem.MenuId == 28 || menuItem.MenuId == 50)
                    {
                        checked_edit = "checked";
                        checked_view = "checked";
                    }
                    sb.Append("<div style='float:right; margin-right:150px'><input " + checked_edit + " name='chk_EDIT_" + menuItem.MenuId + "'   type='checkbox'  ></input></div>");
                    sb.Append("<div style='float:right; margin-right:180px'><input " + checked_view + " name='chk_VIEW_" + menuItem.MenuId + "'   type='checkbox' ></input></div>");
                }


                if (menuItem.Children.Count() > 0)
                {
                    sb.Append("<ul class='sub'>");
                }

                #region Sub Menu 1° Nivel
                foreach (var child in menuItem.Children)
                {
                    sb.Append("<li>");
                    if (child.URL != string.Empty && child.URL != null)
                    {
                        sb.Append("<p>");
                    }
                    else
                    {
                        sb.Append("<p >");
                    }

                    sb.Append("<span class='icon'><i class='" + (child.Class != null && child.Class != string.Empty ? child.Class : "") + "'></i></span>");
                    sb.Append(" <label class='control-label'>" + child.Descripcion + "</label>");
                    if (child.URL != string.Empty && child.URL != null)
                    {
                        sb.Append("<div style='float:right; margin-right:150px'><input name='chk_EDIT_" + child.MenuId + "'   type='checkbox' ></input></div>");
                        sb.Append("<div style='float:right; margin-right:180px'><input name='chk_VIEW_" + child.MenuId + "'   type='checkbox' ></input></div>");
                    }
                    sb.Append("</p>");

                    if (child.Children.Count() > 0)
                    {
                        sb.Append("<ul class='sub'>");
                    }

                    #region Sub Menu 2° Nivel
                    foreach (var subchild in child.Children)
                    {
                        sb.Append("<li>");
                        if (subchild.URL != string.Empty && subchild.URL != null)
                        {
                            sb.Append("<span >");
                        }
                        else
                        {
                            sb.Append("<span >");
                        }

                        sb.Append("<span class='icon'><i class='" + (subchild.Class != null && subchild.Class != string.Empty ? subchild.Class : "") + "'></i></span>");
                        sb.Append(" <label class='control-label'>" + subchild.Descripcion + "</label>");

                        if (subchild.URL != string.Empty && subchild.URL != null)
                        {
                            sb.Append("<div style='float:right; margin-right:150px'><input name='chk_EDIT_" + subchild.MenuId + "'   type='checkbox' ></input></div>");
                            sb.Append("<div style='float:right; margin-right:180px'><input name='chk_VIEW_" + subchild.MenuId + "'   type='checkbox' ></input></div>");
                        }


                        sb.Append("</span>");

                        if (subchild.Children.Count() > 0)
                        {
                            sb.Append("<ul class='sub'>");
                        }

                        #region Sub Menu 3° Nivel
                        foreach (var subsubchild in subchild.Children)
                        {
                            sb.Append("<li>");
                            if (subsubchild.URL != string.Empty && subsubchild.URL != null)
                            {
                                sb.Append("<span >");
                            }
                            else
                            {
                                sb.Append("<span >");
                            }

                            sb.Append("<span class='icon'><i class='" + (subsubchild.Class != null && subsubchild.Class != string.Empty ? subsubchild.Class : "") + "'></i></span>");
                            sb.Append(" <label class='control-label'>" + subsubchild.Descripcion + "</label>");

                            if (subsubchild.URL != string.Empty && subsubchild.URL != null)
                            {
                                sb.Append("<div style='float:right; margin-right:150px'><input name='chk_EDIT_" + subsubchild.MenuId + "'   type='checkbox' ></input></div>");
                                sb.Append("<div style='float:right; margin-right:180px'><input name='chk_VIEW_" + subsubchild.MenuId + "'   type='checkbox' ></input></div>");
                            }


                            sb.Append("</span>");
                            sb.Append("</li>");
                        }
                        #endregion

                        if (subchild.Children.Count() > 0)
                        {
                            sb.Append("</ul>");
                        }
                        sb.Append("</li>");
                    }
                    #endregion

                    if (child.Children.Count() > 0)
                    {
                        sb.Append("</ul>");
                    }
                    sb.Append("</li>");
                }
                #endregion

                if (menuItem.Children.Count() > 0)
                {
                    sb.Append("</ul>");
                }
                sb.Append("</li>");
            }



            ViewBag.Modulos = sb.ToString();
        }
Exemple #5
0
 public ModuloController(IConfiguration config, IWebHostEnvironment env)
 {
     repository       = new ModuloRepository(config, env);
     cursosRepository = new CursosRepository(config, env);
 }
 /// <summary>
 /// Constructor que recibe el contexto de base
 /// de datos e inicializa los repositorios
 /// </summary>
 /// <param name="context">Contexto de base de datos</param>
 public UnitOfWork(ProyectoContext context)
 {
     _context = context;
     Modulos  = new ModuloRepository(_context);
     Tareas   = new TareaRepository(_context);
 }
Exemple #7
0
 public ModulosController(ModuloRepository repository)
 {
     this._repository = repository ?? throw new ArgumentException(nameof(repository));
 }
Exemple #8
0
 public ModuloBll()
 {
     context    = new Context();
     repository = new ModuloRepository(context);
 }