public ActionResult Create(systemUser userRegister)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var user = db.systemUsers.Where(a => a.email.Equals(userRegister.email)).FirstOrDefault();
                    if (user == null) //Si no existe usuario con el correo indicado, se crea el usuario.
                    {
                        if (Session["activeSession"] != null && Session["activeSession"].ToString() != "" && (bool)Session["activeSession"] == true)
                        {
                            sendEmailForConfirmation(userRegister);
                            //userRegister.idUserPrivilege = 3; //seteo temporalmente los permisos para download al usuario hasta que se confirme, porque la bbdd no permite nulos
                            // userRegister.idUserState = 3; //seteo el valor de 3 (PENDING), porque la bbdd no admite nulos
                            userRegister.passwordU = ComputeHash256(userRegister.passwordU);
                            db.systemUsers.Add(userRegister);
                            db.SaveChanges();

                            Session.Add("message", "User added successfully");
                            Session["error"]        = null;
                            Session["notification"] = null;
                            return(RedirectToAction("Index"));
                        }
                        else
                        {
                            sendEmailForConfirmation(userRegister);
                            userRegister.idUserPrivilege = 3; //seteo temporalmente los permisos para download al usuario hasta que se confirme, porque la bbdd no permite nulos
                            userRegister.idUserState     = 3; //seteo el valor de 3 (PENDING), porque la bbdd no admite nulos
                            userRegister.passwordU       = ComputeHash256(userRegister.passwordU);
                            db.systemUsers.Add(userRegister);
                            db.SaveChanges();

                            Session.Add("message", "Your account has been created, however it must be activated by the system Administrator. Meanwhile you will not be able to login. Please wait for an approval");
                            Session["error"]        = null;
                            Session["notification"] = null;
                            return(RedirectToAction("Create"));
                        }
                    }
                    else
                    {
                        Session.Add("error", "User already exists!");
                        Session["message"]      = null;
                        Session["notification"] = null;
                        return(RedirectToAction("Create"));
                    }
                }
                else
                {
                    return(View());
                }
            }
            catch (Exception ex)
            {
                Session.Add("error", ex.ToString());
                Session["message"]      = null;
                Session["notification"] = null;
                return(RedirectToAction("Create"));
            }
        }
Exemple #2
0
 public void addNewItem(systemUser data)
 {
     if (data != null)
     {
         context.systemUsers.Add(data);
         context.SaveChanges();
     }
 }
        // GET: systemUsers/Delete/5
        public ActionResult Delete(int id)
        {
            systemUser user = db.systemUsers.Single(i => i.idSystemUser == id);

            user.idUserState = 2;
            db.SaveChanges();
            Session.Add("message", "User desactivated successfully");
            Session["error"]        = null;
            Session["notification"] = null;
            return(RedirectToAction("Index"));
        }
Exemple #4
0
 public void deleteItem(int systemUserId)
 {
     if (systemUserId != 0)
     {
         systemUser theDbRecord = context.systemUsers.Find(systemUserId);
         if (theDbRecord != null)
         {
             context.systemUsers.Remove(theDbRecord);
             context.SaveChanges();
         }
     }
 }
Exemple #5
0
        public systemUser checkSystemUserInformation(string userName, string password)
        {
            systemUser theDatabaseUser = null;

            if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(password))
            {
                int systemUserCheck = context.systemUsers.Where(i => i.Username == userName && i.Passwords == password).Count();
                if (systemUserCheck > 0)
                {
                    theDatabaseUser = context.systemUsers.Where(i => i.Username == userName && i.Passwords == password).FirstOrDefault();
                }
            }
            return(theDatabaseUser);
        }
