public void createIMEI(ImeiVO imeiVO) throws MSMApplicationException {
   NdgUser userLogged = findNdgUserByName(imeiVO.getUserName());
   if (userManager.userAdminHasPositiveBalance(UserVO.IMEI_LIMIT, userLogged.getUserAdmin())) {
     imeiManager.createIMEI(imeiVO);
     sendDynamicJad(imeiVO.getMsisdn(), imeiVO.getImei());
   } else {
     throw new ImeiLimitReachedException();
   }
   userManager.updateUserAdminBalance(UserVO.IMEI_LIMIT, userLogged.getUserAdmin());
 }
Beispiel #2
0
  private UserVO userPojoToVo(NdgUser user) {
    UserVO vo = new UserVO();
    RoleVO roleVO = new RoleVO();
    roleVO.setName(user.getRole().getRoleName());
    vo.setRole(roleVO);

    CompanyVO companyVO = new CompanyVO();
    companyVO.setCompanyName(user.getCompany().getCompanyName());
    companyVO.setCompanyType(user.getCompany().getCompanyType());
    companyVO.setCompanyCountry(user.getCompany().getCompanyCountry());
    companyVO.setCompanyIndustry(user.getCompany().getCompanyIndustry());
    companyVO.setCompanySize(user.getCompany().getCompanySize());
    vo.setCompany(companyVO);

    vo.setUsername(user.getUsername());
    vo.setPassword(user.getPassword());
    vo.setFirstName(user.getFirstName());
    vo.setLastName(user.getLastName());
    vo.setEmail(user.getEmail());
    vo.setUserAdmin(user.getUserAdmin());

    vo.setCountryCode(user.getCountryCode());
    vo.setAreaCode(user.getAreaCode());
    vo.setPhoneNumber(user.getPhoneNumber());
    vo.setRetCode(UserVO.AUTHENTICATED);
    vo.setUserValidated(user.getUserValidated());
    vo.setValidationKey(user.getValidationKey());

    vo.setHasFullPermissions(user.getHasFullPermissions());
    return vo;
  }
  public SurveyXML loadSurveyAndResultsDB(String username, String idSurvey)
      throws MSMApplicationException, MSMSystemException {
    NdgUser userLogged = findNdgUserByName(username);

    SurveyXML surveyXML = surveyHandler.loadSurveyAndResultsDB(userLogged.getUserAdmin(), idSurvey);

    return surveyXML;
  }
 public QueryInputOutputVO listAllImeis(
     String username, QueryInputOutputVO queryIOVO, boolean withFakeImeis)
     throws MSMApplicationException {
   NdgUser userLogged = findNdgUserByName(username);
   QueryInputOutputVO queryIOVOOutput =
       imeiManager.listAllImeis(userLogged.getUserAdmin(), queryIOVO, withFakeImeis);
   return queryIOVOOutput;
 }
  public void postSurvey(
      String user,
      StringBuffer surveyBuffered,
      TransactionLogVO postSurveyTransaction,
      Boolean isValidateLogin)
      throws MSMApplicationException, MSMSystemException, SurveyFileAlreadyExistsException {
    NdgUser userLogged = findNdgUserByName(user);

    if (!isValidateLogin) {
      if (userManager.userAdminHasPositiveBalance(UserVO.SURVEY_LIMIT, userLogged.getUserAdmin())) {
        surveyHandler.postSurvey(userLogged, surveyBuffered, postSurveyTransaction);
      } else {
        throw new UserLimitReachedException();
      }

      userManager.updateUserAdminBalance(UserVO.SURVEY_LIMIT, userLogged.getUserAdmin());
    } else {
      surveyHandler.postSurvey(userLogged, surveyBuffered, postSurveyTransaction);
    }
  }
  public void createUser(String username, UserVO vo)
      throws MSMApplicationException, MSMSystemException {
    NdgUser userLogged = findNdgUserByName(username);

    if (userManager.userAdminHasPositiveBalance(UserVO.USER_LIMIT, userLogged.getUserAdmin())) {
      vo.setUserAdmin(userLogged.getUserAdmin());

      log.info("createUser(String username, UserVO vo): " + username + " / " + vo.getUsername());

      userManager.createUser(vo);
      userManager.updateUserAdminBalance(UserVO.USER_LIMIT, userLogged.getUserAdmin());
    } else {
      log.info(
          "UserLimitReachedException: createUser(String username, UserVO vo): "
              + username
              + " / "
              + vo.getUsername());

      throw new UserLimitReachedException();
    }
  }
