Page Group Security API
Hi,
I'm looking for an API, or something, that will allow me to change the access properties of a page or page group. I need to be able to remove access to a page group with a script. Is this possible? I've looked at the documented APIs but do not see one to do this. Maybe I'm overlooking something.
Thanks in advance.
Ok,
As I also mentioned you could use wwsec_api:
* Removes a group's privileges.
* <p>Call this API to perform one of three possible operations:
* <ul>
* <li>If NULL or nothing is passed into the p_privilege parameter,
* then all privileges for the given group, object_type_name,
* and name are removed.
* <li>If a value is passed into p_privilege, the specified privilege is
* removed.
* <li>If group_id is null, the privilege is removed for all groups.
* </ul>
* <p><b>Example:</b>
* <pre>
* wwsec_api.remove_group_acl(
* p_object_type_name => wwsec_api.PAGE_OBJ,
* p_name => '0/156',
* p_group_id => 3,
* p_privilege => wwsec_api.MANAGE_PRIV
* </pre>
* @param p_object_type_name the type of object, e.g., ADMIN, FOLDER,
* ITEM, etc.
* @param p_name the reference to the object
* @param p_group_id the portal's identifier for a group
* @param p_privilege the privilege to be granted. this should
* exist in WWSEC_PRIVILEGE$
* @param p_owner the owner of the ACL entry
* @param p_disable_invalidations controls whether cache invalidations
* are disabled when removing the group ACL
* Removes a specified privilege from a user.
* Removes all privileges for a given user, object_type_name, and name if
* null or if nothing is passed into p_privilege. If p_privilege is
* specified and p_person_id is null, this procedure removes the specified
* privilege for all persons.
* <p><b>Example:</b>
* <pre>
* wwsec_api.remove_user_acl(
* p_object_type_name => wwsec_api.GROUP_OBJ,
* p_name => '0/156',
* p_person_id => 3,
* p_privilege => wwsec_api.MANAGE_PRIV
* </pre>
* @param p_person_id the portal's identifier for a user
* @param p_object_type_name - the type of secured object, referenced by
* the security API constants that end with '_OBJ'. For example,
* wwsec_api.GROUP_OBJ, wwsec_api.PAGE_OBJ, etc.
* @param p_name the reference to the object
* @param p_privilege the privilege to be granted. this should
* exist in WWSEC_PRIVILEGE$
* @param p_owner the owner of the ACL entry, used for avoiding
* namespace collisions
* @param p_disable_invalidations controls whether cache invalidations
* are disabled when setting the user ACL
Hope this helps,
Higor
Similar Messages
-
Looking for a fast way to check all the Page & Page Group Security? to see what they are all set to w/o having to go though everything manually.
ThanksDid you ever find a solution to this?
-
Page group security through APIs
Is there any way that one can set access security at page group level?
Hi Naxtazzmataur,
you can use the wwsec_api package which is documented here:
- http://www.oracle.com/technology/products/ias/portal/html/plsqldoc/pldoc1014/index.html
Cheers,
Mick. -
after PI-Upgrade to NW-PI-731-SP07, executing the PI-configuration wizard:
step 126 of 162
Assign SLD Data Supplier user to Group SAP_SLD_DATA_SUPPLIER (local SLD)
Error:
Group found, but unique name "SAP_SLD_DATA_SUPPLIER" is not unique!
Execute Java Service
Library: sap.com/tc~lm~ctc~util~core_ear
Class: com.sap.ctc.util.core.services.UserFacade
Method: void com.sap.ctc.util.core.services.UserFacade.addUserToGroup(java.lang.String, java.lang.String)
Arguments (2)
userName : SLD_DS_EXE
groupName : SAP_SLD_DATA_SUPPLIER
InvokeService- Result: ERROR
Refresh Env. Messages: false
Duration: 1.936 sec
Library Info
Default Trace
Exception Class: com.sap.security.api.DuplicateKeyException
Exception Message: Group found, but unique name "SAP_SLD_DATA_SUPPLIER" is not unique!
com.sap.security.api.DuplicateKeyException: Group found, but unique name "SAP_SLD_DATA_SUPPLIER" is not unique!
at com.sap.ctc.util.infra.rfc.BaseConfig.dispatchException(BaseConfig.java:230)
at com.sap.ctc.util.core.services.impl.ume.java.GroupJavaImpl.verify(GroupJavaImpl.java:121)
at com.sap.ctc.util.core.services.impl.ume.DualGroupImpl.verify(DualGroupImpl.java:118)
at com.sap.ctc.util.core.services.content.ume.UserService.addToGroup(UserService.java:725)
at com.sap.ctc.util.core.services.UserFacade.addUserToGroup(UserFacade.java:288)
what to do?
============
o.k.
https://service.sap.com/sap/support/notes/1016283
first run the UME consistency check => found some inconsistency => did repair UME
then run again UME consistency check => found no more inconsistency !!
the again - try to run the PI-Upgrade-Wizard => but again error on executing .....see this sap-notes:
http://service.sap.com/sap/support/notes/1617234
http://service.sap.com/sap/support/notes/1661135
http://service.sap.com/sap/support/notes/1678815
http://service.sap.com/sap/support/notes/1626747 -
Security API help needed / howto list user in group
Hi there,
i have tried all example programs of the hyperion security api. hard work to correct the errors in these scripts.
now i can create native groups an users and can create groups on groups or put users in native groups.
i have read the java doc / reference for the security api too but its not possible for me to list users of a group (group reference by name).
is there anybody who can help with a code sample to list users of a group like "testgroup" ?
something like (...getGroups(context,"testgroup")...) ??
Best Regards
KaiPlease don't cross-post. It is considered very rude to do that here:
http://forum.java.sun.com/thread.jspa?threadID=5233033&messageID=9953169#9953169 -
Does anybody know how to set the page group for a page via the API. I've found an update_page proc in the wwv_flow_api package but it doesn't seem to include a parameter for the page group/group id. I'm using Apex 3.2. Thanks for any help.
Thanks that helpful in some ways, but I want to get the page_id. For example, if I create a page with the name PG_DEPT and the display name "Department Page". I need to know how to get the current PG_DEPT name from the API. Also, I will like to get the current URL from the page (http://portal/pls/portal/page=123).
-
Moving Pages from one Page Group to Another Group
Hello,
How do you move pages, styles, or items from one page group to another page group?
On the same machine, I have three page groups called Production, Acceptance, and Test. Once I set up a page that I like on the page group Test, what is the best way to move the page(and its items, portlets,etc) to the page group Acceptance, and then move it into Production?
Also, how does security and approvals affect this? There is only limited amount of people that are able to get into the Test Page Group, or Acceptance Page Group. Would any copying process make sure the page approvers be copied across correctly? Or will manual intervention be needed.
I'm using Oracle Portal Release 2 (9.0.2) running on a solaris machine.
Much thanks for your assistance.
Ansonhi There,
As far as i know, the pages can only be moved within the page group but not from one page group to another page group.
Regards,
Deepak -
PDEXGroup to set the Page Group ColorSpace
Hello,
I'm currently trying to add an Image into a PDF (that's the only content) but as I read on previous threads I'm trying to get a correct rendering when there is an alpha (channel/mask) in my image.
To do so I first create an Image (PDEImageCreate) then I create the Alpha mask and apply it to the first image (using PDEImageSetSMask).
The problem is now my image is too dark in "Acrobat Reader" and is correct in Evince. So I guess my problem is Acrobat try to blend in CMYK but my source image is in RGB.
But I don't really understand how I should/could specify that ? I tried in the Resources of the Page, and then I tried the PDEXGroup, but how can I add my XObject to the PDEXGroup ?
Am I on the wrong track trying to set the Page ColorSpace ?
Thanks in advance.Following your indication I re-read the paragraph relating to Transparency group. starting with the 11.4.7.
All of the elements painted directly onto a page—both top-level groups and top-level objects that are not part of any group—shall be treated as if they were contained in a transparency group P
My main question here is how do I get access to this "group P" ?
Because I didn't found how, I searched "how to specify a blending" which leads me to paragrap 11.6.3
11.6.3 Specifying Blending Colour Space and Blend Mode The blending colour space shall be an attribute of the transparency group within which an object is painted; its specification is described in 11.6.6, "Transparency Group XObjects."
Ok so how to define a Transparency group is in 11.6.6 (still my original question)
Summarized : a transparency group is a specialized form XObject with a Group entry in its dictionnary. (Group with subtype "/S /Transparency") Also a Page may have a Group entry (some entries in this dictionnary may be interpreted differently when in a Page group).
So (again) I looked at the right paragraph to make a Group 8.10.3, "Group XObjects".
This paragraph finally describe what the CosObj should look like I expect it to be something like :
6 0 obj % Form XObject
<< /Type /XObject
/Subtype /Form
/FormType 1
/BBox [ 0 0 1000 1000 ]
/Group <> /Matrix [ 1 0 0 1 0 0 ]
/Resources << /ProcSet [ /PDF ] >> /Length 58
>>stream
endstream
endobj
But alas my main concern is still here, how do I add a PDEImage in a PDEGroup or PDEForm or CosObj and then overwrite the Page content with this new content in order to change the default Blending ColorSpace ?
You said to use the Cos API but what the Cos Object should look likes when the Color Blend Space is correctly set ?
Below there is some code sample that I used to get this working.
1 void func()
2 {
3 PDDoc document;
4 PDPage page;
5 ASFixedRect mediabox;
6 PDEContent content;
7
8 /* Some or most informations are skipped below for readability but important
9 * call remains
10 */
11
12 document = PDDocCreate();
13
14 page = PDDocCreatePage(document, PDBeforeFirstPage, mediabox);
15 content = PDPageAcquirePDEContent(page, NULL);
16
17 /* setup arguments PDEImage */
18 image = PDEImageCreate(....);
19 /* setup arguments for Image mask / alpha channel */
20 mask = PDEImageCreate(....);
21
22 PDEImageSetMatteArray(mask, ...);
23 PDEImageSetSMask(image, mask);
24
25 CosDoc documentCos = PDDocGetCosDoc(document);
26 CosObj xobjForm = CosNewNull();
27 CosObj resources = CosNewNull();
28
29 /*
30 * Here is the naive version I first tried which as you explained should be
31 * done using Cos_Layer functions
32 */
33 #if defined NAIVE_VERSION
34
35 /*
36 * Doesn't work
37 */
38
39 CosObj imgCos;
40 PDEImageGetCosObj(img, &imgCos);
41 PDEXGroup grp_image = PDEXGroupCreateFromCosObj(&imgCos);
42 PDEXGroupSetColorSpace(grp_image, PDEColorSpaceCreateFromName(ASAtomFromString("DeviceRGB")));
43
44 PDEContentAddElem(content, kPDEAfterLast, image);
45 PDPageSetPDEContent(page, content);
46
47 #elif defined SECOND_VERSION
48
49 /*
50 * Doesn't work
51 */
52
53
54 PDEContentAddElem(content, kPDEAfterLast, image);
55
56 PDEForm myf = NULL;
57
58 PDEContentAttrs pdeContentAttrs;
59 memset(&pdeContentAttrs, 0, sizeof pdeContentAttrs);
60 PDEContentGetAttrs(content, &pdeContentAttrs, sizeof pdeContentAttrs);
61
62 PDEContentToCosObj(content, kPDEContentToForm, &pdeContentAttrs,
63 sizeof pdeContentAttrs, documentCos, NULL, &xobjForm, &resources);
64
65 if (!CosObjEqual(xobjForm, CosNewNull()) && !CosObjEqual(resources, CosNewNull())) {
66 /* success retrieving form & resources */
67
68 // Put resources into the Form XObject stream dictionary
69 CosDictPutKeyString(xobjForm, "Resources" , resources);
70
71 // Set BBox key for the Form XObject according to the image page
72 ASFixedRect rectOrigPage;
73 PDPageGetMediaBox(page, &rectOrigPage);
74
75 CosObj BBoxArray = CosNewArray(documentCos, 4, false);
76 CosArrayPut(BBoxArray, 0, CosNewInteger(documentCos, false, ASFixedRoundToInt16(rectOrigPage.left)));
77 CosArrayPut(BBoxArray, 1, CosNewInteger(documentCos, false, ASFixedRoundToInt16(rectOrigPage.bottom)));
78 CosArrayPut(BBoxArray, 2, CosNewInteger(documentCos, false, ASFixedRoundToInt16(rectOrigPage.right)));
79 CosArrayPut(BBoxArray, 3, CosNewInteger(documentCos, false, ASFixedRoundToInt16(rectOrigPage.top)));
80
81 CosDictPutKeyString(xobjForm, "BBox" , BBoxArray);
82
83 // Set matrix key for the Form XObject
84 ASFixedMatrix defaultMatrix;
85 PDPageGetDefaultMatrix(page, &defaultMatrix);
86
87 myf = PDEFormCreateFromCosObj(&xobjForm, &resources, &defaultMatrix);
88
89 PDEXGroup trpgroup = PDEXGroupCreate(documentCos, kPDEXGroupTypeTransparency);
90 PDEXGroupSetColorSpace(trpgroup, PDEColorSpaceCreateFromName(ASAtomFromString("DeviceRGB")));
91
92 PDEFormSetXGroup(myf, trpgroup);
93 PDEContentAddElem(content, kPDEBeforeFirst, (PDEElement) myf);
94
95 PDPageSetPDEContent(page, (ASExtension) PDEFormGetContent(myf));
96 }
97
98 #else
99
100 /*
101 * Doesn't work
102 */
103
104 CosObj xobjForm = (CosObj) CosNewDict(documentCos, false, 1);
105 CosObj resources = (CosObj) CosNewDict(documentCos, false, 1);
106
107 CosDictPutKeyString(xobjForm, "Type", CosNewName(documentCos, false, ASAtomFromString("XObject")));
108 CosDictPutKeyString(xobjForm, "Subtype", CosNewName(documentCos, false, ASAtomFromString("Form")));
109 CosDictPutKeyString(xobjForm, "FormType", CosNewInteger(documentCos, false, 1));
110
111 CosObj array_bbox = CosNewArray(documentCos, false, 4);
112 CosArrayPut(array_bbox, 0, CosNewInteger(documentCos, false, 0));
113 CosArrayPut(array_bbox, 1, CosNewInteger(documentCos, false, 0));
114 CosArrayPut(array_bbox, 2, CosNewInteger(documentCos, false, width));
115 CosArrayPut(array_bbox, 3, CosNewInteger(documentCos, false, height));
116
117 CosDictPutKeyString(xobjForm, "BBox", array_bbox);
118
119 ASFixedMatrix frmMatrix;
120 frmMatrix.a = FloatToASFixed(1);
121 frmMatrix.d = FloatToASFixed(1);
122 frmMatrix.b = frmMatrix.c = frmMatrix.h = frmMatrix.v = fixedZero;
123
124 #endif
125
126 PDDocSave(document, ....);
127
128 }
Thanks again for your help. -
Reporting on Access Rights to Pages/Page Groups
As all of you probably know it is difficult to get a snap-shot of exactly
what permissions a user has for pages and other items in portal since
you have to go to several different places using the interface to "compile"
them for a user.
So, we would like to use the security api (wwsec_api), or other appropriate
api's as needed, to generate a report containing the permissions a user has on various portal pages/items/etc.
But I'm having a few problems with the security api producing specific permission
info.
I just wondered if anybody has some code that can produce the specific permissions a user has on portal pages or, in general, how the security api
is used.
TIA, semaphore.would be interested too.
-
Hi,
I develop an uploader for item in portal with the version 9.0.4 of PL/SQL API.
Items can be deleted by user. Deleted items cannot be set as active items through the API (expired items can be set as active). I need to re-create deleted items.
The problem is that deleted (and expired) items are still existing until a purge is performed on the page group.
I search on the API but I didn't found any function allowing to purge a page group.
My question is : Is it on the API a function allowing to purge a page group ? Does anyone have a solution ?
Thanks in advance, Eddy.By purging I assume you mean 'clean up' items that are either expired or deleted?
If so, unfortunately the only way to do this in 9.0.4 and below is through the page group admin UI. For the next release we are planning a new delete item API that (in combination with views that allow to query for items in these states) will let you do this. -
OAS v10.1.2 Ultra Search - Page Group Missing When Setting Up Portal Data
Hi,
We're on version 10.1.2 but in the process of upgrading to 10.1.4.
In Ultra Search, when I try to set up a Portal Data Source, I can't see all the Page Groups in the portal. Is this somehow related to the ACL for the Page Group ... or individual pages? I can see most but not all, and specifically not the one I want.
Any suggestions would be great!I blundered onto the answer to my issue by trial and error.
When setting up the root page for a page group, if you wish it to be accessible to Ultra Search to be part of a Portal Data Source, you must ensure that the "Display Page To Public Users" check box is checked. The "Enable Item Level Security" checkbox can also be checked, e.g, they are not mutually exclusive. -
Hello,
i want to duplicate my page group on the same repository, my oracle portal version is 10.1.4.
is this doable or not and if so please tell me how?It is not possible, you will need to create a new page group.
If you have plsql knowledge then you can use api to create pages and itens, it would be like copying it. -
JPDK - Page/Page Group Properties????
Hi Everyone,
I'm new to the JPDK, so forgive me if this is a dumb question: I've looked through all the documentation (I think) and samples, and cannot seem to find any API's that deal with retrieving or setting page properties (page description, display name, etc.) or page group properties. Do they exist? I know I can call the PL/SQL API's from Java...or go to the tables directly....but aren't very elegant solutions. This seems like such a basic need for portlet development....am I missing something??
Confused in California,
WayneHi Wayne,
You can change a page's page group's properties from portal itself.
When you edit a page (by clicking on the page's "Edit" link), you will see a Page "Properties" link. Here you can change the page name, style, access rights for this page etc. You can also change the Page Group's Properties from here itself.
As for an API, there is definitely an API which Portal uses to accomplish this, but this API is not exposed for public usage.
For more information on Portal's PL/SQL Public API's, click on this link:
http://portalstudio.oracle.com/pls/ops/docs/FOLDER/COMMUNITY/PDK/plsql/doc/astart.htm
Thanks,
Ashish. -
Is there any way that one can set Approvals and Notifications on a page group as 'enabled' through APIs?
Added to this, is there anyway to set the Approval Routing List through APIs?
Thanks,
NaxHi Naxtazzmataur,
I don't believe you can do that programmatically, this is how you modify a page
- http://download.oracle.com/docs/cd/B14099_19/portal.1014/b14135/pdg_cm_simple.htm#CIADFIFB
However if you use the CMEF you could instead use BPEL for your content approvals, that way you have total control over the approval chain.
- http://www.oracle.com/technology/products/ias/portal/pdf/portal_cmef_bpel_integration_technote.pdf
Cheers,
Mick. -
User and Group Security Provisioning
Hi,
I have a question regarding Group security in Planning. I am using EPM system 11. My basic question is, if I create a new Planning user (interactive user with no default access to dimensions), and assign that user to a Planning group, does the user automatically inherit all the dimension access assigned to that Group? From my experience, it seems that I must explicitly assign each User access to the dimensions they should be able to Read or Write, and that simply adding them to a group that has been given Write access to the Expense Account (for example) does not give a newly added user to that Group Write access.
A quick note - when creating new Users, I first create and provision them in Shared Services. However, in order to be able to log in with them, I must recreate the user in EAS's User Directory. This seems redundant to make a user twice, but is the only way I am able to successful login with new users, otherwise the Planning login page says "failed to sync with user provisioning". I have not done this same procedure for the Groups I have created (i.e. I have made and provisioned the Groups in Shared Services, but not recreated them in EAS). Is it possible that this is why Users aren't inherittiing the access rights of the Group? I can provide more information if needed, any help or comments are appreciated. Thanks in advance.user3x3 wrote:
1) EAS method is to open EAS, then open the Essbase Server Node, right-click on security, and click Externalize Users. When I do this there is no right-click option to externalize the users, and since it can only be done once and then not reversed I assume the previous administrator already did this. Since this is not availalbe, I must use the second method.
If you log in with an administrator account you should see the "Externalize Users" option even if you have already externalized.
I take it you did not configure your system, I take it was documented so you could have a look how it was configured.
If essbase is on a different server than shared services then maybe the essbase server was not registered with the shared services registry when it was configured, that might the reason why you are getting the shared services error when you try to convert to shared services security, basically it doesn't know where shared services is. If that is the case then it will need to be configured again.
Cheers
John
http://john-goodwin.blogspot.com/
Maybe you are looking for
-
How do I do this... rollover effect.
Hi, I have been doing some layout in Photoshop for a basic website. I have one .jpg which will be my background. I have created some thumbnails (filmstrip area), and I want them to highlight as the mouse goes over them. At the same time I want the
-
Creating objects that contain objects
What's the best practice for creating an object from a table that contains a list of objects from another table? For example, say I have an employees table: EMPLOYEES id name 1 Derek Epperson 2 Judy Johnsonand I also have an equipment tabl
-
[JS] CS3 Apply document defaults to insertion point
Is there any way to apply the document defaults to an insertion point? I have a script that is looping through a whole bunch of text files, formatting them (with thinks like tab stops and indents). The thing is I don't want any of the tab stops, inde
-
Old programs...want to convert aiff to mp3. Urgent!
I have a ibook G4 PC processor OS10.4.11. I have Garage Band v2.0.2 (50) and iTunes 9. I made an aiff file tonight that I must convert to mp3 by tomorrow. I thought I could do it, but it's not looking good. How do I compress this file to an mp3
-
Sim Card not installed message
I keep repeatedly getting a message that the Sim cardisnt installed- have to open the sim holder and close it every time.. happens 5-10 times daily.. what is causingthis? HELP. My warranty has expired.. so trying to look at all my options and alteran