cancel
Showing results for 
Search instead for 
Did you mean: 

Gathering all possible IDs for rights?

Former Member
0 Kudos

Hello,

I am working with BOBJ security for a few objects in my environment and see there is an ID assigned to every possible right that can be granted within BOE. (i.e. - "Add objects to the folder" = 1, "View Objects" = 3, etc..) Moving beyond the bucket of general rights that can be granted to only specific object types (i.e. - "Download files associated with the report" = 131143), from what I've read these IDs are not static and can vary from environment to environment.

I can retrieve these IDs currently, but would like to be able to do so without having to first retrieve the object for which the rights can be granted. Can anyone point me in the right direction as to how I can gather a full list of all of the right ID's without having to first look at the object the rights can be applied to? Basically just looking to get the full list of rights and their corresponding ID's.

Thanks...

Accepted Solutions (1)

Accepted Solutions (1)

ted_ueda
Active Contributor
0 Kudos

I'm inferring an intent that might have some risk.

The recommendation is to always work interactively with the rights set, rather than try to pre-generate a static list.

I'll note that new rights may be/have been introduced with Service Packs, to address new features or to resolve issues.

Sincerely,

Ted Ueda

Former Member
0 Kudos

My concern is having my script be able to run on any of our test / dev / qa / prod environments (with potentially different rightIDs on each), so I'm thinking what I can do prior to working with any rightIDs is retrieve them all by querying for 1) the rights and rightIDs supported for a single webI report, 2) rights and rightIDs supported for a single Crystal, repeating the process for all the object types I'm concerned with and capturing the IDs specific to the host environment. I don't think there are any huge flaws with this approach?

Edited by: Jeremy Sartori on May 7, 2010 12:26 AM

ted_ueda
Active Contributor
0 Kudos

Ok - then the actual RightID value has several components. The 16 least significant bits don't change across deployments - they're the values enumerated in the SDK.

The next 13 least significant bits represents the ID for the plugin type (the SI_PROGID of the object refers to the plugin type). This value is stored in the CMS repository using SI_OBTYPE.

The SI_OBTYPE for Web Intelligence plugin you can retrieve using the query:

SELECT SI_ID, SI_NAME, SI_OBTYPE From CI_SYSTEMOBJECTS WHERE SI_PARENTID=27 AND SI_NAME='CrystalEnterprise.Webi'

The SI_OBTYPE value is what may differ between deployments.

So actual RightID = (SI_OBTYPE for plugin << 16) + (enumerated RightID)

The next least significant is a flag that denotes whether the right applies only to objects that the User owns.

Hope the above helps -

Sincerely,

Ted Ueda

Former Member
0 Kudos

You may have lost me a little bit... Could you provide a quick example of what you've detailed applied to an example RightID? I don't see how the detail you provided correlates with the RightIDs I'm seeing in my environments:

ex)

17039431 = Download files associated with the object

536870934 = Delete objects that the user owns

38 = Delete instances

1 = Add objects to the folder

I ran the OBTYPE query on my system, and the value returned is not found within any of my RightIDs. Are we talking about different ID's by chance?

If I can get a way to extract a comprehensive list of all the possible rights as listed above I should be set...

ted_ueda
Active Contributor
0 Kudos

Delete, Delete Instances, Download File and Add Child Objects are all distinct rights.

I'd look at the largish values in hex, so you'd have a clearer picture of the bytes.

Sincerely,

Ted Ueda

Answers (0)