Esempio n. 1
0
 public Users(int ID)
 {
     using (MainEntities ctx = new MainEntities())
     {
         this.Entity = ctx.sec_users.Find(ID);
     }
 }
Esempio n. 2
0
        public ActionResult DeleteConfirmed(int id)
        {
            sec_users sec_users = db.sec_users.Find(id);

            db.sec_users.Remove(sec_users);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Esempio n. 3
0
        public static APIResult <sec_sessions> GetNewSession(sec_users usr, NameValueCollection request, int platform = 1)
        {
            using (var ctx = new MainEntities())
            {
                IPResult s = new IPResult();

                string   ip    = "";
                string   agent = "";
                IPResult iploc = new IPResult();

                try
                {
                    ip    = request.Get("REMOTE_ADDR");
                    agent = request.Get("HTTP_USER_AGENT");

                    iploc = General.GetResponse("http://ip-api.com/json/" + ip);
                }
                catch (Exception ex)
                {
                    // return APIResult<sec_sessions>.Error(ResponseCode.BackendServerRequest, ex.Message + "get location ip:" + ip + " agent:" + agent);
                }
                try
                {
                    var userSessions = ctx.sec_sessions.Where(a => a.user_id == usr.id && a.end_time == null && a.paltform == platform).FirstOrDefault();
                    if (userSessions != null)
                    {
                        return(APIResult <sec_sessions> .Success(userSessions, "User already logon!"));
                    }

                    Sessions ses = new Sessions();
                    ses.Entity.user_id = usr.id;
                    ses.Entity.ip      = request.Get("REMOTE_ADDR");
                    //IPResult iploc = new IPResult();// General.GetResponse("http://ip-api.com/json/" + ses.Entity.ip);

                    ses.Entity.isp          = iploc.isp;
                    ses.Entity.lat          = iploc.lat;
                    ses.Entity.lon          = iploc.lon;
                    ses.Entity.timezone     = iploc.timezone;
                    ses.Entity.city         = iploc.city;
                    ses.Entity.country      = iploc.country;
                    ses.Entity.country_code = iploc.countryCode;
                    ses.Entity.agent        = request.Get("HTTP_USER_AGENT");
                    ses.Entity.paltform     = platform;
                    ses.Entity.browser      = General.getAgent(ses.Entity.agent).name;
                    ctx.sec_sessions.Add(ses.Entity);

                    ctx.SaveChanges();

                    return(APIResult <sec_sessions> .Success(ses.Entity, "success"));
                }
                catch (Exception ex)
                {
                    return(APIResult <sec_sessions> .Error(ResponseCode.BackendDatabase, ex.Message));
                }
            }
        }
Esempio n. 4
0
 public ActionResult Edit([Bind(Include = "id,pwd,reset_pwd_token,facebook_token,twitter_token,google_token,instagram_token,confirm_mail_token,mail_verified,phone_verified,firebase_uid")] sec_users sec_users)
 {
     if (ModelState.IsValid)
     {
         db.Entry(sec_users).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.id = new SelectList(db.tbl_accounts, "id", "first_name", sec_users.id);
     return(View(sec_users));
 }
Esempio n. 5
0
        public static APIResult <LoginResponse> Register(tbl_accounts acc, string password, string FirebaseUID, NameValueCollection request)
        {
            using (var ctx = new MainEntities())
            {
                var dbuser = ctx.tbl_accounts.Include("sec_users").Where(a => a.sec_users.firebase_uid == FirebaseUID).FirstOrDefault();
                if (dbuser == null)
                {
                    dbuser = acc;

                    ctx.tbl_accounts.Add(dbuser);
                    try
                    {
                        ctx.SaveChanges();
                        sec_users sec_user = new sec_users();

                        sec_user.pwd            = password;
                        sec_user.id             = dbuser.id;
                        sec_user.mail_verified  = true;
                        sec_user.firebase_uid   = FirebaseUID;
                        sec_user.phone_verified = true;
                        ctx.sec_users.Add(sec_user);
                        ctx.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        return(APIResult <LoginResponse> .Error(ResponseCode.BackendDatabase, ex.Message + "save changes1"));
                    }
                }
                else
                {
                    return(APIResult <LoginResponse> .Error(ResponseCode.BackendDatabase, "This user already exists !"));
                }

                var returned = new LoginResponse {
                    account = acc
                };

                var session = GetNewSession(dbuser.sec_users, request, 1);

                if (session.code != ResponseCode.Success)
                {
                    return(APIResult <LoginResponse> .Error(session.code, session.message));
                }

                returned.token = session.data.id;
                returned.roles = ctx.sec_users_roles.Include("sec_roles").Where(a => a.user_id == acc.id).Select(b => b.sec_roles.role_key).ToArray();

                return(APIResult <LoginResponse> .Success(returned, "Register sucessfuly !"));
            }
        }
Esempio n. 6
0
        // GET: Users/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            sec_users sec_users = db.sec_users.Find(id);

            if (sec_users == null)
            {
                return(HttpNotFound());
            }
            return(View(sec_users));
        }
Esempio n. 7
0
        // GET: Users/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            sec_users sec_users = db.sec_users.Find(id);

            if (sec_users == null)
            {
                return(HttpNotFound());
            }
            ViewBag.id = new SelectList(db.tbl_accounts, "id", "first_name", sec_users.id);
            return(View(sec_users));
        }