Exemple #6
0
 public void updateItem(systemUser data)
 {
     if (data != null)
     {
         systemUser theDbRecord = context.systemUsers.Find(data.ID);
         if (theDbRecord != null)
         {
             theDbRecord.Firstname = data.Firstname;
             theDbRecord.Lastname  = data.Lastname;
             theDbRecord.Passwords = data.Passwords;
             context.SaveChanges();
         }
     }
 }
        // GET: systemUsers/Details/5
        public ActionResult Details(int?id)
        {
            Session["message"]      = null;
            Session["notification"] = null;
            Session["error"]        = null;

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            systemUser user = db.systemUsers.Find(id);

            if (user == null)
            {
                return(HttpNotFound());
            }
            return(View(user));
        }
        public string sendEmailForChangeState(systemUser user)
        {
            string subject = "LMI GREAT ICE account activated";
            string cuerpo  = ("Your LMI GREAT ICE account has been activated by the system administrator. From this moment you can login to the system. Welcome!");

            correo.Subject         = subject;
            correo.SubjectEncoding = System.Text.Encoding.UTF8;
            correo.To.Add(user.email);
            correo.Body         = cuerpo;
            correo.BodyEncoding = System.Text.Encoding.UTF8;
            try
            {
                protocolo.Send(correo);
                return("OK");
            }
            catch (SmtpException e)
            {
                return(e.ToString());
            }
        }
        public string sendEmailForRecovery(systemUser user, string temporaryPassword, int pass)
        {
            string subject = "Request for Password Recovery";
            string cuerpo  = ("You have requested a password recovery. This is your temporary password, make sure you update this password once you login in the platform: \n\n" + "Password: "******"OK");
            }
            catch (SmtpException e)
            {
                return(e.ToString());
            }
        }
        public string sendEmailForConfirmation(systemUser newUser)
        {
            string cuerpo = "A new user has registered. A status of pending has been assigned until you confirm the registration. User`s information summary: \n Name: " + newUser.firstName + " \n Last Name: " + newUser.lastName + "\n Email: " + newUser.email + " \n\n To review complete information please login in the system";

            // + " \n Country " + newUser.country.nameCountry + "\n Institution: " + newUser.institution.nameInstitution
            correo.Subject         = "New User Confirmation Required";
            correo.SubjectEncoding = System.Text.Encoding.UTF8;
            correo.To.Add("*****@*****.**");
            correo.Body         = cuerpo;
            correo.BodyEncoding = System.Text.Encoding.UTF8;
            try
            {
                protocolo.Send(correo);
                return("OK");
            }
            catch (SmtpException e)
            {
                return(e.ToString());
            }
        }
        public ActionResult Login(systemUser u) //Allows users start a session
        {
            try
            {
                //if (ModelState.IsValid)
                //{
                string password = ComputeHash256(u.passwordU);
                var    user     = db.systemUsers.Where(a => a.email.Equals(u.email) && a.passwordU.Equals(password)).FirstOrDefault();

                if (user != null)
                {
                    if (user.idUserState == 1) //Activo
                    {
                        Session["idSystemUser"]    = user.idSystemUser;
                        Session["email"]           = user.email;
                        Session["name"]            = user.firstName;
                        Session["privilege"]       = user.userPrivilege;
                        Session["idUserPrivilege"] = user.idUserPrivilege;
                        Session["activeSession"]   = true;
                        Session["error"]           = null;
                        Session["userLogged"]      = u;

                        if (user.idUserPrivilege == 1)
                        {
                            return(RedirectPermanent("Index"));
                        }
                        else
                        {
                            return(RedirectToAction("UserDashBoard", user));
                        }
                        // return RedirectToAction("UserDashboard");
                    }
                    else if (user.idUserState == 3) //Pendiente
                    {
                        Session["error"]        = "Your account is not activated yet, please wait for an approval";
                        Session["message"]      = null;
                        Session["notification"] = null;
                        return(RedirectToAction("Login"));
                    }
                    else //Inactivo
                    {
                        Session["error"]        = "Your account has been desactivated!";
                        Session["message"]      = null;
                        Session["notification"] = null;
                        return(RedirectToAction("Login"));
                    }
                }
                else
                {
                    Session.Add("error", "Invalid Email or Password");
                    Session["message"]      = null;
                    Session["notification"] = null;
                    return(RedirectToAction("Login"));
                }
                // }
                // return View();
            }
            catch (Exception e)
            {
                Session.Add("error", " ERROR! Please contact [email protected] or [email protected]");
                Session["message"]      = null;
                Session["notification"] = null;
                return(View());
            }
        }
        public ActionResult Edit(FormCollection collection, int id, systemUser u)
        {
            try
            {
                // TODO: Add update logic here
                systemUser user = db.systemUsers.Single(i => i.idSystemUser == id);

                if (db.systemUsers.Where(i => i.email == u.email && i.idSystemUser != u.idSystemUser &&
                                         i.idUserState == 1).FirstOrDefault() == null)
                {
                    int aux2 = user.idUserState;

                    user.firstName = u.firstName;
                    user.lastName  = u.lastName;
                    user.email     = u.email;

                    var aux = db.systemUsers.Where(a => a.idSystemUser.Equals(u.idSystemUser)).FirstOrDefault();

                    if (aux.passwordU == u.passwordU)
                    {
                        user.passwordU = aux.passwordU;
                    }
                    else
                    {
                        user.passwordU = ComputeHash256(u.passwordU);
                    }
                    user.idGender      = u.idGender;
                    user.idTitle       = u.idTitle;
                    user.idCountry     = u.idCountry;
                    user.dateOfBirth   = u.dateOfBirth;
                    user.idInstitution = u.idInstitution;

                    if (((int)Session["idUserPrivilege"]) == 1) //Se edita el usuario incluyendo los permisos y el estado
                    {
                        user.idUserPrivilege = u.idUserPrivilege;
                        user.idUserState     = u.idUserState;
                        //UpdateModel(user);
                        db.SaveChanges();

                        if (aux2 == 3 && u.idUserState == 1) //Envío correo al usuario indicando que su cuenta ya se activó
                        {
                            sendEmailForChangeState(user);
                        }

                        Session.Add("message", "User updated successfully");
                        Session["error"]        = null;
                        Session["notification"] = null;
                        return(RedirectToAction("Index"));
                    }
                    else //Se edita el usuario sin incluir los permisos y el estado puesto que no tienen autorización
                    {
                        //user.idUserPrivilege = u.idUserPrivilege;
                        //user.idUserState = u.idUserState;
                        //UpdateModel(user);
                        db.SaveChanges();
                        Session.Add("message", "User updated successfully");
                        Session["error"]        = null;
                        Session["notification"] = null;
                        return(RedirectToAction("UserDashBoard"));
                    }
                }
                else
                {
                    Session.Add("error", "A user with the same email alreaddy exists!");
                    Session["message"]      = null;
                    Session["notification"] = null;
                    return(RedirectToAction("Edit", id));
                }
            }
            catch
            {
                return(View());
            }
        }