Example #1
0
      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;
      }
Example #2
0
      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);
            });
         }
      }
Example #3
0
      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 }));

      }