Package it.eng.spagobi.commons.bo

Examples of it.eng.spagobi.commons.bo.UserProfile


    try {
      if (!this.getErrorHandler().isOKBySeverity(EMFErrorSeverity.ERROR)) {
        throw new Exception("Error handler contains errors, cannot save remember me!!");
      }
      SessionContainer permSession = this.getRequestContainer().getSessionContainer().getPermanentContainer();
      UserProfile profile = (UserProfile) permSession.getAttribute(IEngUserProfile.ENG_USER_PROFILE);
      String userId = profile.getUserId().toString();
      String name = (String) serviceRequest.getAttribute("name");
      String description = (String) serviceRequest.getAttribute("description");
      String docIdStr = (String) serviceRequest.getAttribute(SpagoBIConstants.OBJECT_ID);
      Integer docId = new Integer(docIdStr);
     
View Full Code Here


    logger.debug("IN");
    try {
      String rememberMeIdStr = (String) request.getAttribute("REMEMBER_ME_ID");
      Integer rememberMeId = new Integer(rememberMeIdStr);
      RememberMe rm = DAOFactory.getRememberMeDAO().getRememberMe(rememberMeId);
      UserProfile profile = (UserProfile) this.getRequestContainer().getSessionContainer().getPermanentContainer().getAttribute(IEngUserProfile.ENG_USER_PROFILE);
      // check if user is able to erase remember me
      String userId = profile.getUserId().toString();
      if (rm != null) {
        if (userId.equals(rm.getUserName())) {
          logger.warn("Deleting RememberMe with id = " + rememberMeIdStr + " ...");
          DAOFactory.getRememberMeDAO().delete(rememberMeId);
        } else {
View Full Code Here

     
      String jpaQueryStr = statement.getQueryString();
      //String sqlQuery = statement.getSqlQueryString();
      logger.debug("Executable query (HQL/JPQL): [" +  jpaQueryStr+ "]");
      //logger.debug("Executable query (SQL): [" + sqlQuery + "]");
      UserProfile userProfile = (UserProfile)engineInstance.getEnv().get(EngineConstants.ENV_USER_PROFILE);
      auditlogger.info("[" + userProfile.getUserId() + "]:: HQL/JPQL: " + jpaQueryStr);
      //auditlogger.info("[" + userProfile.getUserId() + "]:: SQL: " + sqlQuery);
     
     
      logger.debug("Executing query ...");
      dataSet = QbeDatasetFactory.createDataSet(statement);
      dataSet.setAbortOnOverflow(isMaxResultsLimitBlocking);
       
      Map userAttributes = new HashMap();
      UserProfile profile = (UserProfile)engineInstance.getEnv().get(EngineConstants.ENV_USER_PROFILE);
      Iterator it = profile.getUserAttributeNames().iterator();
      while(it.hasNext()) {
        String attributeName = (String)it.next();
        Object attributeValue = profile.getUserAttribute(attributeName);
        userAttributes.put(attributeName, attributeValue);
      }
      dataSet.addBinding("attributes", userAttributes);
      dataSet.addBinding("parameters", engineInstance.getEnv());
      dataSet.loadData(start, limit, (maxSize == null? -1: maxSize.intValue()));
View Full Code Here

            boolean isMaxResultsLimitBlocking = QbeEngineConfig.getInstance().isMaxResultLimitBlocking();
            dataSet = QbeDatasetFactory.createDataSet(statement);
            dataSet.setAbortOnOverflow(isMaxResultsLimitBlocking);
           
            Map userAttributes = new HashMap();
            UserProfile profile = (UserProfile)this.getEnv().get(EngineConstants.ENV_USER_PROFILE);
            Iterator it = profile.getUserAttributeNames().iterator();
            while(it.hasNext()) {
              String attributeName = (String)it.next();
              Object attributeValue = profile.getUserAttribute(attributeName);
              userAttributes.put(attributeName, attributeValue);
            }
            dataSet.addBinding("attributes", userAttributes);
            dataSet.addBinding("parameters", this.getEnv());
            logger.debug("Executing query ...");
View Full Code Here

      statement = getEngineInstance().getStatment()
      statement.setParameters( getEnv() );
     

      String sqlQuery = statement.getSqlQueryString();
      UserProfile userProfile = (UserProfile)getEnv().get(EngineConstants.ENV_USER_PROFILE);
     
      ConnectionDescriptor connection = (ConnectionDescriptor)getDataSource().getConfiguration().loadDataSourceProperties().get("connection");
      DataSource dataSource = getDataSource(connection);
     
      String sqlStatement = buildSqlStatement(crosstabDefinition, query, sqlQuery, statement);
      logger.debug("Querying temporary table: user [" + userProfile.getUserId() + "] (SQL): [" + sqlStatement + "]");
     
      if (!TemporaryTableManager.isEnabled()) {
        logger.warn("TEMPORARY TABLE STRATEGY IS DISABLED!!! " +
            "Using inline view construct, therefore performance will be very low");
        int beginIndex = sqlStatement.toUpperCase().indexOf(" FROM ") + " FROM ".length();
        int endIndex = sqlStatement.indexOf(" ", beginIndex);
        String inlineSQLQuery = sqlStatement.substring(0, beginIndex) + " ( " + sqlQuery + " ) TEMP " + sqlStatement.substring(endIndex);
        logger.debug("Executable query for user [" + userProfile.getUserId() + "] (SQL): [" + inlineSQLQuery + "]");
        auditlogger.info("[" + userProfile.getUserId() + "]:: SQL: " + inlineSQLQuery);
        JDBCDataSet dataSet = new JDBCDataSet();
        dataSet.setDataSource(dataSource);
        dataSet.setQuery(inlineSQLQuery);
        dataSet.loadData();
        dataStore = (DataStore) dataSet.getDataStore();
      } else {
        logger.debug("Using temporary table strategy....");
   
        logger.debug("Temporary table definition for user [" + userProfile.getUserId() + "] (SQL): [" + sqlQuery + "]");
   
        auditlogger.info("Temporary table definition for user [" + userProfile.getUserId() + "]:: SQL: " + sqlQuery);
        auditlogger.info("Querying temporary table: user [" + userProfile.getUserId() + "] (SQL): [" + sqlStatement + "]");

        try {
          dataStore = TemporaryTableManager.queryTemporaryTable(userProfile, sqlStatement, sqlQuery, dataSource);
        } catch (Exception e) {
          logger.debug("Query execution aborted because of an internal exception");
          String message = "An error occurred in " + getActionName() + " service while querying temporary table";       
          SpagoBIEngineServiceException exception = new SpagoBIEngineServiceException(getActionName(), message, e);
          exception.addHint("Check if the base query is properly formed: [" + statement.getQueryString() + "]");
          exception.addHint("Check if the crosstab's query is properly formed: [" + sqlStatement + "]");
          exception.addHint("Check connection configuration: connection's user must have DROP and CREATE privileges");
         
          throw exception;
        }
      }

      Assert.assertNotNull(dataStore, "The dataStore cannot be null");
      logger.debug("Query executed succesfully");
     
      resultNumber = (Integer)dataStore.getMetaData().getProperty("resultNumber");
      Assert.assertNotNull(resultNumber, "property [resultNumber] of the dataStore returned by queryTemporaryTable method of the class [" + TemporaryTableManager.class.getName()+ "] cannot be null");
      logger.debug("Total records: " + resultNumber);     
     
     
      boolean overflow = maxSize != null && resultNumber >= maxSize;
      if (overflow) {
        logger.warn("Query results number [" + resultNumber + "] exceeds max result limit that is [" + maxSize + "]");
        auditlogger.info("[" + userProfile.getUserId() + "]:: max result limit [" + maxSize + "] exceeded with SQL: " + sqlQuery);
      }
     
      CrossTab crossTab = new CrossTab(dataStore, crosstabDefinition);
      JSONObject crossTabDefinition = crossTab.getJSONCrossTab();
     
View Full Code Here

        }
        mc.setProperty(IEngUserProfile.ENG_USER_PROFILE, profile);
      } else {
        logger.debug("User profile for user [" + profile.getUserUniqueIdentifier() + "] retrieved.");
      }
      UserProfile userProfile = (UserProfile) profile;
      logger.info("User profile retrieved: userId = [" + userProfile.getUserId() + "]; username = [" + userProfile.getUserName() + "]");
    } finally {
      logger.debug("OUT");
    }
    return profile;
  }
