Exemple #1
0
        /// <summary>
        /// Currents the users devices.
        /// </summary>
        /// <param name="showActiveOnly">if set to <c>true</c> [show active only].</param>
        /// <returns></returns>
        public UserDevices CurrentUsersDevices(bool showActiveOnly = false)
        {
            try
            {
                #region pre-processing

                string additionalQuery = string.Empty;

                if (showActiveOnly)
                {
                    additionalQuery = "?active=true";
                }

                #endregion end pre-processing

                #region processing

                UserDevices result = GetRequest <UserDevices>(string.Concat(PushbulletConstants.BaseUrl, PushbulletConstants.DevicesUrls.Me, additionalQuery).Trim());
                return(result);

                #endregion processing
            }
            catch (Exception)
            {
                throw;
            }
        }
        public UserDevices GetPlayerId(int userid, string playerId)
        {
            UserDevices result = _dBtsics.UserDevices.
                                 Where(uid => uid.UserId == userid).
                                 SingleOrDefault(pid => pid.PlayerId == playerId);

            return(result);
        }
        public bool ShouldSerializeUserDevices()
        {
            if (UserDevices == null)
            {
                return(false);
            }

            return(UserDevices.Count <= 0 || UserDevices.ToList()[0].RepairDevice == null);
        }
Exemple #4
0
        public static string GetUserDevice(RestCommand command, int userDeviceID)
        {
            UserDevice userDevice = UserDevices.GetUserDevice(command.LoginUser, userDeviceID);

            if (userDevice.OrganizationID != command.Organization.OrganizationID)
            {
                throw new RestException(HttpStatusCode.Unauthorized);
            }
            return(userDevice.GetXml("UserDevice", true));
        }
        public void InsertData(UserDevices userDevices)
        {
            var cek = GetPlayerId(userDevices.UserId, userDevices.PlayerId);

            if (cek == null)
            {
                userDevices.Status = 1;
                _dBtsics.UserDevices.Add(userDevices);
                _dBtsics.SaveChanges();
            }
        }
Exemple #6
0
        public UserDevices InsertData(UserDevices userDevices)
        {
            var cek = GetPlayerId(userDevices.UserId, userDevices.PlayerId);

            if (cek == null)
            {
                _tsicsContext.UserDevices.Add(userDevices);
                _tsicsContext.SaveChanges();
            }

            return(userDevices);
        }
Exemple #7
0
        public JsonResult GetComputerName(string computerName)
        {
            var userDevices = new UserDevices(User.Identity.Name);
            // Cache has a default time limit of 20 minutes, so will get new results every 20 minutes
            IAppCache             cache = new CachingService();
            Func <List <string> > complexObjectFactory = () => userDevices.GetDevices();
            List <string>         fullDeviceList       = cache.GetOrAdd("CMComputerList", complexObjectFactory);


            var returnList = fullDeviceList.Where(p => p.ToLower().Contains(computerName.ToLower())); //.Select(p => new { label = p });

            return(Json(returnList.Take(50), JsonRequestBehavior.AllowGet));
        }
Exemple #8
0
        public static string GetUserDevices(RestCommand command)
        {
            UserDevices userDevices = new UserDevices(command.LoginUser);

            userDevices.LoadByOrganizationID(command.Organization.OrganizationID);

            if (command.Format == RestFormat.XML)
            {
                return(userDevices.GetXml("UserDevices", "UserDevice", true, command.Filters));
            }
            else
            {
                throw new RestException(HttpStatusCode.BadRequest, "Invalid data format");
            }
        }