Esempio n. 8
0
        public static sec_sessions GetNewSession(sec_users usr, int platform = 1)
        {
            using (var ctx = new MainEntities())
            {
                IPResult s = new IPResult();

                string   ip      = "";
                string   agent   = "";
                IPResult iploc   = new IPResult();
                var      request = HttpContext.Current.Request.ServerVariables;
                try
                {
                    ip    = request.Get("REMOTE_ADDR");
                    agent = request.Get("HTTP_USER_AGENT");

                    iploc = General.GetResponse("http://ip-api.com/json/" + ip);
                }
                catch (Exception ex)
                {
                    // return APIResult<sec_sessions>.Error(ResponseCode.BackendServerRequest, ex.Message + "get location ip:" + ip + " agent:" + agent);
                }
                try
                {
                    var userSessions = ctx.sec_sessions.Where(a => a.user_id == usr.id && a.end_time == null && a.paltform == platform && a.end_time == null).FirstOrDefault();
                    if (userSessions != null)
                    {
                        HttpContext.Current.Session.Clear();
                        HttpContext.Current.Session.Add("SESSION_ID", userSessions.id);
                        return(userSessions);
                    }

                    sec_sessions ses = new sec_sessions();
                    ses.user_id = usr.id;
                    ses.ip      = request.Get("REMOTE_ADDR");
                    //IPiploc = new IPResult();// General.GetResponse("http://ip-api.com/json/" + ses.Entity.ip);

                    ses.isp          = iploc.isp;
                    ses.lat          = iploc.lat;
                    ses.lon          = iploc.lon;
                    ses.timezone     = iploc.timezone;
                    ses.city         = iploc.city;
                    ses.country      = iploc.country;
                    ses.country_code = iploc.countryCode;
                    ses.agent        = request.Get("HTTP_USER_AGENT");
                    ses.paltform     = platform;
                    ses.browser      = General.getAgent(ses.agent).name;
                    ses.id           = Guid.NewGuid();
                    ses.start_time   = DateTime.Now;

                    ctx.sec_sessions.Add(ses);

                    ctx.SaveChanges();
                    HttpContext.Current.Session.Clear();
                    HttpContext.Current.Session.Add("SESSION_ID", ses.id);
                    return(ses);
                }
                catch (Exception ex)
                {
                    return(null);
                }
            }
        }