View Full Code Here

  protected void checkUserPermissionForFunctionality(String userFunctionality, String errorMessage)
            throws NotAllowedOperationException, Exception {
    logger.debug("IN");
    try {
      IEngUserProfile profile = getUserProfile();
      UserProfile userProfile = (UserProfile) profile;
        if (!userProfile.isAbleToExecuteAction(userFunctionality)) {
          logger.error("Current user [" + userProfile.getUserId() + "] has no rights for " + userFunctionality + " functionality.");
          NotAllowedOperationException e = new NotAllowedOperationException();
          e.setFaultString(errorMessage);
          throw e;
        } else {
          logger.debug("Current user [" + userProfile.getUserId() + "] has rights for " + userFunctionality + " functionality.");
        }
    } finally {
      logger.debug("OUT");
    }
  }
View Full Code Here

      statement.setParameters( getEnv() );
     
      //String jpaQueryStr = statement.getQueryString();
      String sqlQuery = statement.getSqlQueryString();
     
      UserProfile userProfile = (UserProfile)getEnv().get(EngineConstants.ENV_USER_PROFILE);
     
     
      // STEP 3: transform the sql query
      GroupByQueryTransformer transformer = new GroupByQueryTransformer();
      List selectFields = SqlUtils.getSelectFields(sqlQuery);
     
      for(int i = 0; i < groupFields.length(); i++) {
        String groupByField = groupFields.getString(i);
        int fieldIndex = query.getSelectFieldIndex(groupByField);   
        Assert.assertTrue(fieldIndex >= 0 && fieldIndex <selectFields.size(), "Impossible to group on field [" + groupByField + "]");
        String[] f = (String[])selectFields.get(fieldIndex);       
        transformer.addGrouByColumn(f[1]!=null? f[1]:f[0], query.getSelectFieldByIndex(fieldIndex).getAlias());
      }
     
      // count column
      transformer.addAggregateColumn("*"/*f[1]!=null? f[1]:f[0]*/, "COUNT", "Records");
     
      // aggregate measures
      List dataMartSelectFields = query.getDataMartSelectFields(true);
      Iterator it = dataMartSelectFields.iterator();
      while (it.hasNext()) {
        DataMartSelectField field = (DataMartSelectField) it.next();
        int fieldIndex = query.getSelectFieldIndex(field.getUniqueName());       
        String[] f = (String[])selectFields.get(fieldIndex);
        IAggregationFunction aggregationFunction = field.getFunction();
        if (aggregationFunction != null && aggregationFunction != AggregationFunctions.NONE_FUNCTION) {
          transformer.addAggregateColumn(f[1]!=null? f[1]:f[0], aggregationFunction.getName(), field.getAlias());
        }
      }
     
      sqlQuery = (String)transformer.transformQuery(sqlQuery);
     
      // STEP 4: execute the query
     
      try {
        logger.debug("Executing query: [" + sqlQuery + "]");
        auditlogger.info("[" + userProfile.getUserId() + "]:: SQL: " + sqlQuery);
       
        dataSet = new JDBCDataSet();
        ConnectionDescriptor connection = (ConnectionDescriptor)getDataSource().getConfiguration().loadDataSourceProperties().get("connection");
        DataSource dataSource = new DataSource();
        dataSource.setJndi(connection.getJndiName());
        dataSource.setHibDialectName(connection.getDialect());
        dataSource.setUrlConnection(connection.getUrl());
        dataSource.setDriver(connection.getDriverClass());
        dataSource.setUser(connection.getUsername());
        dataSource.setPwd(connection.getPassword());
        dataSet.setDataSource(dataSource);
        dataSet.setQuery(sqlQuery);
        dataSet.loadData(start, limit, -1);
        dataStore = dataSet.getDataStore();
      } catch (Exception e) {
        logger.debug("Query execution aborted because of an internal exceptian");
        SpagoBIEngineServiceException exception;
        String message;
       
        message = "An error occurred in " + getActionName() + " service while executing query: [" +  statement.getQueryString() + "]";       
        exception = new SpagoBIEngineServiceException(getActionName(), message, e);
        exception.addHint("Check if the query is properly formed: [" + statement.getQueryString() + "]");
        exception.addHint("Check connection configuration");
        exception.addHint("Check the qbe jar file");
       
        throw exception;
      }
      logger.debug("Query executed succesfully");
     
     
      //dataStore.getMetaData().setProperty("resultNumber", new Integer( (int)dataStore.getRecordsCount() ));
     
      resultNumber = (Integer)dataStore.getMetaData().getProperty("resultNumber");
      Assert.assertNotNull(resultNumber, "property [resultNumber] of the dataStore returned by loadData method of the class [" + dataSet.getClass().getName()+ "] cannot be null");
      logger.debug("Total records: " + resultNumber);     
     
     
      boolean overflow = maxSize != null && resultNumber >= maxSize;
      if (overflow) {
        logger.warn("Query results number [" + resultNumber + "] exceeds max result limit that is [" + maxSize + "]");
        auditlogger.info("[" + userProfile.getUserId() + "]:: max result limit [" + maxSize + "] exceeded with SQL: " + sqlQuery);
      }
           
      dataSetWriter = new JSONDataWriter();
      gridDataFeed = (JSONObject)dataSetWriter.write(dataStore);
     