Exemple #9
0
 /// <summary>
 /// This method will be called during manual saving and automatically when form is closing.
 /// </summary>
 public static void SaveAll()
 {
     Properties.Settings.Default.Save();
     OptionsData.Save();
     UserSettings.Save();
     Summaries.Save();
     Programs.Save();
     UserGames.Save();
     Presets.Save();
     Layouts.Save();
     UserDevices.Save();
     UserMacros.Save();
     PadSettings.Save();
     UserInstances.Save();
     XInputMaskScanner.FileInfoCache.Save();
 }
        /// <summary>
        /// Currents the users active devices.
        /// </summary>
        /// <returns></returns>
        public UserDevices CurrentUsersActiveDevices()
        {
            try
            {
                #region processing

                UserDevices result = CurrentUsersDevices();
                result.Devices = result.Devices.Where(o => o.active).ToList();
                return(result);

                #endregion processing
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #11
0
        public ActionResult Index()
        {
            var userDevices = new UserDevices(User.Identity.Name);

            if (!_settings.Configured)
            {
                return(Redirect("Admin"));
            }
            var vm = new IndexViewModel();

            vm.ComputerList = new SelectList(
                userDevices.GetUserDevices()
                .Select(p => p.DeviceDisplayName)
                .ToArray()
                );
            return(View(vm));
        }
        /// <summary>
        /// Currents the users devices.
        /// </summary>
        /// <returns></returns>
        public UserDevices CurrentUsersDevices()
        {
            try
            {
                #region processing

                UserDevices result     = new UserDevices();
                string      jsonResult = GetRequest(string.Concat(PushbulletConstants.BaseUrl, PushbulletConstants.DevicesUrls.Me));
                result = JsonSerializer.Deserialize <UserDevices>(jsonResult);
                return(result);

                #endregion processing
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #13
0
        public string WakeDevice(string computerName, bool alwaysWake = false)
        {
            Log.Information($"User {User.Identity.Name} is requesting to wake up {computerName}");
            var userDevices = new UserDevices(User.Identity.Name);
            var vm          = new IndexViewModel();

            if (alwaysWake && vm.GetsTextBox)
            {
                var resId = userDevices.GetResourceId(computerName);
                try
                {
                    Log.Information("Found device - checking if it needs to wake up");
                    return(userDevices.WOL(resId, alwaysWake));
                }
                catch (Exception ex)
                {
                    Log.Error(ex, "Error waking up device");
                    return("Error trying to turn on device. You can still run the Default.rdp file to try and connect.");
                }
            }
            foreach (var d in userDevices.GetUserDevices())
            {
                if (d.DeviceDisplayName.Equals(computerName))
                {
                    try
                    {
                        Log.Information("Found device - checking if it needs to wake up");
                        return(userDevices.WOL(d.DeviceResourceId));
                    }
                    catch (Exception ex)
                    {
                        Log.Error(ex, "Error waking up device");
                        return("Error trying to turn on device. You can still run the Default.rdp file to try and connect.");
                    }
                }
            }

            Log.Information("Device not found! Returning");
            return(string.Empty);
        }
Exemple #14
0
        public ActionResult GetRDPFile(string computerName = "", string fullComputerName = "")
        {
            var userDevices = new UserDevices(User.Identity.Name);

            foreach (var d in userDevices.GetUserDevices())
            {
                if (d.DeviceDisplayName.Equals(computerName))
                {
                    fullComputerName = d.DeviceName;
                }
            }

            string filePath = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".rdp";

            if (System.IO.File.Exists(filePath))
            {
                System.IO.File.Delete(filePath);
            }
            using (FileStream fs = System.IO.File.Create(filePath))
            {
                Byte[] title = new UTF8Encoding(true).GetBytes("full address:s:" + fullComputerName + "\nprompt for credentials:i:1");
                fs.Write(title, 0, title.Length);
            }
            string contentType = MimeMapping.GetMimeMapping(filePath);
            var    fileBytes   = System.IO.File.ReadAllBytes(filePath);
            //dataStream = new MemoryStream(fileBytes);
            var cd = new System.Net.Mime.ContentDisposition
            {
                FileName = "Default.rdp",
                Inline   = false,
            };

            System.IO.File.Delete(filePath);
            Response.AppendHeader("Content-Disposition", cd.ToString());
            return(File(fileBytes, contentType));
        }
        public string CodeVerification(int userId, string codeEntered)
        {
            SignInResult result    = new SignInResult();
            LoginUser    loginUser = LoginUser.Anonymous;

            try
            {
                Users users = new Users(loginUser);
                users.LoadByUserID(userId);
                result.UserId = userId;

                if (users.Count > 0)
                {
                    result.OrganizationId = users[0].OrganizationID;

                    string codeSent = users[0].verificationCode;
                    codeEntered = codeEntered.Trim();
                    codeEntered = codeEntered.Replace(" ", string.Empty);

                    if (codeSent == codeEntered)
                    {
                        if (users[0].verificationCodeExpirationUtc > DateTime.UtcNow)
                        {
                            users[0].verificationCode           = null;
                            users[0].verificationCodeExpiration = null;
                            users.Save();

                            UserDevices devices = new UserDevices(loginUser);
                            UserDevice  device  = devices.AddNewUserDevice();
                            device.DateActivated = DateTime.UtcNow;
                            device.IsActivated   = true;
                            device.DeviceID      = Guid.NewGuid().ToString();
                            device.UserID        = users[0].UserID;
                            devices.Save();

                            EmailPosts.SendNewDevice(loginUser, users[0].UserID);

                            HttpCookie deviceCookie = new HttpCookie("di", device.DeviceID);
                            deviceCookie.Expires = DateTime.Now.AddYears(14);
                            HttpContext.Current.Response.Cookies.Add(deviceCookie);

                            result.Result = LoginResult.Success;
                            string authenticateResult = AuthenticateUser(users[0].UserID, users[0].OrganizationID, false, false);
                        }
                        else
                        {
                            result.Error  = "Verification Code has expired.";
                            result.Result = LoginResult.Fail;
                        }
                    }
                    else
                    {
                        result.Error  = "Invalid Verification Code.";
                        result.Result = LoginResult.Fail;
                    }
                }
                else
                {
                    result.Error  = "User not found.";
                    result.Result = LoginResult.Fail;
                }
            }
            catch (Exception ex)
            {
                result.Error  = ex.Message;
                result.Result = LoginResult.Fail;
            }

            return(JsonConvert.SerializeObject(result));
        }
Exemple #16
0
        // POST: api/MobileLogin
        public IHttpActionResult Post(MobileLogin plainTextLoginData)
        {
            if (!Common.GetAuthorization(Request))
            {
                return(Ok(new { Code = 401, Message = "Unauthorization" }));
            }
            using (TsicsContext db = new TsicsContext())
            {
                db.Database.ExecuteSqlCommand("delete from UserDevices where PlayerId = '' or PlayerId = null");
            }
            //Check User Login
            UserBusinessService userBs = Factory.Create <UserBusinessService>("User", ClassType.clsTypeBusinessService);

            MobileLogin loginData = new MobileLogin
            {
                Xupj = plainTextLoginData.Xupj, Password = Common.Base64Encode(plainTextLoginData.Password)
            };
            User userM = userBs.CheckLoginMobile(loginData);

            if (userM != null)
            {
                var usrd = new UserDevices {
                    UserId = userM.UserId, PlayerId = plainTextLoginData.PlayerId
                };
                userM.MobileToken = Common.AccessToken() + userM.UserId;
                userM.PlayerId    = plainTextLoginData.PlayerId;
                userBs.Edit(userM);

                if (usrd.PlayerId != null)
                {
                    userBs.InsertData(usrd);
                }
                if (!string.IsNullOrWhiteSpace(userM.PhotoProfile))
                {
                    userM.PhotoProfile = WebConfigure.GetDomain() + "/Upload/UserProfile/" + userM.PhotoProfile;
                }
                else
                {
                    userM.PhotoProfile = WebConfigure.GetDomain() + "/assets/images/repository/avatar-default.jpg";
                }

                UserAPI userData = new UserAPI()
                {
                    UserId          = userM.UserId,
                    Name            = userM.Name,
                    EmployeeId      = userM.EmployeeId,
                    AreaName        = string.IsNullOrWhiteSpace(userM.AreaName) ? "HEAD OFFICE" : userM.AreaName,
                    BranchName      = string.IsNullOrWhiteSpace(userM.BranchName) ? "" : userM.BranchName,
                    CreatedAt       = userM.CreatedAt,
                    AreaCode        = userM.AreaCode,
                    BranchCode      = userM.BranchCode,
                    MasterAreaId    = userM.MasterAreaId,
                    MasterBranchId  = userM.MasterBranchId,
                    Email           = userM.Email,
                    RoleId          = userM.RoleId,
                    RoleDescription = userM.RoleDescription,
                    RoleName        = userM.RoleId == 0 || _UserRoleBusinessService.GetDetail(userM.RoleId) == null ? "GUEST" : _UserRoleBusinessService.GetDetail(userM.RoleId).Name,
                    Dob             = userM.Dob,
                    IsDelegate      = userM.IsDelegate,
                    MobileToken     = userM.MobileToken,
                    PhotoProfile    = userM.PhotoProfile,
                    POH_Name        = userM.POH_Name,
                    Status          = userM.Status,
                    MobilePassword  = userM.MobilePassword,
                    Position        = userM.Position,
                    Phone           = userM.Phone,
                    PlayerId        = userM.PlayerId,
                    Username        = userM.Username,
                    TechnicalJobExperienceDuration = userM.TechnicalJobExperienceDuration,
                    TechnicalJobTitle = userM.TechnicalJobTitle,
                };
                Delegation userD = userBs.GetDetailDelegationByUserFrom(userM.UserId);
                if (userD != null)
                {
                    DelegationAPI delegationAPI = new DelegationAPI()
                    {
                        DelegateId = userD.DelegateId,
                        StartDate  = userD.StartDate.Value.ToString("dddd, dd MMMM yyyy"),
                        EndDate    = userD.EndDate.Value.ToString("dddd, dd MMMM yyyy"),
                        ToUser     = userBs.GetDetail(userD.ToUser),
                        Status     = userD.Status,
                        CreatedAt  = userD.CreatedAt.Value.ToString("dddd, dd MMMM yyyy")
                    };
                    return(Ok(new { Code = 200, Authorization = "true", Data = userData, delegation = delegationAPI }));
                }
                else
                {
                    DelegationAPI delegationAPI = new DelegationAPI()
                    {
                        DelegateId = 0,
                        StartDate  = null,
                        EndDate    = null,
                        FromUser   = null,
                        ToUser     = null,
                        Status     = 0,
                        CreatedAt  = null
                    };
                    return(Ok(new { Code = 200, Authorization = "true", Data = userData, delegation = delegationAPI }));
                }
            }
            else
            {
                return(Ok(new { Code = 401, Authorization = "false", Message = "Gagal Login" }));
            }
        }
        private string DoSignIn(string email, string password, int organizationId, bool verificationRequired, bool rememberMe)
        {
            try
            {
                SignInResult result       = new SignInResult();
                LoginUser    loginUser    = LoginUser.Anonymous;
                User         user         = null;
                Organization organization = null;
                result = IsValid(loginUser, email, password, organizationId, ref user, ref organization);

                if (result.Result == LoginResult.Success)
                {
                    // DEVICE VERIFICATION // TRUE ALLOWS BYPASS.
                    UserDevices devices = new UserDevices(loginUser);
                    devices.LoadByUserIDAndDeviceID(user.UserID, GetDeviceID());
                    // if (organization.RequireTwoFactor) {
                    //    _skipVerification = false;
                    if (devices.IsEmpty)
                    {
                        _skipVerification = false;
                    }
                    else if (devices[0].IsActivated)
                    {
                        _skipVerification = true;
                    }
                    else
                    {
                        _skipVerification = false;
                    }

                    if (organization.TwoStepVerificationEnabled && verificationRequired && !_skipVerification)
                    {
                        string userVerificationPhoneNumber = user.verificationPhoneNumber;

                        if (!string.IsNullOrEmpty(userVerificationPhoneNumber))
                        {
                            int  verificationCode      = 0;
                            bool isNewVerificationCode = false;

                            if (!string.IsNullOrEmpty(user.verificationCode) && user.verificationCodeExpirationUtc > DateTime.UtcNow)
                            {
                                bool isNumeric = int.TryParse(user.verificationCode, out verificationCode);

                                if (!isNumeric)
                                {
                                    verificationCode      = SendAndGetVerificationCode(userVerificationPhoneNumber);
                                    isNewVerificationCode = true;
                                }
                            }
                            else
                            {
                                verificationCode      = SendAndGetVerificationCode(userVerificationPhoneNumber);
                                isNewVerificationCode = true;
                            }

                            if (verificationCode > 0)
                            {
                                if (isNewVerificationCode)
                                {
                                    user.verificationCode           = verificationCode.ToString();
                                    user.verificationCodeExpiration = DateTime.UtcNow.AddMinutes(MINUTESTOEXPIREVERIFICATIONCODE);
                                    user.Collection.Save();
                                }

                                result.Result = LoginResult.VerificationNeeded;
                            }
                            else
                            {
                                result.Error  = "Verification Code failed to be generated or sent.";
                                result.Result = LoginResult.Fail;
                            }
                        }
                        else
                        {
                            result.Error  = "Organization requires two step verification and user does not have a verification phone number setup.";
                            result.Result = LoginResult.VerificationSetupNeeded;
                        }
                    }
                    else
                    {
                        string authenticateResult = AuthenticateUser(user.UserID, user.OrganizationID, rememberMe, false);
                    }
                }
                else if (result.Result == LoginResult.PasswordExpired)
                {
                    string authenticateResult = AuthenticateUser(user.UserID, user.OrganizationID, rememberMe, false);
                    result.RedirectURL = string.Format("LoginNewPassword.html?UserID={0}&Token={1}", user.UserID, user.CryptedPassword);
                }

                return(JsonConvert.SerializeObject(result));
            }
            catch (Exception ex)
            {
                SignInResult errorResult = new SignInResult();
                errorResult.Error  = "There was a error signing you in. Please verify your email and password and try again.";
                errorResult.Result = LoginResult.Fail;
                return(JsonConvert.SerializeObject(ex));
            }
        }