Esempio n. 9
0
        public async Task <APIResult <LoginResponse> > Auth(string email, string password, string first_name, string last_name, HttpContext http, string pic = "", string network = "", string FirebaseUID = "")
        {
            using (DAL.MainEntities ctx = new DAL.MainEntities())
            {
                //try
                //{


                tbl_accounts dbuser = null;
                try
                {
                    if (email != "")
                    {
                        dbuser = ctx.tbl_accounts.Include("sec_users").Where(a => a.email == email).FirstOrDefault();
                    }
                    else
                    if (FirebaseUID != "")
                    {
                        dbuser = ctx.tbl_accounts.Include("sec_users").Where(a => a.sec_users.firebase_uid == FirebaseUID).FirstOrDefault();
                    }

                    if (dbuser == null)
                    {
                        dbuser               = new tbl_accounts();
                        dbuser.email         = email;
                        dbuser.first_name    = first_name;
                        dbuser.last_name     = last_name;
                        dbuser.register_time = DateTime.Now;


                        ctx.tbl_accounts.Add(dbuser);
                        try
                        {
                            ctx.SaveChanges();
                            sec_users sec_user = new sec_users();

                            sec_user.pwd           = password;
                            sec_user.id            = dbuser.id;
                            sec_user.mail_verified = true;

                            if (FirebaseUID != "")
                            {
                                sec_user.firebase_uid = FirebaseUID;
                            }

                            ctx.sec_users.Add(sec_user);
                            ctx.SaveChanges();
                        }
                        //catch (DbEntityValidationException e)
                        //{
                        //    return new APIResult<LoginResponse>(ResultType.fail, null, General.fetchEntityError(e));
                        //}
                        catch (Exception ex)
                        {
                            return(APIResult <LoginResponse> .Error(ResponseCode.BackendDatabase, ex.Message + "save changes1"));
                        }
                    }
                }
                catch (Exception ex)
                {
                    return(APIResult <LoginResponse> .Error(ResponseCode.BackendDatabase, ex.Message + "get dbuser"));
                }
                tbl_images img = ctx.tbl_images.Where(a => a.model_name == "tbl_accounts" && a.model_id == dbuser.id && a.model_tag == "main").FirstOrDefault();
                if (pic != "" && img == null)
                {
                    img = new tbl_images();

                    try
                    {
                        img.original = "/Storage/Original/" + DateTime.Now.ToString("yyyyMMddhhmmss") + "_" + network + ".jpg";
                        string imgPath = ConfigurationManager.AppSettings["mediaServer_Path"] + img.original.Replace("/", "\\");
                        img.large      = img.original;
                        img.thumb      = img.original;
                        img.meduim     = img.original;
                        img.model_id   = dbuser.id;
                        img.model_name = "tbl_accounts";
                        img.model_tag  = "main";
                        System.Net.WebClient webClient = new System.Net.WebClient();

                        webClient.Encoding = System.Text.Encoding.UTF8;


                        webClient.DownloadFile(pic, imgPath);
                        ctx.tbl_images.Add(img);
                    }
                    catch (Exception ex)
                    {
                        // return APIResult<LoginResponse>.(ResultType.fail, null, ex.Message + "Save Image");
                    }
                    try
                    {
                        ctx.SaveChanges();
                    }
                    //catch (DbEntityValidationException e)
                    //{

                    //    return new APIResult<LoginResponse>(ResultType.fail, null, General.fetchEntityError(e));
                    //}
                    catch (Exception ex)
                    {
                        // return new APIResult<LoginResponse>(ResultType.fail, null, ex.Message + "save changes2");
                    }
                }



                var returned = new LoginResponse {
                    account = dbuser
                };
                IPResult s = new IPResult();

                string   ip    = "";
                string   agent = "";
                IPResult iploc = new IPResult();


                //if(HttpContext.Current == null) return new APIResult<LoginResponse>(ResultType.fail, null, "Null HTTPContext");
                //if (http.Request == null) return  APIResult<LoginResponse>.Error(ResponseCode., null, "Null HTTPRequest");
                //if (http.Request.ServerVariables == null) return new APIResult<LoginResponse>(ResultType.fail, null, "Null ServerVariables");
                //if (http.Request.ServerVariables.Count == 0) return new APIResult<LoginResponse>(ResultType.fail, null, "Empty ServerVariables");
                //if (!http.Request.ServerVariables.AllKeys.Contains("REMOTE_ADDR")) return new APIResult<LoginResponse>(ResultType.fail, null, "REMOTE_ADDR Not in ServerVariables");
                //if (!http.Request.ServerVariables.AllKeys.Contains("HTTP_USER_AGENT")) return new APIResult<LoginResponse>(ResultType.fail, null, "HTTP_USER_AGENT No in ServerVariables");
                try
                {
                    ip    = http.Request.ServerVariables.Get("REMOTE_ADDR");
                    agent = http.Request.ServerVariables.Get("HTTP_USER_AGENT");

                    iploc = General.GetResponse("http://ip-api.com/json/" + ip);
                }
                catch (Exception ex)
                {
                    return(APIResult <LoginResponse> .Error(ResponseCode.BackendServerRequest, ex.Message + "get location ip:" + ip + " agent:" + agent));
                }

                try
                {
                    //&& a.ip == ip && a.agent == agent
                    var userSessions = ctx.sec_sessions.Where(a => a.user_id == dbuser.id && a.end_time == null).FirstOrDefault();
                    if (userSessions == null)
                    {
                        Sessions ses = new Sessions();
                        ses.Entity.user_id      = dbuser.id;
                        ses.Entity.ip           = ip;
                        ses.Entity.isp          = iploc.isp;
                        ses.Entity.lat          = iploc.lat;
                        ses.Entity.lon          = iploc.lon;
                        ses.Entity.timezone     = iploc.timezone;
                        ses.Entity.city         = iploc.city;
                        ses.Entity.country      = iploc.country;
                        ses.Entity.country_code = iploc.countryCode;
                        ses.Entity.agent        = agent;


                        ctx.sec_sessions.Add(ses.Entity);
                        ctx.SaveChanges();

                        dbuser.sec_users.sec_sessions = new List <sec_sessions>()
                        {
                            ses.Entity
                        };
                        returned.token = ses.Entity.id;
                    }
                    else
                    {
                        returned.token = userSessions.id;
                    }

                    returned.roles = ctx.sec_users_roles.Include("sec_roles").Where(a => a.user_id == dbuser.id).Select(b => b.sec_roles.role_key).ToArray();
                    return(APIResult <LoginResponse> .Success(returned, "Login Success"));
                }
                catch (DbEntityValidationException e)
                {
                    return(APIResult <LoginResponse> .Error(ResponseCode.BackendDatabase, General.fetchEntityError(e)));
                }
                catch (Exception ex)
                {
                    return(APIResult <LoginResponse> .Error(ResponseCode.BackendDatabase, ex.Message + " Save Session"));
                }

                //}
                //catch (Exception ex)
                //{

                //    throw new Exception( ex.Message + "Auth");
                //}
            }
        }