View Full Code Here

        availableDMFields.add(field.getString("uniqueName"));
        availableQFields.add(field.getString("alias"));
      }
     
      attributes = new HashMap();
      UserProfile profile = (UserProfile)this.getEnv().get(EngineConstants.ENV_USER_PROFILE);
      Iterator it = profile.getUserAttributeNames().iterator();
      while(it.hasNext()) {
        String attributeName = (String)it.next();
        Object attributeValue = profile.getUserAttribute(attributeName);
        attributes.put(attributeName, attributeValue);
      }
     
      parameters = this.getEnv();
     
View Full Code Here

    //  logger.debug("Validating query (SQL): [" + sqlQuery + "]");
      try {
        IDataSet dataSet = QbeDatasetFactory.createDataSet(statement);
       
        Map userAttributes = new HashMap();
        UserProfile profile = (UserProfile)this.getEnv().get(EngineConstants.ENV_USER_PROFILE);
        Iterator it = profile.getUserAttributeNames().iterator();
        while(it.hasNext()) {
          String attributeName = (String)it.next();
          Object attributeValue = profile.getUserAttribute(attributeName);
          userAttributes.put(attributeName, attributeValue);
        }
        dataSet.addBinding("attributes", userAttributes);
        dataSet.addBinding("parameters", this.getEnv());
        dataSet.loadData(0, 1, 1);
View Full Code Here

TOP

Related Classes of it.eng.spagobi.commons.bo.UserProfile

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.