Beispiel #7
0
  public boolean userAdminHasPositiveBalance(Integer balanceItem, String loggedUser) {
    boolean hasPositiveBalance = false;
    String ndgMode = null;

    if (properties.containsKey("NDG_MODE")) {
      ndgMode = properties.getProperty("NDG_MODE");
    }

    char userAdminHasFullPermission = 'N';
    try {
      userAdminHasFullPermission =
          findNdgUserByName(findNdgUserByName(loggedUser).getUserAdmin()).getHasFullPermissions();
    } catch (MSMApplicationException e) {
      e.printStackTrace();
    }

    if (!("hosted".equals(ndgMode))
        || (userAdminHasFullPermission == 'Y')
        || (userAdminHasFullPermission == 'y')) {
      hasPositiveBalance = true;
    } else {
      NdgUser onlineUser = null;
      try {
        onlineUser = findNdgUserByName(loggedUser);
      } catch (MSMApplicationException e) {
        e.printStackTrace();
      }

      Query query = manager.createNamedQuery("userbalance.findByUserAdmin");
      query.setParameter("useradmin", onlineUser.getUserAdmin());

      try {
        UserBalance userBalance = (UserBalance) query.getSingleResult();
        if (balanceItem.intValue() == UserVO.USER_LIMIT.intValue()) {
          hasPositiveBalance = (userBalance.getUsers() > 0);
        } else if (balanceItem.intValue() == UserVO.IMEI_LIMIT.intValue()) {
          hasPositiveBalance = (userBalance.getImeis() > 0);
        } else if (balanceItem.intValue() == UserVO.ALERT_LIMIT.intValue()) {
          hasPositiveBalance = (userBalance.getSendAlerts() > 0);
        } else if (balanceItem.intValue() == UserVO.RESULT_LIMIT.intValue()) {
          hasPositiveBalance = (userBalance.getResults() > 0);
        } else if (balanceItem.intValue() == UserVO.SURVEY_LIMIT.intValue()) {
          hasPositiveBalance = (userBalance.getSurveys() > 0);
        }
      } catch (Exception e) {
        hasPositiveBalance = false;
      }
    }
    return hasPositiveBalance;
  }
  public void postResult(StringBuffer resultBuffered, TransactionLogVO postResultTransaction)
      throws MSMApplicationException, MSMSystemException {

    ResultParser parser = new ResultParser();
    ResultXml resultBean = null;
    NdgUser userLogged = null;

    try {
      resultBean = parser.parseResult(resultBuffered, "UTF-8");
    } catch (Exception e) {
      throw new ResultNotParsedException();
    }

    if (resultBean != null) {
      ImeiVO imei = imeiManager.getIMEI(resultBean.getImei());
      userLogged = findNdgUserByName(imei.getUserName());
      if (userManager.userAdminHasPositiveBalance(UserVO.RESULT_LIMIT, userLogged.getUserAdmin())) {
        resultHandler.postResult(resultBuffered, postResultTransaction);
        userManager.updateUserAdminBalance(UserVO.RESULT_LIMIT, userLogged.getUserAdmin());
      } else {
        throw new UserLimitReachedException();
      }
    }
  }
  public QueryInputOutputVO listAllUsers(String username, QueryInputOutputVO queryIOVO)
      throws MSMApplicationException {
    QueryInputOutputVO queryIOVOOutput = new QueryInputOutputVO();

    if (username != null) {
      NdgUser userLogged = findNdgUserByName(username);

      if (userLogged != null) {
        queryIOVOOutput = userManager.listAllUsers(userLogged.getUserAdmin(), queryIOVO);
      }
    } else {
      throw new UserUnknownException();
    }

    return queryIOVOOutput;
  }
