Getting list of reports a user has access to

Hi,
I'm new to BO and have been trying to figure out a way to get a list of reports a specific user has access to. In reading the documentation in the SDK it appears the only way to do this is to get a list of all reports, loop through them, getting the ObjectPrincipals, looping through that then checking if the objectPrincipal.Name == user.Title.
            foreach (InfoObject report in infoObjects)
                SecurityInfo securityInfo = report.SecurityInfo;
                ObjectPrincipals objectPrincipals = securityInfo.ObjectPrincipals;
                foreach (ObjectPrincipal objectPrincipal in objectPrincipals)
                    if (objectPrincipal.Name != user.Title) continue;
                    if (!sortedList.Contains(report.ID))
                        sortedList.Add(report.ID, report.Title);
This works, but takes over 90 seconds to generate the list of reports I want, as it is looping through all reports in the CMS (120). My logic is telling me there must be a better way to do this, I just haven't found the answer. It appears that calling securityInfo.ObjectPrincipals is what is taking the most time.
Advice, thoughts, suggestions are all appreciated.
Thanks
James

Ok, logging in as a user and getting a list of reports is working well and fast. But how would you recommend getting a list of all users and the reports they are assigned to. Is there a query for that using the relationship functions of Query Builder?
Thanks
James

Similar Messages

  • Getting list of tables the user has access to across different schemas.

    Hi,
    I have to get the list of tables that an User has access to. I tried the below code. It takes a very long time. Is there any way in which I can specify the user name and get all the tables that he has access to? I know that we can use dbMetadata.getTables api. But this returns the list of tables under the said schema. But I want the list of tables that the user has access including tables in other schema.
    In the below code, I am trying to get the tables for which USER_MICHAEL has access to.
    DatabaseMetaData dbMetadata = connection.getMetaData(); String userName = null; dbrs = dbMetadata.getTables(null,userName , "%", new String[] { "TABLE" }); dbrs=dbMetadata.getTablePrivileges("",userName,"%"); while (dbrs.next()) { String tableName = dbrs.getString("TABLE_NAME"); String schema = dbrs.getString("TABLE_SCHEM"); String privilege = dbrs.getString("PRIVILEGE"); String grantee = dbrs.getString("GRANTEE"); if(grantee!=null && grantee.equals("USER_MICHAEL")){       System.out.println("Schema---"+schema+" Table---"+tableName+"  Privilege----"+privilege+"  grantee---- "+grantee); } }

    That would be database dependent.
    Some engines have some system tables that together may be used to extract such information, others may not make it available at all outside closed APIs.

  • How do I get a list of the reports that a user has access to?

    <p>I need to be able to determine which reports a specified user has access to.  This is for an application where users will be able to search and view reports that have been archived through a separate process.  </p><p>I&#39;ve searched through the developer library, but I can&#39;t find this specific information.  Can I use the ObjectPrinicpals class to get this info?</p><p>Thanks!</p><p>-Dell<br /></p>

    Hi Robert!
    Yes, the presentation went well. It was a lot of fun to do and I had a great time at the conference.
    Your suggestion works great if I'm walking down through the reports looking to see who has access to them.Â
    However, I need to do this starting from the User object. When I use the ObjectPrincipals of the User, I get a list of the users who have the rights to modify the user. I did a lot of work on this last week and it boils down to I'm going to have to actually log in as the user (I can use trusted authentication to do this without having the user's password) and then run a query to select all of the reports in the system - this should give me just the reports that the user has access to. Not the most efficient way to get the data from my perspective, but it should work.
    This would be a great feature to have added to future versions of the SDK. I need it for a couple of purposes:
    1. To gather information to set up the security in my archive viewer application.
    2. For auditing purposes - we currently have only Professional licenses so I don't have access to the internal auditing functionality. Plus, I'm not sure that that includes the kind of info I'm looking for so I'm building an app that extracts information to XML which is then used by a couple of reports so that I can provide the audit info as needed.
    -Dell
    Â - A computer only does what you told it to, not what you thought you told it to!</p>

  • Maxl/esscmd to get list of applications/databases that user has access to

    Is there any maxl/esscmd to get the list of applications/databases that a user has access to?
    I know that LISTGROUPUSERS 'groupName' -- this list all users of a group.
    Can anyone help please?

    MaxL
    display privilege user SomeUser;

  • SP 2010 - PowerShell to get all sites/subsites/lists/libraries where "Domain\User123" has access

    Hi there,
    I will appreciate if someone can please give me a PowerShell script to get ALL sites/subsites/lists/libraries where "Domain\User123" has access (any access).
    Thanks.

    This script gave me what I was after http://www.sharepointdiary.com/2013/01/permission-report-for-specific-user.html
    Thanks all.

  • Search which report user has access to?

    I need to search the ReportServer to find which report an individual has access to?
    This will not be via the a UserGroup, but on a individual name basis.
    thanks,

    Hi ,
      Try the below query
    USE ReportServer
    Go
    DECLARE @UserName sysname
    SELECT @UserName ='<UserName>'
    SELECT C.Name
    ,U.UserName
    ,R.RoleName
    ,R.Description
    ,U.AuthType
    FROM Reportserver.dbo.Users U
    JOIN Reportserver.dbo.PolicyUserRole PUR
    ON U.UserID = PUR.UserID
    JOIN Reportserver.dbo.Policies P
    ON P.PolicyID = PUR.PolicyID
    JOIN Reportserver.dbo.Roles R
    ON R.RoleID = PUR.RoleID
    JOIN Reportserver.dbo.Catalog c
    ON C.PolicyID = P.PolicyID
    WHERE U.UserName = @UserName
    ORDER BY U.UserName
    Best Regards Sorna

  • How can I check if an user has access to an url within my web app?

    Hi,
    I have a web application where I allow the users to set their startup page by presenting them a list of startup pages. However, some startup pages can accessed only by certain users, so I want to present the user only those pages the user has access to.
    How can I do this with weblogic?
    One way is to read the web.xml file and determine the roles that have access to the page, then check whether the user has any of those roles.
    Is there a better way eventually using some weblogic api?
    Thanks

    Just for the record, I decided to parse the web.xml file and to simulate whatever the container does.

  • How to determine if a user has access to an item

    Without using the WWSEC_API, i need to find out if a user (not the logged in user) has the right privileges to view an item (url).
    Has anyone identified what tables are involved in determining if a user has access to view an item ?

    Create a vo with the following SQL passing userid as bind value:
    SELECT C.USER_NAME,
    B.RESPONSIBILITY_NAME,
    A.START_DATE,
    A.END_DATE
    FROM APPS.FND_USER_RESP_GROUPS_DIRECT A,
    APPS.FND_RESPONSIBILITY_TL B,
    APPS.FND_USER C
    WHERE C.USER_ID = A.USER_ID
    AND C.USER_NAME= :1
    AND B.RESPONSIBILITY_ID = A.RESPONSIBILITY_ID
    You will have the list of all the responsibilities of a user.
    Kristofer

  • Getting list of reports  and related tables used in those reports using sdk

    some columns are changing in the database tables.
    we like to know how many reports are affected by that .
    please can any one help me in getting list of reports and tables associated with them using  bo sdk.
    thanks for your help in advance

    Open the report with RAS. Then with the ReportClientDocument object:
    oReportClientDocument.getDatabaseController().getDatabase().getTables() will trutns Tables collection object that contains the table information for the report. Then use get() to get Itable object.

  • Restricting user search to the communities the user has access to

    We want to be able to restrict our users to search within the community that user is in or to the communities that user has access to.
    A global portal search is not acceptable. Could someone help me with this. We are running portal 6.0sp1 on solaris.
    Thanks!
    Jamal Najmi

    Hi Jamal Najmi,
    If you have KD hierarchy based on community, then you develop a small search portlet using adaptive tags that will search only those folders in the KD.
    Hope this helps.
    Bharat

  • BO SDK Query to find all folders that a user has access to

    Hi Experts
    Please help me on BO SDK Query to "find all folders that a user has access in a single query".
    I am tried trial & error using PARENTS & CHILDREN. nothing worked
    Please advice
    Thanks!
    Prasath

    Hi Aasavari
    I am checking BO Web services samples and .NET samples. Please advice me the correct files to check the user/folder rights.
    Thank you so much
    Prasath
    http://wiki.sdn.sap.com/wiki/display/BOBJ/NETWebServicesSDKSamples

  • A list of all calendars a user has access to

    Hi All, 
    My situation is as follows, I would like to create a report that will provide me with a list of mailbox calendars where a specific user has permissions and what permissions they have. A simple task, but one that keeps delivering me a roadblock. I haven't started
    the second part as I keep hitting this wall. 
    Heres what I've come up with so far: 
    get-mailbox -resultsize unlimited | get-mailboxfolderpermission "${$_.Name}:\Calendar" | Where {$_.User -like "Some User Name"}
    For each mailbox in $mailboxes it spits out the following error: 
    The input object cannot be bound to any parameters for the command either because the command does not take pipeline input or the input and its properties do not match any of the parameters that take pipeline input.
        + CategoryInfo          : InvalidArgument: (MailboxName:PSObject) [Get-MailboxFolderPermission], ParameterBindingException
        + FullyQualifiedErrorId : InputObjectNotBound,Get-MailboxFolderPermission
    What am I doing wrong? 
    Running this on Exchange 2010 SP3 / Powershell Version 2.0
    Thanks 

    If I understood correctly, this should work...
    ForEach ($mbx in Get-Mailbox) {Get-MailboxFolderPermission ($mbx.Name + ":\Calendar") | Where-Object {$_.User -like <string>} | Select @{Name="Calendar
    Of";expression={($mbx.name)}},User,AccessRights}

  • How to find the list of plants that a user has access to

    Hi,
    Can any one help me pull all the plants that a user has authorization for?
    Is there any fucntion module that gives this list or any table from where i can pull this?
    Please let me know.
    Regards,
    Kumar.

    Looks like this FM is only giving the list of all users who has got authorization to a specific autho object say M_EINF_WRK (plant).
    But my requirement is; i will pass my user id and it should give me all the plants that i have access to.
    Please suggest.
    Regards,
    Kumar.

  • How to get list of reports assigned to User or UserGroup?

    Hi All,
    I want the list of reports which is assigned to User or UserGroup.
    For Ex:
    User Name         :  Sam
    UserGroup Name : ReportingGroup
    I want the list of report assigned to sam or ReportingGroup?
    How can i get it?
    Please help.
    Thanks in advance
    Amol Mali

    Hi Teda,
    Thanks for the reply.
    I mean to say that if you added a user or usergroup to report.
    Then i want the that report information for the user/usergroup.
    suppose a user is added to 10 different reports then i want the list of this report for this user.
    I hope u now understand.
    Please reply
    Thanks in advance
    Amol Mali

  • Log to check as to which user has accessed which report?

    Hi,
    I am using BOBJ for report creation and SAP BI for datawarehousing.
    The user can access these reports using the iviews created in the portal. Due to some performance testing requirements we need to check which user accessed which report and if he has drilled down to a particular level in a report, then there should be a means to know that as well.
    BO offers a few standard activity reports to check which user has done which activity. However the details of drill down etc. cannot be checked using that. Please help as to how can we check that too.
    Best Regards,
    Neha

    Hi,
    See [Business Objects|/community [original link is broken]; and [Crystal Reports|/community [original link is broken]; forums for this topic.
    -Paul

Maybe you are looking for