示例#1
0
        public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext)
        {
            //base.OnAuthorization(actionContext);
            var headers = actionContext.Request.Headers;

            if (actionContext.Request.Headers.Authorization == null)
            {
                PutUnauthorizedResult(actionContext, "No hay autorización");
            }
            else
            {
                try
                {
                    var userPwd = Encoding.UTF8.GetString(Convert.FromBase64String(headers.Authorization.Parameter));

                    var credArray = userPwd.Split(":".ToCharArray());
                    var userName  = credArray[0];
                    var password  = credArray[1];

                    if (Ion_Auth.Login(userName, password) == false)
                    {
                        PutUnauthorizedResult(actionContext, "No existe usuario");
                    }
                }
                catch (Exception ex)
                {
                    PutUnauthorizedResult(actionContext, ex.Message);
                }
            }
        }
示例#2
0
        public ActionResult Login(string user = "", string pass = "", string ReturnUrl = "")
        {
            if (Ion_Auth.Login(user, pass) == true)
            {
                FormsAuthentication.SetAuthCookie(user, false);
                return(Redirect(ReturnUrl == null?ReturnUrl:"/"));
            }

            ViewBag.ReturnUrl = ReturnUrl;
            return(View());
        }
示例#3
0
        // [AuthorizeRoles(ModuleLevel = "users")]
        public ActionResult Details()
        {
            UserModel user_m = new UserModel();

            DataLayer.users user = Ion_Auth.GetUser(User.Identity.Name);
            user_m.email        = user.email;
            user_m.display_name = user.display_name;
            user_m.username     = user.username;

            return(View(user_m));
        }
示例#4
0
        public ActionResult Index(string user = "", string pass = "", string ReturnUrl = "/", string App = "")
        {
            if (Ion_Auth.Login(user, pass) == true)
            {
                if (App == "")
                {
                    App = "RK";
                }


                string url = "";
                FormsAuthenticationTicket authticket = new FormsAuthenticationTicket(1, user, DateTime.Now, DateTime.Now.AddMinutes(40), true, user, FormsAuthentication.FormsCookiePath);

                // Encrypt the ticket.
                string encTicket = FormsAuthentication.Encrypt(authticket);

                // Create the cookie.
                Response.Cookies.Add(new HttpCookie(".APP" + App, encTicket));
                switch (App)
                {
                case "COBAVIAT":
                case "COVECO":
                    url = Settings.Get("app_" + App.ToLower()) + ReturnUrl;

                    break;

                default:
                    url = ReturnUrl;

                    break;
                }


                return(Redirect(url));
            }
            ViewBag.App       = App;
            ViewBag.ReturnUrl = ReturnUrl;
            return(View());
        }
示例#5
0
        //
        // GET: /Admin/


        public AdminController(string section = "", string icon = "")
        {
            rekursosEntities db = new rekursosEntities();

            System.Web.HttpContext HttpContext = System.Web.HttpContext.Current;
            var type = this.GetType();

            ViewBag.Type = type;
            Dictionary <string, List <Menu> > MenuItems = new Dictionary <string, List <Menu> >();

            if (HttpContext.User.Identity.IsAuthenticated)
            {
                var User = Ion_Auth.GetUser(HttpContext.User.Identity.Name);
                ViewBag.UserCurrent = User;
                Dictionary <string, string[]> ListPermissions = PermissionModel.GetGroup((int)User.group_id);

                foreach (var module in db.modules.Where(w => w.menu != "0" && w.is_backend == 1).Where(w => w.installed == 1).ToList())
                {
                    if (ListPermissions.ContainsKey(module.slug) || User.groups.name == "admin")
                    {
                        if (MenuItems.ContainsKey(module.menu) == false)
                        {
                            MenuItems.Add(module.menu, new List <Menu>());
                        }
                        MenuItems[module.menu].Add(new Menu {
                            slug = module.slug, name = module.name
                        });
                    }
                }
            }


            Module ModuleDetails = new Module()
            {
                icon = "", description = "", name = ""
            };

            if (section != "")
            {
                var module = db.modules.Where(w => w.slug == section).SingleOrDefault();

                if (module != null)
                {
                    //ModuleDetails.ShortCuts = new List<ShortCuts>();
                    switch (module.slug)
                    {
                    /*case "viaticos":
                     *  ModuleDetails.icon = "ion-card";
                     *  break;
                     * case "comisiones":
                     *  ModuleDetails.icon = "ion-android-list";
                     *  break;
                     *
                     * case "empleados":
                     *  ModuleDetails.icon = "ion-ios-people";
                     *  break;
                     * case "settings":
                     *  ModuleDetails.icon = "ion-gear-b";
                     *  break;
                     * case "liquidaciones":
                     *  ModuleDetails.icon = "ion-cash";
                     *  break;*/
                    default:
                        //ModuleDetails.icon = icon;
                        break;
                    }
                    ModuleDetails.name        = module.name;
                    ModuleDetails.description = module.description;



                    ///ModuleDetails.ShortCuts.Add(new ShortCuts { Name = "Agregar localidad", Class = "btn btn-success", Uri = "localidades/Create" });
                }
                else
                {
                    ModuleDetails.icon        = "ion-help";
                    ModuleDetails.name        = "NA";
                    ModuleDetails.description = "Sin descripción del módulo.";
                }
            }
            ViewBag.MenuItems = MenuItems;

            ViewBag.ModuleDetails = ModuleDetails;
        }
示例#6
0
        public ActionResult Save(UserModel user_m, string tab = "profile")
        {
            users update = new users();
            users user   = Ion_Auth.GetUser(User.Identity.Name, false);

            update.id         = user.id;
            update.group_id   = user.group_id;
            update.password   = user.password;
            update.active     = user.active;
            update.created_on = user.created_on;
            update.last_login = user.last_login;
            update.username   = user.username;

            update.display_name = user.display_name;
            update.email        = user.email;


            switch (tab)
            {
            case "profile":

                update.email        = user_m.email;
                update.display_name = user_m.display_name;
                //update.password = user.password;
                break;

            case "password":
                if (user_m.old_password != "" && Sha1.SHA1HashStringForUTF8String(user_m.old_password) != user.password)
                {
                    ModelState.AddModelError("Error", "La antigua contraseña es inválida.");
                }
                if (user_m.new_password != user_m.retype_password)
                {
                    ModelState.AddModelError("Error1", "La nueva contraseña no coinciden.");
                }
                else
                {
                    update.password = Sha1.SHA1HashStringForUTF8String(user_m.new_password);
                }
                break;
            }
            if (ModelState.IsValid)
            {
                //user.groups = null;
                db.Entry(update).State = EntityState.Modified;
                db.SaveChanges();

                FlashData.SetFlashData("success", "Tu cuenta ha sido modificada satisfactoriamente");
            }
            else
            {
                string errors = "";
                foreach (ModelState modelState in ViewData.ModelState.Values)
                {
                    foreach (ModelError error in modelState.Errors)
                    {
                        errors += error.ErrorMessage + "\n";
                    }
                }

                if (errors != "")
                {
                    FlashData.SetFlashData("error", errors);
                }
            }
            return(RedirectToAction("Details"));
        }