Beispiel #10
0
  public void updateUserAdminBalance(Integer balanceItem, String loggedUser) {
    String ndgMode = null;
    if (properties.containsKey("NDG_MODE")) {
      ndgMode = properties.getProperty("NDG_MODE");
    }

    char userAdminHasFullPermission = 'N';
    try {
      userAdminHasFullPermission =
          findNdgUserByName(findNdgUserByName(loggedUser).getUserAdmin()).getHasFullPermissions();
    } catch (MSMApplicationException e) {
      e.printStackTrace();
    }

    try {
      if ("hosted".equals(ndgMode)) {
        if (!((userAdminHasFullPermission == 'y') || (userAdminHasFullPermission == 'Y'))) {
          NdgUser onlineUser = findNdgUserByName(loggedUser);

          Query query = manager.createNamedQuery("userbalance.findByUserAdmin");
          query.setParameter("useradmin", onlineUser.getUserAdmin());

          UserBalance userBalance = (UserBalance) query.getSingleResult();
          if (balanceItem.intValue() == UserVO.USER_LIMIT.intValue()) {
            userBalance.setUsers(userBalance.getUsers() - 1);
          } else if (balanceItem.intValue() == UserVO.IMEI_LIMIT.intValue()) {
            userBalance.setImeis(userBalance.getImeis() - 1);
          } else if (balanceItem.intValue() == UserVO.ALERT_LIMIT.intValue()) {
            userBalance.setSendAlerts(userBalance.getSendAlerts() - 1);
          } else if (balanceItem.intValue() == UserVO.RESULT_LIMIT.intValue()) {
            userBalance.setResults(userBalance.getResults() - 1);
          } else if (balanceItem.intValue() == UserVO.SURVEY_LIMIT.intValue()) {
            userBalance.setSurveys(userBalance.getSurveys() - 1);
          }

          manager.persist(userBalance);
        }
      }
    } catch (MSMApplicationException e) {
      e.printStackTrace();
    }
  }
Beispiel #11
0
  public UserVO validateLogin(String username, String password) throws MSMApplicationException {
    NdgUser user = findNdgUserByName(username);
    UserVO vo = new UserVO();

    if (user != null) {
      try {
        if (user.getPassword().equals(MD5.createMD5(password))) {
          if ((user.getUserValidated() == 'y' || user.getUserValidated() == 'Y')) {
            vo = userPojoToVo(user);
            vo.setRetCode(UserVO.AUTHENTICATED);
            vo.setFirstTimeUse(user.getFirstTimeUse());

            try {
              NdgUser userAdmin = findNdgUserByName(user.getUserAdmin());
              vo.setHasFullPermissions(userAdmin.getHasFullPermissions());
            } catch (Exception e) {
              log.error("validateLogin: userAdmin not found - admin = " + user.getUserAdmin());
            }

            Query query = manager.createNamedQuery("userbalance.findByUserAdmin");
            query.setParameter("useradmin", user.getUserAdmin());
            UserBalance userAdminBalance = null;
            try {
              userAdminBalance = (UserBalance) query.getSingleResult();
            } catch (Exception e) {
              log.info("New user: "******"LIMIT_IMEIS")));
                initialUserBalance.setResults(
                    Integer.parseInt(properties.getProperty("LIMIT_RESULTS")));
                initialUserBalance.setSendAlerts(
                    Integer.parseInt(properties.getProperty("LIMIT_SEND_ALERTS")));
                initialUserBalance.setSurveys(
                    Integer.parseInt(properties.getProperty("LIMIT_SURVEYS")));
                initialUserBalance.setUser(findNdgUserByName(user.getUserAdmin()));
                initialUserBalance.setUsers(Integer.parseInt(properties.getProperty("LIMIT_USER")));
              } catch (Exception e) {
                initialUserBalance.setImeis(0);
                initialUserBalance.setResults(0);
                initialUserBalance.setSendAlerts(0);
                initialUserBalance.setSurveys(0);
                initialUserBalance.setUser(findNdgUserByName(user.getUserAdmin()));
                initialUserBalance.setUsers(0);
              }
              UserBalanceVO balanceVO = new UserBalanceVO();
              balanceVO.setImeis(initialUserBalance.getImeis());
              balanceVO.setResults(initialUserBalance.getResults());
              balanceVO.setSendAlerts(initialUserBalance.getSendAlerts());
              balanceVO.setSurveys(initialUserBalance.getSurveys());
              balanceVO.setUsers(initialUserBalance.getUsers());
              vo.setUserBalance(balanceVO);
              manager.persist(initialUserBalance);
            } else {
              UserBalanceVO balanceVO = new UserBalanceVO();
              balanceVO.setImeis(userAdminBalance.getImeis());
              balanceVO.setResults(userAdminBalance.getResults());
              balanceVO.setSendAlerts(userAdminBalance.getSendAlerts());
              balanceVO.setSurveys(userAdminBalance.getSurveys());
              balanceVO.setUsers(userAdminBalance.getUsers());
              vo.setUserBalance(balanceVO);
            }
          } else {
            vo.setRetCode(UserVO.EMAIL_NOT_VALIDATED);
            throw new UserEmailNotValidatedException();
          }
        } else {
          vo.setRetCode(UserVO.INVALID_PASSWORD);
          throw new InvalidPasswordException();
        }
      } catch (NoSuchAlgorithmException e) {
        throw new InvalidPasswordGenerationException();
      }
    } else {
      vo.setRetCode(UserVO.INVALID_USERNAME);
      throw new InvalidUsernameException();
    }
    return vo;
  }
