private OscarSessionData _createOscarSession(string login) { var roles = AuthServices.GetClientRoles(login); if (roles == null || roles.Count() <= 0) { Log.Warn("Unable to retrive client role."); return null; } var role = roles.FirstOrDefault();//TK: Take first only var result = new OscarSessionData { SessionStart = TimeStamp.LocalNow, ClientRole = role, }; var clientId = BplIdentity.Get(AuthServices.GetClientId(login)); if (result.ClientRole != null && result.ClientRole.IsA(OscarRoles.Driver)) { result.UserId = clientId; } return result; }
private void _handleUpdateSessionData(UpdateSessionData updateSessionData, OscarSessionData session, Action<LoginResult> onResult) { Log.Info("Session Update: Start"); var result = new LoginResult { SessionToken = CryptServices.Encode(session), Status = LoginStatus.SessionBlocked }; if (session.IsExpired(SessionTimeout)) { Log.Warn("Session Update: Session is expired. Create valid session first"); onResult(result); } else { var values = new ParameterSet(); values.Parameters.Add(new Parameter { Name = _dVehicle, Value = updateSessionData.UserVehicle }); values.Parameters.Add(new Parameter { Name = _dLocale, Value = updateSessionData.UserLocale.Name }); var preferences = new UpdateSettingsSection { DriverId = session.UserId, Values = values, Section = _dSessionSection }; Services.Invoke(preferences, o => { if (o) { session.VehicleId = updateSessionData.UserVehicle; session.UserLocale = updateSessionData.UserLocale; result.SessionToken = CryptServices.Encode(session); result.Status = LoginStatus.Success; } else { Log.Warn("Session Update: Unable to update session data"); } onResult(result); }, e => { Log.Warn("Session Update: Error processing set preference request {0}", e); onResult(result); }); } }
private void _handleChangePassword(ChangePassword request, OscarSessionData session, Action<BplContextNode> onFinished) { var loginName = AuthServices.GetLoginName(session.UserId); Log.Info("Change password for {0} ({1})", session.UserId, loginName); var password = request.Password; AuthServices.ChangePassword(loginName, password, r => onFinished(new Value<bool> { result = r })); }