User Control

I have insall the trail version and run the birt report with oracle data source. 


Now the system requirements are


1. Create user for different clients;


2. The user name related to the birt report they can view and execute;


3. Client can input different parameter value to run the report.


 


Does Actute can realize it?


If yes, can you brief describe how to do it?


 


I have tried in trail version to set user group and user. But I have no idea how to set the visit control?


Comments

  • I think the best solution is going to use user groups to place the users into specific groups related to what they are allowed to see and run.


     


    Each report/folder/item in the iHub can have it's permissions set through the sharing menu.


    To do so, select the down arrow next to a report/folder and choose Share. The new menu will let you assign specific users/groups to the report/folder and decided what they are allowed to do read, execute, delete, etc.


     


    Take a look at this documentation for more details: http://developer.actuate.com/be/documentation/ihub31-dev/ic/index.html#page/using-ip%2Funderstanding-privileges.html%23


    Regards,

     

    Jesse Freeman

    Solution Consultant

    OpenText Corporation

    http://www.actuate.com | http://www.opentext.com

     

  • Thank for reply.


     


    I will try to realize it. 


     


    Another question is if we want to use the username as the parameter to the report. Is it possible?


  • You can, but I wouldn't. You can get the username in the report with this expression:


     


    reportContext.getAppContext.get("ServerUserName")


  • Hi Team, For getting UserGroup name what is the command.

  • You will need to get the whole ACL (access control list), which will include the user and all his/her groups by using this:



    reportContext.getAppContext().get("USER_ACL")
  • Hi Mblock,


     


       Actually i need to filter my parameter based on user group. I can filter it by using 'reportContext.getAppContext.get("ServerUserName")'.


    My parameter will get value from dataset in which i have filtered the query with above command. But instead of username i want to filter with usergroup. I am not creating ACL in my report.


      Also in which table i can get user and usergroup details in iHub. Please let me know the query to get these details in iHub server.

  • It is the user ACL (not the report ACL). So it will be the user and all the groups he belongs to. 


  • Thanks Mblock,


    In the above link they are filtering dataset with UserName from server. But i want to do the same with User Group name. For example,


     


    UserGroup     UserName 


    USA               USA-1


                           USA-2


    GERMANY   GER-1


                          GER-2


    reportContext.getAppContext.get("ServerUserName") will pick the username. I need UserGroup data to filter my query,


     


    select * from test_table where country = ? [UserGroup]


    So that the user's under specific country can get the values in Parameter page. Please let me know some alternate method if there is no similar method as in the mentioned link.

  • As I said before you need to use reportContext.getAppContext().get("USER_ACL"). Instead of equality you need to use an "IN" clause as the user ACL is an array with all the users groups (remember a user can belong to more than one group). What version of Actuate are you using? I can try and create an example for you later this week or early next week. 


  • Hi Mblock,


     


      I am using iServer 11SP4 and BIRT designer professional Version: 11.0.4. We are in plan to upgrade to latest iHub and designer version.


     


    Thanks.

  • There is one there that uses the user ACL named ParameterACL.rptdesign. Please read the DevShare again. 


  • Hi Mblock,


     


       I got it. Thanks. In query i have used "IN" clause to get multiple user group.


     


    if (reportContext.getAppContext().get("USER_ACL") == null) {


    "Australia";

    }

    else {

    aclArray = reportContext.getAppContext().get("USER_ACL");

    aclString = aclArray.join(",");

    locACL = aclString.indexOf("Country_")

    locComma = aclString.indexOf(",",locACL + 1);

    if (locComma > 0) {

    country = aclString.substring(locACL + 8,locComma);

    }

    else {

    country = aclString.substring(locACL + 8);

    }

    country;

    }

     

        This resulting only one value. If user 'D' is in "USA &Germany" then it resulting only Germany not USA. I tried by creating an Array to push all the values from USER_ACL into parameter but i am getting error.

    Please help me out of this. If you provide me a sample that will be better.

  • Hi Mblock,


     


      Got result :). Created a loop and concatenated the values. 


     


     

  • edited April 12, 2017

    Hello,


     


    is this still working for iHub 16? I assigned the method 'reportContext.getAppContext().get("USER_ACL")' to a report variable and put the variable to the report just to print out the result. But its empty.


     


    Did the key-name change?


     


    Thank you


     


    Benjamin


     


    [EDIT]: Its working. Sorry. My fault.


  • Glad to hear that it works. I did not think it had changed.


Sign In or Register to comment.