Beispiel #12
0
 @Override
 public NdgUser getUserAdmin(String username) throws MSMApplicationException {
   NdgUser user = findNdgUserByName(username);
   NdgUser userAdmin = findNdgUserByName(user.getUserAdmin());
   return userAdmin;
 }
Beispiel #13
0
  public QueryInputOutputVO listAllUsers(String userAdmin, QueryInputOutputVO queryIOVO)
      throws MSMApplicationException {
    if (queryIOVO == null) {
      queryIOVO = new QueryInputOutputVO();
    }

    String sqlCommand = "SELECT U FROM NdgUser U WHERE userAdmin like '" + userAdmin + "'";

    if ((queryIOVO.getFilterText() != null) && (queryIOVO.getFilterFields() != null)) {
      sqlCommand +=
          SqlUtil.getFilterCondition(queryIOVO.getFilterText(), queryIOVO.getFilterFields());
    }

    if ((queryIOVO.getSortField() != null) && (queryIOVO.getIsDescending() != null)) {
      sqlCommand += SqlUtil.getSortCondition(queryIOVO.getSortField(), queryIOVO.getIsDescending());
    }

    Query q = manager.createQuery(sqlCommand);
    queryIOVO.setRecordCount(q.getResultList().size());

    if ((queryIOVO.getPageNumber() != null) && (queryIOVO.getRecordsPerPage() != null)) {
      q.setFirstResult((queryIOVO.getPageNumber() - 1) * queryIOVO.getRecordsPerPage());
      q.setMaxResults(queryIOVO.getRecordsPerPage());
    }

    ArrayList<Object> ret = new ArrayList<Object>();
    ArrayList<NdgUser> al = (ArrayList<NdgUser>) q.getResultList();

    if (al.isEmpty()) {
      throw new UserNotFoundException();
    } else {
      Iterator<NdgUser> it = al.iterator();

      while (it.hasNext()) {
        NdgUser user = it.next();
        UserVO vo = new UserVO();
        RoleVO roleVO = new RoleVO();
        roleVO.setName(user.getRole().getRoleName());
        vo.setRole(roleVO);

        CompanyVO companyVO = new CompanyVO();
        companyVO.setCompanyName(user.getCompany().getCompanyName());
        companyVO.setCompanyCountry(user.getCompany().getCompanyCountry());
        companyVO.setCompanyIndustry(user.getCompany().getCompanyIndustry());
        companyVO.setCompanySize(user.getCompany().getCompanySize());
        companyVO.setCompanyType(user.getCompany().getCompanyType());
        companyVO.setIdCompany(user.getCompany().getIdCompany());
        vo.setCompany(companyVO);

        vo.setUsername(user.getUsername());
        vo.setEmail(user.getEmail());
        vo.setFirstName(user.getFirstName());
        vo.setLastName(user.getLastName());
        vo.setPassword(user.getPassword());
        vo.setCountryCode(user.getCountryCode());
        vo.setAreaCode(user.getAreaCode());
        vo.setPhoneNumber(user.getPhoneNumber());
        vo.setUserAdmin(user.getUserAdmin());
        vo.setUserValidated(user.getUserValidated());

        ret.add(vo);
      }

      queryIOVO.setQueryResult(ret);
    }

    return queryIOVO;
  }