Overview | Package | Object Type | Deprecated | Index | Help
| Oracle9iAS Portal PL/SQL API Reference - 9.0.2.6
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES
SUMMARY: EXCEPTION | TYPE | CONSTANT | VARIABLE | FUNCTION/PROCEDURE | DETAIL: EXCEPTION | TYPE | CONSTANT | VARIABLE | FUNCTION/PROCEDURE

## Package wwsec_api

This package contains procedures and functions for administering Oracle9iAS Portal security. Using these security APIs you can perform the following operations:

- User maintenance (create user profile entries, activate portal access, update user properties, delete user profile entries, and other associated tasks).
- Group maintenance (create, activate, update, delete groups, and other associated tasks).
- Access control (grant, check, copy, update, remove user/group privileges, and other associated tasks).

Note that the user-related APIs create user profile entries in the portal repository, so that the other APIs can obtain a user ID with which other actions may be performed. An actual authenticatable user identity is not created by the add_portal_user API. Rather, this needs to be accomplished by using Oracle Internet Directory (OID) utilities.

Scope:
  Public
Since:
  Oracle9iAS Portal 3.0.6.6.5

Exception Summary
`ACCESS_DENIED_EXCEPTION` A user does not have sufficient privileges to execute a routine.
`CIRCULAR_REFERENCE_EXCEPTION` The reference path refers back to the first element in the path, for example, a group owns a group that owns the first group.
`DEPRECATED_API_EXCEPTION` The API has been deprecated.
`DUPLICATE_GRANTEE_EXCEPTION` The specified grantee exists.
`DUPLICATE_GROUP_EXCEPTION` A referenced group name exists.
`GROUP_MEMBER_EXCEPTION` A referenced group or user is already a member of the list.
`GROUP_NOT_FOUND_EXCEPTION` A referenced group was not found.
`GROUP_NOT_UNIQUE_EXCEPTION` Another group exists with the same name.
`INVALID_ARGUMENT_EXCEPTION` A specified argument is invalid.
`INVALID_AUTH_FUNC_EXCEPTION` The specified authorization function is ill-formed or undefined.
`INVALID_GRP_NAME_EXCEPTION` The specified group name is not valid.
`INVALID_PERSON_ID_EXCEPTION` A user referenced by ID does not exist.
`INVALID_SITE_EXCEPTION` A referenced site does not exist.
`LDAP_CONNECTION_EXCEPTION` An error occurred while connecting to the OID server.
`NO_ACCESSIBLE_OBJECT_EXCEPTION` The referenced object does not exist.
`NO_MANAGER_EXCEPTION` No manager ID exists for the new Oracle9iAS Portal user being registered, or there is no manager name on file for a referenced Oracle9iAS Portal user.
`ORG_NOT_EXIST_EXCEPTION` The specified organization does not exist.
`UNEXPECTED_EXCEPTION` An undefined exception condition exists.
`USER_EXISTS_EXCEPTION` Another user exists with the same identifier.
`USER_NOT_DELETABLE_EXCEPTION` The user cannot be deleted.
`USER_NOT_FOUND_EXCEPTION` A referenced user does not exist.
`VALUE_ERROR_EXCEPTION` An invalid parameter was passed to the API.

Type Summary
`array` This array receives varchar2 data from various security methods. | `table`
`grantee_array` An array of grantee_record(s). | `table`
`grantee_record` A record structure containing the details of a grantee of a privilege. | `record`
`idarray` This array receives number data from various security methods. | `table`
`list_array` An array containing a list of groups. | `table`
`list_member_array` An array of list_member_record records returned by the wwsec_api. | `table`
`list_member_record` A record structure containing the details of members of a group. | `record`
`list_record` A record structure containing details of a group. | `record`
`privilege_array` An array containing the list of privileges appropriate for assignment on a particular object type. | `table`
`username_type` Subtype for representing user names. | `subtype`

Constant Summary
`ACCESS_PRIV` | `wwsec_sys_priv$.privilege%type`
`ADD_CUSTOM_PRIV` | `wwsec_sys_priv$.privilege%type`
`ALL_OBJECTS` This constant is used for the object instance identifier (name) for the global privileges (ANY_XXXX). | `wwsec_sys_priv$.name%type`
`ANYGROUP_CREATE` | `number`
`ANYGROUP_MANAGE` | `number`
`ANYGROUP_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`ANYLOG_EDIT` | `number`
`ANYLOG_MANAGE` | `number`
`ANYLOG_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`ANYLOG_VIEW` | `number`
`ANYPAGE_ADD_ONLY_CUSTOM_CNT` | `number`
`ANYPAGE_CREATE` | `number`
`ANYPAGE_FULL_CUSTOM_CNT` | `number`
`ANYPAGE_HIDE_SHOW_CUSTOM_CNT` | `number`
`ANYPAGE_MANAGE` | `number`
`ANYPAGE_MANAGE_CNT` | `number`
`ANYPAGE_MANAGE_CNT_WITH_APP` | `number`
`ANYPAGE_MANAGE_STYLE` | `number`
`ANYPAGE_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`ANYPAGE_STYLE_CUSTOM` | `number`
`ANYPAGE_VIEW` | `number`
`ANYPORTLET_ACCESS` | `number`
`ANYPORTLET_EDIT` | `number`
`ANYPORTLET_EXECUTE` | `number`
`ANYPORTLET_MANAGE` | `number`
`ANYPORTLET_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`ANYPORTLET_PUBLISH` | `number`
`ANYPROVIDER_CREATE` | `number`
`ANYPROVIDER_EDIT` | `number`
`ANYPROVIDER_EXECUTE` | `number`
`ANYPROVIDER_MANAGE` | `number`
`ANYPROVIDER_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`ANYPROVIDER_PUBLISH` | `number`
`ANYSCHEMA_CREATE` | `number`
`ANYSCHEMA_INSERT` | `number`
`ANYSCHEMA_MANAGE` | `number`
`ANYSCHEMA_MODIFY` | `number`
`ANYSCHEMA_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`ANYSCHEMA_VIEW` | `number`
`ANYSITE_CREATE` | `number`
`ANYSITE_MANAGE` | `number`
`ANYSITE_MANAGE_CLASSIFICATION` | `number`
`ANYSITE_MANAGE_STYLE` | `number`
`ANYSITE_MANAGE_TEMPLATE` | `number`
`ANYSITE_MANAGE_TRANSLATION` | `number`
`ANYSITE_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`ANYSITE_VIEW` | `number`
`ANYSTYLE_CREATE` | `number`
`ANYSTYLE_MANAGE` | `number`
`ANYSTYLE_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`ANYSTYLE_PUBLISH` | `number`
`ANYSTYLE_VIEW` | `number`
`ANYTRANSPORTSET_EXECUTE` | `number`
`ANYTRANSPORTSET_MANAGE` | `number`
`ANYTRANSPORTSET_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`ANYUSER_CREATE` | `number`
`ANYUSER_MANAGE` | `number`
`ANYUSER_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`CREATE_PRIV` | `wwsec_sys_priv$.privilege%type`
`CUSTOMIZE_PRIV` | `wwsec_sys_priv$.privilege%type`
`DOCUMENT_MANAGE` | `number`
`DOCUMENT_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`DOCUMENT_OWN` | `number`
`DOCUMENT_VIEW` | `number`
`EDIT_PRIV` | `wwsec_sys_priv$.privilege%type`
`EXECUTE_PRIV` | `wwsec_sys_priv$.privilege%type`
`FULL_CUSTOM_PRIV` | `wwsec_sys_priv$.privilege%type`
`GLOBAL_GROUP` | `number(1)`
`GRANTEE_GROUP` | `wwsec_sys_priv$.grantee_type%type`
`GRANTEE_USER` | `wwsec_sys_priv$.grantee_type%type`
`GROUP_AUTHENTICATED_USERS` | `number(1)`
`GROUP_DBA` | `number(1)`
`GROUP_IPORTAL_ADMINISTRATORS` | `number(1)`
`GROUP_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`GROUP_OWN` | `number`
`GROUP_PORTAL_PUBLISHERS` | `number(1)`
`GROUP_TYPE_LIST` | `wwsec_group$.group_type%type`
`GROUP_TYPE_ORG` | `wwsec_group$.group_type%type`
`GROUP_WEBDB_ADMINISTRATORS` | `number(1)`
`HIDDEN` | `number(1)`
`HIDE_SHOW_CUSTOM_PRIV` | `wwsec_sys_priv$.privilege%type`
`INSERT_PRIV` | `wwsec_sys_priv$.privilege%type`
`ITEM_MANAGE` | `number`
`ITEM_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`ITEM_OWN` | `number`
`ITEM_VIEW` | `number`
`LOV_EDIT` | `number`
`LOV_EXECUTE` | `number`
`LOV_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`MANAGE_CLASSIFICATION_PRIV` | `wwsec_sys_priv$.privilege%type`
`MANAGE_CNT_PRIV` | `wwsec_sys_priv$.privilege%type`
`MANAGE_CNT_WITH_APP_PRIV` | `wwsec_sys_priv$.privilege%type`
`MANAGE_PRIV` | `wwsec_sys_priv$.privilege%type`
`MANAGE_STYLE_PRIV` | `wwsec_sys_priv$.privilege%type`
`MANAGE_TEMPLATE_PRIV` | `wwsec_sys_priv$.privilege%type`
`MEMBER_TYPE_GROUP` | `wwsec_member$.member_type%type`
`MEMBER_TYPE_USER` | `wwsec_member$.member_type%type`
`MENU_EXECUTE` | `number`
`MENU_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`MODIFY_PRIV` | `wwsec_sys_priv$.privilege%type`
`NAVBAR_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`NAVBAR_OWN` | `number`
`NO_PRIVILEGE` | `number`
`NOT_HIDDEN` | `number(1)`
`NOT_OWNER` | `number(1)`
`OWN_PRIV` | `wwsec_sys_priv$.privilege%type`
`OWNER` | `number(1)`
`PAGE_ADD_ONLY_CUSTOM_CNT` | `number`
`PAGE_FULL_CUSTOM_CNT` | `number`
`PAGE_HIDE_SHOW_CUSTOM_CNT` | `number`
`PAGE_MANAGE` | `number`
`PAGE_MANAGE_CNT` | `number`
`PAGE_MANAGE_CNT_WITH_APP` | `number`
`PAGE_MANAGE_STYLE` | `number`
`PAGE_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`PAGE_STYLE_CUSTOM` | `number`
`PAGE_VIEW` | `number`
`PORTLET_ACCESS` | `number`
`PORTLET_EDIT` | `number`
`PORTLET_EXECUTE` | `number`
`PORTLET_MANAGE` | `number`
`PORTLET_NON_LOCAL_ACCESS` | `number`
`PORTLET_NON_LOCAL_EXECUTE` | `number`
`PORTLET_NON_LOCAL_MANAGE` | `number`
`PORTLET_NON_LOCAL_PUBLISH` | `number`
`PORTLET_NONLOCAL_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`PORTLET_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`PORTLET_PUBLISH` | `number`
`PROVIDER_EDIT` | `number`
`PROVIDER_EXECUTE` | `number`
`PROVIDER_MANAGE` | `number`
`PROVIDER_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`PROVIDER_PUBLISH` | `number`
`PUBLISH_PRIV` | `wwsec_sys_priv$.privilege%type`
`SCHEMA_ADMIN` | `number(1)`
`SCHEMA_BROWSEIN` | `number`
`SCHEMA_BUILDIN` | `number`
`SCHEMA_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`SCHEMA_OWNER` | `number(1)`
`SEARCH_SUBTYPE_GROUP` | `varchar2(30)`
`SEARCH_SUBTYPE_USER` | `varchar2(30)`
`SEARCH_TYPE_UG` | `varchar2(30)`
`SITE_MANAGE` | `number`
`SITE_MANAGE_CLASSIFICATION` | `number`
`SITE_MANAGE_STYLE` | `number`
`SITE_MANAGE_TEMPLATE` | `number`
`SITE_MANAGE_TRANSLATION` | `number`
`SITE_OBJ` | `wwsec_sys_priv$.object_type_name%type`
`SITE_SEPARATOR` Separator used for object names that include multiple identifiers. | `varchar2(1)`
`SITE_VIEW` | `number`
`STYLE_CUSTOM_PRIV` | `wwsec_sys_priv$.privilege%type`
`USER_PUBLIC` | `number(1)`
`VIEW_PRIV` | `wwsec_sys_priv$.privilege%type`
`WORKFLOW_EXECUTE` | `number`
`WORKFLOW_MANAGE` | `number`
`WORKFLOW_STATUS` | `number`
`WORKFLOW_STATUS_AND_EXECUTE` | `number`

Variable Summary
`empty` An instance of an empty array of varchar2s for initialization. | `array`
`emptyidarray` An instance of an empty array of numbers for initialization. | `idarray`

Function/Procedure Summary
`accessible_objects` Gets a list of objects accessible to a user, checking for a specific privilege. | `array`
`accessible_objects` Gets a list of objects accessible to a user, checking for a number of privileges. | `array`
`activate_portal_user` Activates an existing but inactive Oracle9iAS Portal user. | ``
`add_group_to_list` Adds a group as a member to another group. | ``
`add_portal_user` Adds a Portal profile entry to the Oracle9iAS Portal repository. | `number`
`add_user_to_list` Adds a user to a group. | ``
`clear_package_cache` Clears the package level cache. | ``
`copy_privileges` Copies all privileges from a source object to a destination object. | ``
`create_list` Creates a group in OID and returns the corresponding group profile ID for the portal. | `number`
`db_user` Returns the database schema name to which the user is associated, given the name of an Oracle9iAS Portal user. | `varchar2`
`deactivate_portal_user` Deactivates an Oracle9iAS Portal user. | ``
`delete_group_from_list` Deletes a group from the list of members of another group. | ``
`delete_list` Deletes a group from OID and any associated references to the group. | ``
`delete_portal_user` Deletes an Oracle9iAS Portal user profile entry from the portal schema, given a user name. | ``
`delete_user_from_list` Deletes a user from the membership list of a group. | ``
`get_authorization_function` Gets the name of the function used for function-based authorization. | `varchar2`
`get_defaultgroup` Returns the default group for a specified user. | `number`
`get_granted_group_privilege` Gets the highest privilege that a group has on a given object. | `varchar2`
`get_granted_user_priv_code` Gets the granted privilege code that a user has on a given object. | `number`
`get_granted_user_privilege` Gets the highest privilege that the user has on the specified object. | `varchar2`
`get_list_members` Deprecated. As of Oracle9iAS Portal 9.0.2, since the groups are maintained in OID that does not support an API to read the membership information if the number of members becomes very large. Gets a list of the members of a group of type 'LIST' when given a group id. | `wwsec_api.list_member_array`
`get_manager` Returns the user name of a specified user's manager. | `varchar2`
`get_member_record` Deprecated. As of Oracle9iAS Portal 9.0.2, since the membership information is maintained in OID and there is no member ID attribute, which is required as an input parameter for this function. Gets a member's record from the wwsec_member$ table. | `wwsec_member$%rowtype`
`get_privilege_level` Checks the highest privilege that a user has on a given object. | `number`
`get_public_objects` Gets a list of objects granted to PUBLIC. | `array`
`grantee_list` Returns a list of grantees for a named object and specified owner. | `grantee_array`
`group_id` Gets the group ID for a specified group name. | `number`
`group_info` Returns group information, given a group ID. | `wwsec_group$%rowtype`
`group_name` Returns the group name when given a group ID. | `varchar2`
`has_privilege` Checks whether a user has a certain privilege. | `boolean`
`has_privilege` Checks whether a user has one of a list of privileges. | `boolean`
`has_privilege` Checks whether a specified user has a specified privilege. | `boolean`
`id` Returns a person ID, given a user name or Globally Unique Identifier (GUID). | `number`
`id_sso` Returns a person ID, given a user name or GUID and also validates that a user exists in the OID Server and Oracle9iAS Portal. | `number`
`is_group_owner` Deprecated. As of Oracle9iAS Portal 9.0.2, since the membership information is maintained in OID and there is no member id attribute, which is required as an input parameter for this function. Checks whether a member is a group's owner. | `number`
`is_privilege_at_least` Checks whether a specified user, or group to which a user belongs, has a privilege on a specified object that is at least as high as the privilege specified. | `boolean`
`is_privileged_by_auth_function` Checks the authorization by calling the authorization function. | `boolean`
`is_user_in_direct_group` Checks whether a user was individually granted membership in a specific group. | `boolean`
`is_user_in_group` Checks whether a user belongs to a specific group. | `boolean`
`list_id` Gets the group ID of a list within a site. | `number`
`lists` Deprecated. As of Oracle9iAS Portal 9.0.2, since the groups are stored in OID and are not scoped by site ID Gets a list of list type groups. | `wwsec_api.list_array`
`modify_portal_user` Updates personal and business-related information relating to an Oracle9iAS Portal user. | ``
`person_info` Returns user information, given a person ID. | `wwsec_person%rowtype`
`person_info` Returns user information, given a user name. | `wwsec_person%rowtype`
`privilege_list` Returns a list of privileges for a specified object_type_name. | `privilege_array`
`publish_group` Deprecated. As of Oracle9iAS Portal 9.0.2, as groups are stored in OID which does not support this property Sets the group to be publishable or nonpublishable. | ``
`remove_group_acl` Removes a group's privileges. | ``
`remove_user_acl` Removes a specified privilege from a user. | ``
`set_authorization_function` Sets the name of a function to be used for function-based authorization. | ``
`set_defaultgroup` Sets the default group for a specified user. | ``
`set_group_acl` Creates an entry in the Access Control List that grants a privilege on a specified object to a specified group. | ``
`set_user_acl` Gives a user a specified privilege in the Oracle9iAS Portal. | ``
`update_group_acl` Changes a group's privilege in the Access Control List. | ``
`update_group_owner` Modifies group-ownership for a group that is a member of another group. | ``
`update_list` Updates general information for a specified group. | ``
`update_user_acl` Changes a user's privilege in the Access Control List. | ``
`update_user_owner` Modifies group-ownership for a user. | ``
`user_in_groups` Deprecated. As of Oracle9iAS Portal 9.0.2, since groups are now stored in OID and do not necessarily have a local shadow entry with an ID Returns a list of group IDs when given a user name. | `idarray`
`user_name` Returns a user name, given a person ID. | `varchar2`
`users_in_group` Deprecated. As of Oracle9iAS Portal 9.0.2, since the group memberships are being maintained in OID and implementation of this API becomes prohibitive. OID does not provide a direct API to return the members of a group, so recursive calls would have to be made to the directory to get the users who are indirect members. This function is not being used anywhere in the Portal code. Gets the list of all the users in a specific group. | `array`

Exception Detail

### ACCESS_DENIED_EXCEPTION

    ACCESS_DENIED_EXCEPTION exception

  A user does not have sufficient privileges to execute a routine.

### CIRCULAR_REFERENCE_EXCEPTION

    CIRCULAR_REFERENCE_EXCEPTION exception

  The reference path refers back to the first element in the path, for example, a group owns a group that owns the first group.

### DEPRECATED_API_EXCEPTION

    DEPRECATED_API_EXCEPTION exception

  The API has been deprecated.

### DUPLICATE_GRANTEE_EXCEPTION

    DUPLICATE_GRANTEE_EXCEPTION exception

  The specified grantee exists.

### DUPLICATE_GROUP_EXCEPTION

    DUPLICATE_GROUP_EXCEPTION exception

  A referenced group name exists.

### GROUP_MEMBER_EXCEPTION

    GROUP_MEMBER_EXCEPTION exception

  A referenced group or user is already a member of the list.

### GROUP_NOT_FOUND_EXCEPTION

    GROUP_NOT_FOUND_EXCEPTION exception

  A referenced group was not found.

### GROUP_NOT_UNIQUE_EXCEPTION

    GROUP_NOT_UNIQUE_EXCEPTION exception

  Another group exists with the same name.

### INVALID_ARGUMENT_EXCEPTION

    INVALID_ARGUMENT_EXCEPTION exception

  A specified argument is invalid.

### INVALID_AUTH_FUNC_EXCEPTION

    INVALID_AUTH_FUNC_EXCEPTION exception

  The specified authorization function is ill-formed or undefined.

### INVALID_GRP_NAME_EXCEPTION

    INVALID_GRP_NAME_EXCEPTION exception

  The specified group name is not valid.

### INVALID_PERSON_ID_EXCEPTION

    INVALID_PERSON_ID_EXCEPTION exception

  A user referenced by ID does not exist.

### INVALID_SITE_EXCEPTION

    INVALID_SITE_EXCEPTION exception

  A referenced site does not exist.

### LDAP_CONNECTION_EXCEPTION

    LDAP_CONNECTION_EXCEPTION exception

  An error occurred while connecting to the OID server.

### NO_ACCESSIBLE_OBJECT_EXCEPTION

    NO_ACCESSIBLE_OBJECT_EXCEPTION exception

  The referenced object does not exist.

### NO_MANAGER_EXCEPTION

    NO_MANAGER_EXCEPTION exception

  No manager ID exists for the new Oracle9iAS Portal user being registered, or there is no manager name on file for a referenced Oracle9iAS Portal user.

### ORG_NOT_EXIST_EXCEPTION

    ORG_NOT_EXIST_EXCEPTION exception

  The specified organization does not exist.

### UNEXPECTED_EXCEPTION

    UNEXPECTED_EXCEPTION exception

  An undefined exception condition exists.

### USER_EXISTS_EXCEPTION

    USER_EXISTS_EXCEPTION exception

  Another user exists with the same identifier.

### USER_NOT_DELETABLE_EXCEPTION

    USER_NOT_DELETABLE_EXCEPTION exception

  The user cannot be deleted.

### USER_NOT_FOUND_EXCEPTION

    USER_NOT_FOUND_EXCEPTION exception

  A referenced user does not exist.

### VALUE_ERROR_EXCEPTION

    VALUE_ERROR_EXCEPTION exception

  An invalid parameter was passed to the API.

Type Detail

### array

    type array is table of varchar2(2000) index by binary_integer

  This array receives varchar2 data from various security methods.

### grantee_array

    type grantee_array is table of grantee_record index by binary_integer

  An array of grantee_record(s).

### grantee_record

    type grantee_record is record (
        grantee_type wwsec_sys_priv$.grantee_type%type,
        grantee_id number,
        grantee_name wwsec_person$.user_name%type,
        privilege wwsec_sys_priv$.privilege%type
    )

  A record structure containing the details of a grantee of a privilege.

  Fields:
    `grantee_type` - indicates whether the privilege is granted to a 'USER' or a 'GROUP'
    `grantee_id` - the numeric identifier of the grantee - which may be a user id or a group id
    `grantee_name` - the name of the user or group represented by this entry
    `privilege` - the privilege granted to the user or group
  Since:
    3.0.6.6.5

### idarray

    type idarray is table of number index by binary_integer

  This array receives number data from various security methods.

### list_array

    type list_array is table of list_record index by binary_integer

  An array containing a list of groups.

### list_member_array

    type list_member_array is table of list_member_record index by binary_integer

  An array of list_member_record records returned by the wwsec_api.get_list_members function.

### list_member_record

    type list_member_record is record (
        id wwsec_member$.id%type,
        group_id wwsec_member$.group_id%type,
        member_type wwsec_member$.member_type%type,
        member_group_id wwsec_member$.member_group_id%type,
        member_person_id wwsec_member$.member_person_id%type
    )

  A record structure containing the details of members of a group.

  Fields:
    `id` - an identifier for the member entry
    `group_id` - the identifier for the group to which this membership belongs
    `member_type` - indicates whether this membership entry is for a GROUP member or a USER member
    `member_group_id` - contains the identifier of the member group if the member_type is GROUP; and is 0 otherwise
    `member_person_id` - contains the identifier of the member user if the member_type is USER; and is 0 otherwise

### list_record

    type list_record is record (
        group_id wwsec_group$.id%type,
        siteid wwsec_group$.site_id%type,
        name wwsec_group$.name%type,
        description wwsec_group$.description%type
    )

  A record structure containing details of a group.

  Fields:
    `group_id` - the portal's numeric identifier for the group
    `siteid` - the numeric identifier for the content area to which the group may be scoped; or 0 if not locally scoped
    `name` - the name of the group
    `description` - a free-text description of the group
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### privilege_array

    type privilege_array is table of wwsec_privilege$%rowtype index by binary_integer

  An array containing the list of privileges appropriate for assignment on a particular object type.

### username_type

    subtype username_type is wwsec_person$.user_name%type

  Subtype for representing user names.

Constant Detail

### ACCESS_PRIV

    ACCESS_PRIV constant wwsec_sys_priv$.privilege%type := 'ACCESS'

### ADD_CUSTOM_PRIV

    ADD_CUSTOM_PRIV constant wwsec_sys_priv$.privilege%type := 'ADD_ONLY_CUSTOM_CONTENT'

### ALL_OBJECTS

    ALL_OBJECTS constant wwsec_sys_priv$.name%type := 'ALL_OBJECTS'

  This constant is used for the object instance identifier (name) for the global privileges (ANY_XXXX).

### ANYGROUP_CREATE

    ANYGROUP_CREATE constant number := 100

### ANYGROUP_MANAGE

    ANYGROUP_MANAGE constant number := 200

### ANYGROUP_OBJ

    ANYGROUP_OBJ constant wwsec_sys_priv$.object_type_name%type := 'ANY_GROUP'

### ANYLOG_EDIT

    ANYLOG_EDIT constant number := 200

### ANYLOG_MANAGE

    ANYLOG_MANAGE constant number := 300

### ANYLOG_OBJ

    ANYLOG_OBJ constant wwsec_sys_priv$.object_type_name%type := 'ANY_LOG'

### ANYLOG_VIEW

    ANYLOG_VIEW constant number := 100

### ANYPAGE_ADD_ONLY_CUSTOM_CNT

    ANYPAGE_ADD_ONLY_CUSTOM_CNT constant number := 500

### ANYPAGE_CREATE

    ANYPAGE_CREATE constant number := 100

### ANYPAGE_FULL_CUSTOM_CNT

    ANYPAGE_FULL_CUSTOM_CNT constant number := 600

### ANYPAGE_HIDE_SHOW_CUSTOM_CNT

    ANYPAGE_HIDE_SHOW_CUSTOM_CNT constant number := 400

### ANYPAGE_MANAGE

    ANYPAGE_MANAGE constant number := 1000

### ANYPAGE_MANAGE_CNT

    ANYPAGE_MANAGE_CNT constant number := 900

### ANYPAGE_MANAGE_CNT_WITH_APP

    ANYPAGE_MANAGE_CNT_WITH_APP constant number := 800

### ANYPAGE_MANAGE_STYLE

    ANYPAGE_MANAGE_STYLE constant number := 700

### ANYPAGE_OBJ

    ANYPAGE_OBJ constant wwsec_sys_priv$.object_type_name%type := 'ANY_PAGE'

### ANYPAGE_STYLE_CUSTOM

    ANYPAGE_STYLE_CUSTOM constant number := 300

### ANYPAGE_VIEW

    ANYPAGE_VIEW constant number := 200

### ANYPORTLET_ACCESS

    ANYPORTLET_ACCESS constant number := 200

### ANYPORTLET_EDIT

    ANYPORTLET_EDIT constant number := 400

### ANYPORTLET_EXECUTE

    ANYPORTLET_EXECUTE constant number := 300

### ANYPORTLET_MANAGE

    ANYPORTLET_MANAGE constant number := 500

### ANYPORTLET_OBJ

    ANYPORTLET_OBJ constant wwsec_sys_priv$.object_type_name%type := 'ANY_PORTLET'

### ANYPORTLET_PUBLISH

    ANYPORTLET_PUBLISH constant number := 100

### ANYPROVIDER_CREATE

    ANYPROVIDER_CREATE constant number := 100

### ANYPROVIDER_EDIT

    ANYPROVIDER_EDIT constant number := 400

### ANYPROVIDER_EXECUTE

    ANYPROVIDER_EXECUTE constant number := 200

### ANYPROVIDER_MANAGE

    ANYPROVIDER_MANAGE constant number := 500

### ANYPROVIDER_OBJ

    ANYPROVIDER_OBJ constant wwsec_sys_priv$.object_type_name%type := 'ANY_PROVIDER'

### ANYPROVIDER_PUBLISH

    ANYPROVIDER_PUBLISH constant number := 300

### ANYSCHEMA_CREATE

    ANYSCHEMA_CREATE constant number := 100

### ANYSCHEMA_INSERT

    ANYSCHEMA_INSERT constant number := 300

### ANYSCHEMA_MANAGE

    ANYSCHEMA_MANAGE constant number := 500

### ANYSCHEMA_MODIFY

    ANYSCHEMA_MODIFY constant number := 400

### ANYSCHEMA_OBJ

    ANYSCHEMA_OBJ constant wwsec_sys_priv$.object_type_name%type := 'ANY_SCHEMA'

### ANYSCHEMA_VIEW

    ANYSCHEMA_VIEW constant number := 200

### ANYSITE_CREATE

    ANYSITE_CREATE constant number := 100

### ANYSITE_MANAGE

    ANYSITE_MANAGE constant number := 700

### ANYSITE_MANAGE_CLASSIFICATION

    ANYSITE_MANAGE_CLASSIFICATION constant number := 500

### ANYSITE_MANAGE_STYLE

    ANYSITE_MANAGE_STYLE constant number := 300

### ANYSITE_MANAGE_TEMPLATE

    ANYSITE_MANAGE_TEMPLATE constant number := 400

### ANYSITE_MANAGE_TRANSLATION

    ANYSITE_MANAGE_TRANSLATION constant number := 600

### ANYSITE_OBJ

    ANYSITE_OBJ constant wwsec_sys_priv$.object_type_name%type := 'ANY_SITE'

### ANYSITE_VIEW

    ANYSITE_VIEW constant number := 200

### ANYSTYLE_CREATE

    ANYSTYLE_CREATE constant number := 100

### ANYSTYLE_MANAGE

    ANYSTYLE_MANAGE constant number := 400

### ANYSTYLE_OBJ

    ANYSTYLE_OBJ constant wwsec_sys_priv$.object_type_name%type := 'ANY_STYLE'

### ANYSTYLE_PUBLISH

    ANYSTYLE_PUBLISH constant number := 200

### ANYSTYLE_VIEW

    ANYSTYLE_VIEW constant number := 300

### ANYTRANSPORTSET_EXECUTE

    ANYTRANSPORTSET_EXECUTE constant number := 200

### ANYTRANSPORTSET_MANAGE

    ANYTRANSPORTSET_MANAGE constant number := 500

### ANYTRANSPORTSET_OBJ

    ANYTRANSPORTSET_OBJ constant wwsec_sys_priv$.object_type_name%type := 'ANY_TRANSPORTSET'

### ANYUSER_CREATE

    ANYUSER_CREATE constant number := 100

### ANYUSER_MANAGE

    ANYUSER_MANAGE constant number := 200

### ANYUSER_OBJ

    ANYUSER_OBJ constant wwsec_sys_priv$.object_type_name%type := 'ANY_USER'

### CREATE_PRIV

    CREATE_PRIV constant wwsec_sys_priv$.privilege%type := 'CREATE'

### CUSTOMIZE_PRIV

    CUSTOMIZE_PRIV constant wwsec_sys_priv$.privilege%type := 'CUSTOMIZE'

### DOCUMENT_MANAGE

    DOCUMENT_MANAGE constant number := 200

### DOCUMENT_OBJ

    DOCUMENT_OBJ constant wwsec_sys_priv$.object_type_name%type := 'DOCUMENT'

### DOCUMENT_OWN

    DOCUMENT_OWN constant number := 300

### DOCUMENT_VIEW

    DOCUMENT_VIEW constant number := 100

### EDIT_PRIV

    EDIT_PRIV constant wwsec_sys_priv$.privilege%type := 'EDIT'

### EXECUTE_PRIV

    EXECUTE_PRIV constant wwsec_sys_priv$.privilege%type := 'EXECUTE'

### FULL_CUSTOM_PRIV

    FULL_CUSTOM_PRIV constant wwsec_sys_priv$.privilege%type := 'FULL_CUSTOM_CONTENT'

### GLOBAL_GROUP

    GLOBAL_GROUP constant number(1) := 0

### GRANTEE_GROUP

    GRANTEE_GROUP constant wwsec_sys_priv$.grantee_type%type := 'GROUP'

### GRANTEE_USER

    GRANTEE_USER constant wwsec_sys_priv$.grantee_type%type := 'USER'

### GROUP_AUTHENTICATED_USERS

    GROUP_AUTHENTICATED_USERS constant number(1) := 0

### GROUP_DBA

    GROUP_DBA constant number(1) := 1

### GROUP_IPORTAL_ADMINISTRATORS

    GROUP_IPORTAL_ADMINISTRATORS constant number(1) := GROUP_WEBDB_ADMINISTRATORS

### GROUP_OBJ

    GROUP_OBJ constant wwsec_sys_priv$.object_type_name%type := 'GROUP'

### GROUP_OWN

    GROUP_OWN constant number := 100

### GROUP_PORTAL_PUBLISHERS

    GROUP_PORTAL_PUBLISHERS constant number(1) := 3

### GROUP_TYPE_LIST

    GROUP_TYPE_LIST constant wwsec_group$.group_type%type := 'LIST'

### GROUP_TYPE_ORG

    GROUP_TYPE_ORG constant wwsec_group$.group_type%type := 'ORG'

### GROUP_WEBDB_ADMINISTRATORS

    GROUP_WEBDB_ADMINISTRATORS constant number(1) := 2

### HIDDEN

    HIDDEN constant number(1) := 1

### HIDE_SHOW_CUSTOM_PRIV

    HIDE_SHOW_CUSTOM_PRIV constant wwsec_sys_priv$.privilege%type := 'HIDE_SHOW_CUSTOM_CONTENT'

### INSERT_PRIV

    INSERT_PRIV constant wwsec_sys_priv$.privilege%type := 'INSERT'

### ITEM_MANAGE

    ITEM_MANAGE constant number := 200

### ITEM_OBJ

    ITEM_OBJ constant wwsec_sys_priv$.object_type_name%type := 'ITEM'

### ITEM_OWN

    ITEM_OWN constant number := 300

### ITEM_VIEW

    ITEM_VIEW constant number := 100

### LOV_EDIT

    LOV_EDIT constant number := 200

### LOV_EXECUTE

    LOV_EXECUTE constant number := 100

### LOV_OBJ

    LOV_OBJ constant wwsec_sys_priv$.object_type_name%type := 'LOV'

### MANAGE_CLASSIFICATION_PRIV

    MANAGE_CLASSIFICATION_PRIV constant wwsec_sys_priv$.privilege%type := 'MANAGE_CLASSIFICATION'

### MANAGE_CNT_PRIV

    MANAGE_CNT_PRIV constant wwsec_sys_priv$.privilege%type := 'MANAGE_CONTENT'

### MANAGE_CNT_WITH_APP_PRIV

    MANAGE_CNT_WITH_APP_PRIV constant wwsec_sys_priv$.privilege%type := 'MANAGE_CONTENT_WITH_APPROVAL'

### MANAGE_PRIV

    MANAGE_PRIV constant wwsec_sys_priv$.privilege%type := 'MANAGE'

### MANAGE_STYLE_PRIV

    MANAGE_STYLE_PRIV constant wwsec_sys_priv$.privilege%type := 'MANAGE_STYLE'

### MANAGE_TEMPLATE_PRIV

    MANAGE_TEMPLATE_PRIV constant wwsec_sys_priv$.privilege%type := 'MANAGE_TEMPLATE'

### MEMBER_TYPE_GROUP

    MEMBER_TYPE_GROUP constant wwsec_member$.member_type%type := 'GROUP'

### MEMBER_TYPE_USER

    MEMBER_TYPE_USER constant wwsec_member$.member_type%type := 'USER'

### MENU_EXECUTE

    MENU_EXECUTE constant number := 100

### MENU_OBJ

    MENU_OBJ constant wwsec_sys_priv$.object_type_name%type := 'MENU'

### MODIFY_PRIV

    MODIFY_PRIV constant wwsec_sys_priv$.privilege%type := 'MODIFY'

### NAVBAR_OBJ

    NAVBAR_OBJ constant wwsec_sys_priv$.object_type_name%type := 'NAVBAR'

### NAVBAR_OWN

    NAVBAR_OWN constant number := 100

### NO_PRIVILEGE

    NO_PRIVILEGE constant number := 0

### NOT_HIDDEN

    NOT_HIDDEN constant number(1) := 0

### NOT_OWNER

    NOT_OWNER constant number(1) := 0

### OWN_PRIV

    OWN_PRIV constant wwsec_sys_priv$.privilege%type := 'OWN'

### OWNER

    OWNER constant number(1) := 1

### PAGE_ADD_ONLY_CUSTOM_CNT

    PAGE_ADD_ONLY_CUSTOM_CNT constant number := 400

### PAGE_FULL_CUSTOM_CNT

    PAGE_FULL_CUSTOM_CNT constant number := 500

### PAGE_HIDE_SHOW_CUSTOM_CNT

    PAGE_HIDE_SHOW_CUSTOM_CNT constant number := 300

### PAGE_MANAGE

    PAGE_MANAGE constant number := 900

### PAGE_MANAGE_CNT

    PAGE_MANAGE_CNT constant number := 800

### PAGE_MANAGE_CNT_WITH_APP

    PAGE_MANAGE_CNT_WITH_APP constant number := 700

### PAGE_MANAGE_STYLE

    PAGE_MANAGE_STYLE constant number := 600

### PAGE_OBJ

    PAGE_OBJ constant wwsec_sys_priv$.object_type_name%type := 'PAGE'

### PAGE_STYLE_CUSTOM

    PAGE_STYLE_CUSTOM constant number := 200

### PAGE_VIEW

    PAGE_VIEW constant number := 100

### PORTLET_ACCESS

    PORTLET_ACCESS constant number := 200

### PORTLET_EDIT

    PORTLET_EDIT constant number := 400

### PORTLET_EXECUTE

    PORTLET_EXECUTE constant number := 300

### PORTLET_MANAGE

    PORTLET_MANAGE constant number := 500

### PORTLET_NON_LOCAL_ACCESS

    PORTLET_NON_LOCAL_ACCESS constant number := 200

### PORTLET_NON_LOCAL_EXECUTE

    PORTLET_NON_LOCAL_EXECUTE constant number := 300

### PORTLET_NON_LOCAL_MANAGE

    PORTLET_NON_LOCAL_MANAGE constant number := 500

### PORTLET_NON_LOCAL_PUBLISH

    PORTLET_NON_LOCAL_PUBLISH constant number := 100

### PORTLET_NONLOCAL_OBJ

    PORTLET_NONLOCAL_OBJ constant wwsec_sys_priv$.object_type_name%type := 'PORTLET_NON_LOCAL'

### PORTLET_OBJ

    PORTLET_OBJ constant wwsec_sys_priv$.object_type_name%type := 'PORTLET'

### PORTLET_PUBLISH

    PORTLET_PUBLISH constant number := 100

### PROVIDER_EDIT

    PROVIDER_EDIT constant number := 400

### PROVIDER_EXECUTE

    PROVIDER_EXECUTE constant number := 200

### PROVIDER_MANAGE

    PROVIDER_MANAGE constant number := 500

### PROVIDER_OBJ

    PROVIDER_OBJ constant wwsec_sys_priv$.object_type_name%type := 'PROVIDER'

### PROVIDER_PUBLISH

    PROVIDER_PUBLISH constant number := 300

### PUBLISH_PRIV

    PUBLISH_PRIV constant wwsec_sys_priv$.privilege%type := 'PUBLISH'

### SCHEMA_ADMIN

    SCHEMA_ADMIN constant number(1) := 1

### SCHEMA_BROWSEIN

    SCHEMA_BROWSEIN constant number := 100

### SCHEMA_BUILDIN

    SCHEMA_BUILDIN constant number := 200

### SCHEMA_OBJ

    SCHEMA_OBJ constant wwsec_sys_priv$.object_type_name%type := 'SCHEMA'

### SCHEMA_OWNER

    SCHEMA_OWNER constant number(1) := 0

### SEARCH_SUBTYPE_GROUP

    SEARCH_SUBTYPE_GROUP constant varchar2(30) := 'GROUP'

### SEARCH_SUBTYPE_USER

    SEARCH_SUBTYPE_USER constant varchar2(30) := 'USER'

### SEARCH_TYPE_UG

    SEARCH_TYPE_UG constant varchar2(30) := 'USERGROUP'

### SITE_MANAGE

    SITE_MANAGE constant number := 600

### SITE_MANAGE_CLASSIFICATION

    SITE_MANAGE_CLASSIFICATION constant number := 400

### SITE_MANAGE_STYLE

    SITE_MANAGE_STYLE constant number := 200

### SITE_MANAGE_TEMPLATE

    SITE_MANAGE_TEMPLATE constant number := 300

### SITE_MANAGE_TRANSLATION

    SITE_MANAGE_TRANSLATION constant number := 500

### SITE_OBJ

    SITE_OBJ constant wwsec_sys_priv$.object_type_name%type := 'SITE'

### SITE_SEPARATOR

    SITE_SEPARATOR constant varchar2(1) := '/'

  Separator used for object names that include multiple identifiers.

### SITE_VIEW

    SITE_VIEW constant number := 100

### STYLE_CUSTOM_PRIV

    STYLE_CUSTOM_PRIV constant wwsec_sys_priv$.privilege%type := 'STYLE_CUSTOM'

### USER_PUBLIC

    USER_PUBLIC constant number(1) := 2

### VIEW_PRIV

    VIEW_PRIV constant wwsec_sys_priv$.privilege%type := 'VIEW'

### WORKFLOW_EXECUTE

    WORKFLOW_EXECUTE constant number := 300

### WORKFLOW_MANAGE

    WORKFLOW_MANAGE constant number := 400

### WORKFLOW_STATUS

    WORKFLOW_STATUS constant number := 100

### WORKFLOW_STATUS_AND_EXECUTE

    WORKFLOW_STATUS_AND_EXECUTE constant number := 200

Variable Detail

### empty

    empty array

  An instance of an empty array of varchar2s for initialization.

### emptyidarray

    emptyidarray idarray

  An instance of an empty array of numbers for initialization.

Function/Procedure Detail

### accessible_objects

    function accessible_objects(
        p_object_type_name in varchar2,
        p_privilege in varchar2,
        p_owner in varchar2 default wwctx_api . get_product_schema
    ) return array

  Gets a list of objects accessible to a user, checking for a specific privilege.

  Returns a list of accessible objects of a single object type and single privilege level to which a specified user, or a specified group that the user belongs to, has privileges.

  Example:

       declare
           l_array wwsec_api.array;
       begin
           l_array := wwsec_api.accessible_objects
           (
               p_object_type_name => wwsec_api.PAGE_OBJ,
               p_privilege        => wwsec_api.OWN_PRIV
           );
       end;

  Parameters:
    `p_object_type_name` - the type of object, e.g., ADMIN, FOLDER, ITEM, etc.
    `p_privilege` - the privilege required on the object
    `p_owner` - the name of the schema that owns the Access Control List entry, or another name space discriminator
  Returns:
    an array containing a list of objects of a specified type, and on which a specified privilege has been granted to a user or a group to which the user belongs
  Exceptions:
    `NO_ACCESSIBLE_OBJECT_EXCEPTION` - if no such object exists
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### accessible_objects

    function accessible_objects(
        p_object_type_name in varchar2,
        p_privilege_array in wwsec_api.array,
        p_owner in varchar2 default wwctx_api . get_product_schema
    ) return array

  Gets a list of objects accessible to a user, checking for a number of privileges.

  This routine returns a list of accessible objects that the user has one or more of a specified set of privileges over.

  Example:

       declare
           l_objects wwsec_api.array;
           l_priv_array wwsec_api.array;
       begin
           l_priv_array(1):= wwsec_api.MANAGE_PRIV;
           l_priv_array(2):= wwsec_api.CREATE_PRIV;
           (
               p_object_type_name => wwsec_api.PAGE_OBJ,
               p_privilege_array  => l_priv_array
           );
       end;

  Parameters:
    `p_object_type_name` - the type of object, e.g., ADMIN, FOLDER, ITEM, etc.
    `p_privilege_array` - the list of privileges need to be checked
    `p_owner` - the name of the schema that owns the Access Control List entry, or another name space discriminator
  Returns:
    an array of objects of a specified type to which the user, or a group to which the user belongs, has specified privileges
  Exceptions:
    `NO_ACCESSIBLE_OBJECT_EXCEPTION` - if no such object exists
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### activate_portal_user

    procedure activate_portal_user(
        p_user_name in varchar2
    )

  Activates an existing but inactive Oracle9iAS Portal user.

  Note: Sets portal_user to 'Y' in the Oracle9iAS Portal user record.

  Example:

       begin
           wwsec_api.activate_portal_user
           (
               p_user_name => 'USER1'
           );
       end;

  Parameters:
    `p_user_name` - the user name of an existing user whose account should be activated
  Exceptions:
    `USER_NOT_FOUND_EXCEPTION` - if a Portal User Profile entry for a user with username p_user_name does not exist, even though the user may be present in OID
    `ACCESS_DENIED_EXCEPTION` - if the user who initiates the calling routine has insufficient authority to execute the routine
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### add_group_to_list

    procedure add_group_to_list(
        p_group_id in number,
        p_to_group_id in number,
        p_is_owner in number
    )

  Adds a group as a member to another group.

  This routine adds a group to a list type group and sets privileges if the members of the group are to be owners of the group to which they are being added.

  Example:

       wwsec_api.add_group_to_list(
           p_group_id    => wwsec_api.group_id('POWER_USERS'),
           p_to_group_id => wwsec_api.group_id('PORTAL_DEVELOPERS'),
           p_is_owner    => wwsec_api.OWNER
       );

  Parameters:
    `p_group_id` - the portal's identifier for the group to be added as a member
    `p_to_group_id` - the portal's identifier for the group to which the other group should be added as a member
    `p_is_owner` - flag indicates whether or not the group should be added as an owner of the group
  Exceptions:
    `GROUP_NOT_FOUND_EXCEPTION` - if one of the referenced groups doesn't exist
    `GROUP_MEMBER_EXCEPTION` - if the group is already a member of the other group
    `ACCESS_DENIED_EXCEPTION` - if the caller is not an owner of the group or does not have a global privilege to edit groups
    `CIRCULAR_REFERENCE_EXCEPTION` - if the group rolls up into itself at some point of the group membership chain
    `LDAP_CONNECTION_EXCEPTION` - if the portal cannot connect to OID
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### add_portal_user

    function add_portal_user(
        p_user_name in varchar2,
        p_db_user in varchar2 default null,
        p_empno in varchar2 default null,
        p_display_personal_info in varchar2 default 'n',
        p_last_name in varchar2 default null,
        p_first_name in varchar2 default null,
        p_middle_name in varchar2 default null,
        p_known_as in varchar2 default null,
        p_maiden_name in varchar2 default null,
        p_date_of_birth in varchar2 default null,
        p_email in varchar2 default null,
        p_work_phone in varchar2 default null,
        p_home_phone in varchar2 default null,
        p_mobile_phone in varchar2 default null,
        p_pager in varchar2 default null,
        p_fax in varchar2 default null,
        p_office_addr1 in varchar2 default null,
        p_office_addr2 in varchar2 default null,
        p_office_addr3 in varchar2 default null,
        p_office_city in varchar2 default null,
        p_office_state in varchar2 default null,
        p_office_zip in varchar2 default null,
        p_office_country in varchar2 default null,
        p_home_addr1 in varchar2 default null,
        p_home_addr2 in varchar2 default null,
        p_home_addr3 in varchar2 default null,
        p_home_city in varchar2 default null,
        p_home_state in varchar2 default null,
        p_home_zip in varchar2 default null,
        p_home_country in varchar2 default null,
        p_organization in varchar2 default null,
        p_title in varchar2 default null,
        p_spending_limit in number default null,
        p_hiredate in varchar2 default null,
        p_source in varchar2 default null,
        p_manager_user_name in varchar2 default null,
        p_portal_user in varchar2 default 'y'
    ) return number

  Adds a Portal profile entry to the Oracle9iAS Portal repository.

  In Oracle9iAS Portal 9.0.2 (or later) this function can be used to add a user profile for a user that exists in Oracle Internet Directory (OID). The user must already exist in OID before this function is called. The result of this function is that the user attributes are updated based on the values that are passed. A local entry for the user is also created in the Portal. This local entry can then be used to grant appropriate privileges to access various Portal objects.

  Example:

       declare
           l_id number;
       begin
           l_id := wwsec_api.add_portal_user
           (
             p_User_Name     => 'JWDOE',
             p_Empno         => '123-45-6789',
             p_Display_Personal_Info  => 'Y',
             p_Last_Name     => 'Doe',
             p_First_Name    => 'John',
             p_Middle_Name   => 'Wilson',
             p_Known_As      => 'John',
             p_Date_Of_Birth => '15-MAR-1968',
             p_Email         => 'jdoe@abc.com',
             p_Work_Phone    => '(123) 456-7890',
             p_Home_Phone    => '(234) 567-8901',
             p_Mobile_Phone  => '(345) 678-9012',
             p_Pager         => '(456) 789-0123',
             p_Fax           => '(567) 890-1234',
             p_Office_Addr1  => '123 First St',
             p_Office_City   => 'Washington',
             p_Office_State  => 'DC',
             p_Office_Zip    => '20001',
             p_Office_Country => 'USA',
             p_Home_Addr1    => '234 Second St',
             p_Home_City     => 'Washington',
             p_Home_State    => 'DC',
             p_Home_Zip      => '20001',
             p_Home_Country  => 'USA',
             p_Title         => 'Not Assigned',
             p_Hiredate      => '01-Oct-2000',
             p_Manager_User_Name => 'GHTHOMAS',
             p_Portal_User   => 'Y'
           );
       end;

  Parameters:
    `p_User_Name` - the user name of the user being added to Oracle9iAS Portal
    `p_DB_User` - a database user name
    `p_Empno` - an employee number
    `p_Display_Personal_Info` - enter Y or N to choose to display personal information
    `p_Last_Name` - the user's family name
    `p_First_Name` - the user's given name
    `p_Middle_Name` - the user's middle name
    `p_Known_As` - the user's nickname
    `p_Maiden_Name` - the user's maiden name (if applicable)
    `p_Date_Of_Birth` - the user's date of birth. Note: Use the date format 'DD-MON-YYYY' format (the month is not case sensitive).
    `p_Email` - the user's e-mail address
    `p_Work_Phone` - the user's work phone number
    `p_Home_Phone` - the user's home phone number
    `p_Mobile_Phone` - the user's mobile phone number
    `p_Pager` - the user's pager number
    `p_Fax` - the user's fax number
    `p_Office_Addr1` - the first line of the user's office address
    `p_Office_Addr2` - the second line of the user's office address
    `p_Office_Addr3` - the third line of the user's office address
    `p_Office_City` - the city in which the user's office is located
    `p_Office_State` - the state in which the user's office is located
    `p_Office_Zip` - the zip code for the person's office
    `p_Office_Country` - the country in which the user's office is located
    `p_Home_Addr1` - the first line of the user's home address
    `p_Home_Addr2` - the second line of the user's home address.
    `p_Home_Addr3` - the third line of the user's home address
    `p_Home_City` - the user's home city
    `p_Home_State` - the user's home state
    `p_Home_Zip` - the user's home zip code
    `p_Home_Country` - the user's home country
    `p_Organization` - the user's organization. Note: This parameter is currently ignored. The organization value is always taken from the subscriber.
    `p_Title` - the user's job title
    `p_Spending_Limit` - the user's spending limit Note: This parameter is currently ignored.
    `p_Hiredate` - the user's date of hire Note: Use the date format 'DD-MON-YYYY' (the month is not case sensitive).
    `p_Source` - the source of user information (via bulkload or UI) Note: This parameter is currently ignored.
    `p_Manager_User_Name` - the user name of the user's manager
    `p_Portal_User` - (Y/N) indicates whether the user is an active Oracle9iAS Portal user
  Returns:
    this function returns a person ID
  Exceptions:
    `NO_MANAGER_EXCEPTION` - if the user's manager's user ID is not entered
    `ACCESS_DENIED_EXCEPTION` - if the user who initiates the calling routine has insufficient authority to execute the routine
    `UNEXPECTED_EXCEPTION` - if a problem occurs for which an exception has not been defined
    `USER_EXISTS_EXCEPTION` - if a local user profile already exists in the portal schema
    `USER_NOT_FOUND_EXCEPTION` - if the user does not exist in OID
    `LDAP_CONNECTION_EXCEPTION` - if the portal cannot connect to OID
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### add_user_to_list

    procedure add_user_to_list(
        p_person_id in number,
        p_to_group_id in number,
        p_is_owner in number
    )

  Adds a user to a group.

  This routine adds a user to a group and sets privileges if the user is to be an owner of the group. In Oracle9iAS Portal 9.0.2 or later, this API makes an API call to OID to update the group in the directory.

  Example:

       wwsec_api.add_user_to_list(
           p_person_id   => wwsec_api.id('JDOE'),
           p_to_group_id => wwsec_api.group_id('PORTAL_DEVELOPERS'),
           p_is_owner    => wwsec_api.OWNER
       );

  Parameters:
    `p_person_id` - the portal's identifier for the user
    `p_to_group_id` - the portal's identifier for the group to which the user should be added
    `p_is_owner` - flag indicates whether or not the user should be added as an owner of the group
  Exceptions:
    `INVALID_PERSON_ID_EXCEPTION` - if the specified p_person_id doesn't exist
    `GROUP_NOT_FOUND_EXCEPTION` - if the specified group doesn't exist
    `ACCESS_DENIED_EXCEPTION` - if the caller is not an owner of the group or does not have a global privilege to edit groups
    `GROUP_MEMBER_EXCEPTION` - if the user specified by p_person_id is already a member of the group
    `LDAP_CONNECTION_EXCEPTION` - if the portal cannot connect to OID
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### clear_package_cache

    procedure clear_package_cache

  Clears the package level cache.

  The package wwsec_api maintains its own internal cache to improve performance of the APIs. Resetting these cached values can degrade the performance of these APIs. However, if an application needs to reset the state of the package variables for some reason then this procedure can be used.

  It clears all the values held in package level variables so that these values can be obtained from the database when they are accessed the next time around. This is useful when switching context from one subscriber to another, since the settings for each subscriber can be different from others.

  Example:

       begin
           wwsec_api.clear_package_cache;
       end;

  Since:
    Oracle9iAS Portal 9.0.2.5

### copy_privileges

    procedure copy_privileges(
        p_object_type in varchar2,
        p_object_from in varchar2,
        p_object_to in varchar2,
        p_owner in varchar2 default wwctx_api . get_product_schema
    )

  Copies all privileges from a source object to a destination object.

  This procedure copies all privileges granted on object_from to object_to. The source object must exist, and must be of type p_obj_type. ACL entries are then created for the object_to referenced, but no checks are made to ensure that the object exists.

  Example:

       begin
           copy_privileges(
               p_object_type => wwsec_api.PAGE_OBJ,
               p_object_from => '1/1'
               p_object_to   => '1/399'
           );
       end;

  Parameters:
    `p_object_type` - the ACL object_type name constant for the source object
    `p_object_from` - the unique name of the source object
    `p_object_to` - the unique name of the destination object
    `p_owner` - the name of the schema that owns the Access Control List entry, or another name space discriminator
  Exceptions:
    `ACCESS_DENIED_EXCEPTION` - if then caller has no authority
    `VALUE_ERROR_EXCEPTION` - if object_from is the same as object_to
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### create_list

    function create_list(
        p_name in varchar2,
        p_site_id in number default global_group,
        p_description in varchar2 default null,
        p_hidden_group in number default not_hidden,
        p_hidden_members in number default not_hidden
    ) return number

  Creates a group in OID and returns the corresponding group profile ID for the portal. This function is provided primarily for backward compatibility support for the API.

  Note: This API will create the group entry in the associated Oracle Internet Directory. If the group creation succeeds in OID, then the group will be created, regardless of the eventual state of the PL/SQL transaction in the Oracle9iAS Portal repository. E.g., if the PL/SQL API transaction is rolled back, the group will still remain in OID.

  Example:

           l_groupid number;
           l_groupid := wwsec_api.create_list(
               p_name          => 'DEVELOPER',
               p_description   => 'This is a group for developers'
           );

  Parameters:
    `p_name` - a name for the new group

    Note: the p_name must be unique for the site in which it is created and unique among global groups.

    `p_site_id` - the unique identifier for the site in which the group will be created

    Note: This parameter is ignored in Oracle9iAS Portal 9.0.2 and later.

    `p_description` - a description of the new group
    `p_hidden_group` - indicates if the new group is hidden from users and groups (except those who are owners of the new group)
    `p_hidden_members` - this parameter is not used
  Returns:
    this function returns a group ID
  Exceptions:
    `DUPLICATE_GROUP_EXCEPTION` - if a group with the same name exists
    `INVALID_GRP_NAME_EXCEPTION` - if the group name is invalid
    `ACCESS_DENIED_EXCEPTION` - if the user who initiates the calling routine has insufficient authority to execute the routine
    `LDAP_CONNECTION_EXCEPTION` - if the portal cannot connect to OID
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### db_user

    function db_user(
        p_user_name in varchar2
    ) return varchar2

  Returns the database schema name to which the user is associated, given the name of an Oracle9iAS Portal user. The procedures that are invoked through modplsql are invoked by the database schema returned by this function, for the specified user.

  Example:

       declare
           l_dbuser varchar2;
       begin
           l_dbuser := wwsec_api.db_user(
               p_user_name => 'USER1'
           );
       end;

  Parameters:
    `p_user_name` - the name of an Oracle9iAS Portal user
  Returns:
    the name of the database schema associated with this user
  Purity:
    WNDS
  Exceptions:
    `USER_NOT_FOUND_EXCEPTION` - if the user name is not found
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### deactivate_portal_user

    procedure deactivate_portal_user(
        p_user_name in varchar2
    )

  Deactivates an Oracle9iAS Portal user. This prevents the person from logging on to Oracle9iAS Portal.

  Note: Sets portal_user to 'N' in the Oracle9iAS Portal user record.

  Example:

       begin
           wwsec_api.deactivate_portal_user
           (
             p_user_name => 'USER1'
           );
       end;

  Parameters:
    `p_user_name` - the user name of the Oracle9iAS Portal user whose account is to be deactivated
  Exceptions:
    `USER_NOT_FOUND_EXCEPTION` - if a Portal User Profile entry for a user with username p_user_name does not exist, even though the user may be present in OID
    `ACCESS_DENIED_EXCEPTION` - if the user who initiates the calling routine has insufficient authority to execute the routine
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### delete_group_from_list

    procedure delete_group_from_list(
        p_group_id in number,
        p_member_group_id in number
    )

  Deletes a group from the list of members of another group.

  A group may contain members which are users or other groups. This procedure removes a specified group from the list of members of another specified group.

  Example:

       wwsec_api.delete_group_from_list(
           p_group_id        => wwsec_api.group_id ('GROUP1'),
           p_member_group_id => wwsec_api.group_id ('SUBGROUP1')
       );

  Parameters:
    `p_group_id` - the portal's identifier for the group
    `p_member_group_id` - the portal's identifier for the member user
  Exceptions:
    `GROUP_NOT_FOUND_EXCEPTION` - if the referenced group doesn't exist
    `ACCESS_DENIED_EXCEPTION` - if the caller is not an owner of the group or does not have a global privilege to edit groups
    `LDAP_CONNECTION_EXCEPTION` - if the portal cannot connect to OID
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### delete_list

    procedure delete_list(
        p_groupid in number
    )

  Deletes a group from OID and any associated references to the group.

  Note: Only an owner of a group can delete a group.

  Example:

          wwsec_api.delete_list(
             p_group_id => 13
       );

  Parameters:
    `p_groupid` - the ID of the group to be deleted
  See Also:
    create_list
  Exceptions:
    `GROUP_NOT_FOUND_EXCEPTION` - if the specified group doesn't exist
    `ACCESS_DENIED_EXCEPTION` - if the user who initiates the calling routine has insufficient authority to execute the routine
    `LDAP_CONNECTION_EXCEPTION` - if the portal cannot connect to OID
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### delete_portal_user

    procedure delete_portal_user(
        p_user_name in varchar2
    )

  Deletes an Oracle9iAS Portal user profile entry from the portal schema, given a user name. The user entry in OID remains unaffected.

  This procedure effectively removes the user's privileges in the portal, along with their preferences.

  Example:

          wwsec_api.delete_portal_user
           (
             p_user_name => 'USER1'
           );

  Parameters:
    `p_user_name` - the user name of the Oracle9iAS Portal user to be deleted
  Exceptions:
    `ACCESS_DENIED_EXCEPTION` - if the user who initiates a calling routine has insufficient authority to execute the routine
    `USER_NOT_FOUND_EXCEPTION` - if the user name is not found
    `USER_NOT_DELETABLE_EXCEPTION` - if the user name may not be deleted
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### delete_user_from_list

    procedure delete_user_from_list(
        p_group_id in number,
        p_member_person_id in number
    )

  Deletes a user from the membership list of a group.

  Example:

       wwsec_api.delete_user_from_list(
           p_group_id         => wwsec_api.group_id('POWER_USERS'),
           p_member_person_id => wwsec_api.id('JDOE')
       );

  Parameters:
    `p_group_id` - the portal's identifier for the group
    `p_member_person_id` - the portal's identifier for the member user
  Exceptions:
    `GROUP_NOT_FOUND_EXCEPTION` - if the referenced group doesn't exist or the user doesn't exist
    `ACCESS_DENIED_EXCEPTION` - if the caller is not an owner of the group or does not have a global privilege to edit groups
    `LDAP_CONNECTION_EXCEPTION` - if the portal cannot connect to OID
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### get_authorization_function

    function get_authorization_function(
        p_object_type_name in varchar2,
        p_owner in varchar2 default wwctx_api . get_product_schema,
        p_name in varchar2
    ) return varchar2

  Gets the name of the function used for function-based authorization.

  This routine returns the function registered to perform authorization for a specified object.

  Example:

       declare
           l_function varchar2(92);
       begin
           l_function := wwsec_api.get_authorization_function(
               p_object_type_name => wwsec_api.ITEM_OBJ,
               p_name             => '1/123'
           );

  Parameters:
    `p_object_type_name` - the type of object, e.g., ADMIN, FOLDER, ITEM, etc.
    `p_owner` - the 'owner' of the ACL entry, used to resolve namespace collisions
    `p_name` - the reference to the object
  Returns:
    the name of the function being used for the given object type
  Purity:
    WNDS
  See Also:
    set_authorization_function
  Since:
    Oracle9iAS Portal 9.0.2

### get_defaultgroup

    function get_defaultgroup(
        p_username in varchar2 default wwctx_api . get_user
    ) return number

  Returns the default group for a specified user. If no default group is stored for the specified user, the function returns null.

  Note: The default group is the group that the preference system uses if no user-level preferences are specified for a given setting.

  Example:

       declare
           l_defaultgroupid number;
       begin
           l_defaultgroupid := wwsec_api.get_defaultgroup
           (
               p_username => 'USER1'
           );
       end;

  Parameters:
    `p_username` - the name of the user whose default group is being requested
  Returns:
    the default group ID for the specified user, or null if no default group is stored
  See Also:
    set_default_group
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### get_granted_group_privilege

    function get_granted_group_privilege(
        p_group_id in number,
        p_object_type_name in varchar2,
        p_name in varchar2,
        p_owner in varchar2 default wwctx_api . get_product_schema
    ) return varchar2

  Gets the highest privilege that a group has on a given object.

  Example:

       declare
           l_priv varchar2;
       begin
           l_priv := wwsec_api.get_granted_group_privilege(
               p_group_id         => 12,
               p_object_type_name => wwsec_api.PAGE_OBJ,
               p_name             => '0/156
           );
       end;

  Parameters:
    `p_group_id` - the ID of the group
    `p_object_type_name` - the type of object, e.g. ADMIN, FOLDER, ITEM, etc.
    `p_name` - the reference to the object
    `p_owner` - the 'owner' of the ACL entry, used to resolve namespace collisions
  Returns:
    the privilege of the highest granted privilege to the group, or null if no privileges are granted to the group for the specified object
  Purity:
    WNDS
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### get_granted_user_priv_code

    function get_granted_user_priv_code(
        p_user_id in number,
        p_object_type_name in varchar2,
        p_name in varchar2,
        p_owner in varchar2 default wwctx_api . get_product_schema
    ) return number

  Gets the granted privilege code that a user has on a given object.

  Note: This function returns NO_PRIVILEGE if the user has not been granted a privilege on the given object. This is different from get_granted_user_privilege, which returns null in this case. We cannot change the behavior of get_granted_user_privilege because it is a public API.

  Parameters:
    `p_user_id` - the portal's identifier for the user
    `p_object_type_name` - the type of object, e.g., ADMIN, FOLDER, ITEM, etc.
    `p_name` - the reference to the object
    `p_owner` - the name of the schema that owns the Access Control List entry, or another name space discriminator to resolve namespace collisions
  Returns:
    the privilege code granted to the user, or NO_PRIVILEGE if no privilege is granted to the user for the specified object.
  Purity:
    WNDS
  Since:
    Oracle9iAS Portal 9.0.2.5

### get_granted_user_privilege

    function get_granted_user_privilege(
        p_user_id in number,
        p_object_type_name in varchar2,
        p_name in varchar2,
        p_owner in varchar2 default wwctx_api . get_product_schema
    ) return varchar2

  Gets the highest privilege that the user has on the specified object.

  Example:

       declare
           l_priv varchar2;
       begin
           l_priv := wwsec_api.get_granted_user_privilege
           (
               p_user_id          => wwsec_api.id('JDOE'),
               p_object_type_name => wwsec_api.QBEFORM_OBJ,
               p_name             => '33'
           );
       end;

  Parameters:
    `p_user_id` - the portal's identifier for the user
    `p_object_type_name` - the type of object, e.g. ADMIN, FOLDER, ITEM, etc.
    `p_name` - the reference to the object
    `p_owner` - the name of the schema that owns the Access Control List entry, or another name space discriminator to resolve namespace collisions
  Returns:
    the privilege granted to the user, or null if no privileges are granted to the user
  Purity:
    WNDS
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### get_list_members

    function get_list_members(
        p_group_id in number
    ) return wwsec_api.list_member_array

  Deprecated. As of Oracle9iAS Portal 9.0.2, since the groups are maintained in OID that does not support an API to read the membership information if the number of members becomes very large.
  Gets a list of the members of a group of type 'LIST' when given a group id.

  Parameters:
    `p_group_id` - the unique identifier for the group
  Returns:
    an array of list_member_record
  Exceptions:
    `DEPRECATED_API_EXCEPTION` - if invoked
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### get_manager

    function get_manager(
        p_user_name in varchar2
    ) return varchar2

  Returns the user name of a specified user's manager. If no manager is found, the function returns null.

  Example:

       declare
           l_manager wwsec_person.user_name%type;
       begin
           l_manager := wwsec_api.get_manager
           (
             p_user_name => 'user1'
           );
       end;

  Parameters:
    `p_user_name` - the name of the user whose manager is being queried
  Returns:
    the manager's user name for the specified user, or null if the user has no manager
  Exceptions:
    `USER_NOT_FOUND_EXCEPTION` - if the user specified is not found
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### get_member_record

    function get_member_record(
        p_member_id in number
    ) return wwsec_member$%rowtype

  Deprecated. As of Oracle9iAS Portal 9.0.2, since the membership information is maintained in OID and there is no member ID attribute, which is required as an input parameter for this function.
  Gets a member's record from the wwsec_member$ table.

  Parameters:
    `p_member_id` - the member ID
  Returns:
    a row of the member in the wwsec_member$ table
  Exceptions:
    `DEPRECATED_API_EXCEPTION` - if invoked
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### get_privilege_level

    function get_privilege_level(
        p_object_type_name in varchar2,
        p_name in varchar2,
        p_owner in varchar2 default wwctx_api . get_product_schema,
        p_reqd_auth_level in number default wwctx_api . required_authentication_level,
        p_check_public_user in boolean default true
    ) return number

  Checks the highest privilege that a user has on a given object.

  This function returns the highest privilege that a user has on a given object, taking into account all groups that the user belongs to and including direct grants.

  Example:

       declare
           l_priv number;
       begin
           l_priv := wwsec_api.get_privilege_level
           (
               p_object_type_name => wwsec_api.PAGE_OBJ,
               p_name             => '0/156'
           );
       end;

  Parameters:
    `p_object_type_name` - the type of object, e.g. ADMIN, FOLDER, ITEM, etc.
    `p_name` - the reference to the object
    `p_owner` - the 'owner' of the ACL entry, used to resolve namespace collisions
    `p_reqd_auth_level` - the minimum authentication level required
    `p_check_public_user` - TRUE if privileges granted to the public user should be checked (i.e. a user has a privilege if it is granted to the user, the user's groups, or the public user). Default TRUE.
  Returns:
    the privilege_code of the highest granted privilege to the user, or null if no privileges are granted to the user for the specified object.
  Purity:
    WNDS
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### get_public_objects

    function get_public_objects(
        p_object_type_name in varchar2,
        p_privilege in varchar2 default null,
        p_owner in varchar2 default wwctx_api . get_product_schema
    ) return array

  Gets a list of objects granted to PUBLIC. This API returns a list of objects of the specified type and owner and optionally of the specified privilege that are granted to PUBLIC.

  Example:

       declare
           v_names array;
       begin
           v_names := wwsec_api.get_public_objects(
               p_object_type_name => wwsec_api.PAGE_OBJ,
               p_privilege => wwsec_api.MANAGE_PRIV
           );
       end;

  Parameters:
    `p_object_type_name` - the type of object requested
    `p_privilege` - an optional privilege to check for
    `p_owner` - the owner of the ACL entry
  Returns:
    an array of object names granted to PUBLIC
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### grantee_list

    function grantee_list(
        p_object_type_name in varchar2,
        p_name in varchar2,
        p_owner in varchar2 default wwctx_api . get_product_schema
    ) return grantee_array

  Returns a list of grantees for a named object and specified owner.

  Call this routine to return a list of users who have been granted privileges on a specific object, given an object type and an object name.

  Example:

       declare
           l_grantees wwsec_api.grantee_array;
       begin
           l_grantees := wwsec_api.grantee_list
           (
               p_object_type_name => wwsec_api.PAGE_OBJ,
               p_name             => '0/156'
           );
       end;

  Parameters:
    `p_object_type_name` - the type of object, e.g., ADMIN, FOLDER, ITEM, etc.
    `p_name` - the reference to the object
    `p_owner` - the name of the schema that owns the Access Control List entry, or another name space discriminator
  Returns:
    an array of grantee user IDs
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### group_id

    function group_id(
        p_name in varchar2
    ) return number

  Gets the group ID for a specified group name.

  Call this function to return a group ID based on a specified group name. It does not require a site identifier.

  In Oracle9iAS Portal 9.0.2 or later, the function checks the group in the local group repository in the Portal schema. If a local shadow entry is not found, it queries the Oracle Internet Directory (OID) to get the group information and creates a local shadow entry. It always returns the ID of the local shadow entry.

  Example:

       declare
           l_groupid number;
       begin
           l_groupid := wwsec_api.group_id(
               p_name => 'PORTAL_ADMIN'
           );
       end;

  Parameters:
    `p_name` - the common name of the group
  Returns:
    the portal's identifier of the group
  See Also:
    wwsec_api.list_id
  Exceptions:
    `GROUP_NOT_FOUND_EXCEPTION` - if the name cannot be found
    `VALUE_ERROR_EXCEPTION` - if p_name is null
    `LDAP_CONNECTION_EXCEPTION` - if the API is unable to connect with the OID server
    `wwsec_oid.MULTIPLE_MATCHES_FOUND` - if the specified group name is not unique when searching OID from the configured group search base
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### group_info

    function group_info(
        p_group_id in number
    ) return wwsec_group$%rowtype

  Returns group information, given a group ID. Call this function to get the information about a group, excluding the membership information. The 'guid' and 'dn' attributes were added in Oracle9iAS Portal 9.0.2.

  Example:

       declare
           l_group_rec wwsec_group$%rowtype;
       begin
           l_group_rec := wwsec_api.group_info
           (
               p_group_id => wwsec_api.group_id('PORTAL_DEVELOPERS')
           );
           dbms_output.put_line('subscriber_id = '||l_group_rec.subscriber_id );
           dbms_output.put_line('id = '||l_group_rec.id );
           dbms_output.put_line('name = '||l_group_rec.name );
           dbms_output.put_line('description = '||l_group_rec.description );
           dbms_output.put_line('hidden_group = '||l_group_rec.hidden_group );
           dbms_output.put_line('deletable = '||l_group_rec.deletable );
           dbms_output.put_line('guid = '||l_group_rec.guid );
           dbms_output.put_line('dn = '||l_group_rec.dn );
       end;

  Parameters:
    `p_group_id` - the portal's identifier for the group
  Returns:
    a row of group information including SUBSCRIBER_ID, ID, NAME, DESCRIPTION, HIDDEN_GROUP, DELETABLE, GUID and DN columns.
  Exceptions:
    `GROUP_NOT_FOUND_EXCEPTION` - if referenced group doesn't exist
    `wwsec_oid.MULTIPLE_MATCHES_FOUND` - if the specified group name is not unique when searching OID from the configured group search base
    `LDAP_CONNECTION_EXCEPTION` - if the portal cannot connect to OID
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### group_name

    function group_name(
        p_group_id in number
    ) return varchar2

  Returns the group name when given a group ID.

  Example:

       declare
           l_groupname wwsec_group$.name%type;
       begin
           l_groupname := wwsec_api.group_name(
               p_group_id => 123
           )
       end;

  Parameters:
    `p_group_id` - the portal's identifier for the group
  Returns:
    the group name
  Exceptions:
    `GROUP_NOT_FOUND_EXCEPTION` - if the specified p_group_id could not be found
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### has_privilege

    function has_privilege(
        p_object_type_name in varchar2,
        p_name in varchar2,
        p_privilege in varchar2,
        p_owner in varchar2 default wwctx_api . get_product_schema,
        p_reqd_auth_level in number default wwctx_api . required_authentication_level,
        p_check_public_user in boolean default true
    ) return boolean

  Checks whether a user has a certain privilege. This routine returns TRUE if the user or any group the user belongs to has been granted a certain privilege in the Oracle9iAS Portal repository, and returns FALSE otherwise.

  Example:

       declare
           l_is_allowed boolean;
       begin
           l_is_allowed := wwsec_api.has_privilege
           (
               p_object_type_name => wwsec_api.PAGE_OBJ,
               p_name             => '0/156',
               p_privilege        => wwsec_api.OWN_PRIV
           );
       end;

  Parameters:
    `p_object_type_name` - the type of object, e.g., ADMIN, FOLDER, ITEM, etc.
    `p_name` - the reference to the object
    `p_privilege` - the privilege that needs to be checked
    `p_owner` - the 'owner' of the ACL entry, used to resolve namespace collisions
    `p_reqd_auth_level` - the minimum authentication level required
    `p_check_public_user` - TRUE if privileges granted to the public user should be checked (i.e. a user has a privilege if it is granted to the user, the user's groups, or the public user). Default TRUE.
  Returns:
    TRUE if the user has the specified privilege, FALSE otherwise
  Purity:
    WNDS
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### has_privilege

    function has_privilege(
        p_object_type_name in varchar2,
        p_name in varchar2,
        p_privilege_array in wwsec_api.array,
        p_owner in varchar2 default wwctx_api . get_product_schema,
        p_reqd_auth_level in number default wwctx_api . required_authentication_level,
        p_check_public_user in boolean default true
    ) return boolean

  Checks whether a user has one of a list of privileges. This routine returns TRUE if the user or the group the user belongs to has at least one of a list of privileges in ACL table, and returns FALSE otherwise.

  Example:

       declare
           l_is_allowed boolean;
           l_priv_array wwsec_api.array;
       begin
           l_priv_array(1):= wwsec_api.MANAGE_PRIV;
           l_priv_array(2):= wwsec_api.CREATE_PRIV;
           l_is_allowed := wwsec_api.has_privilege
           (
               p_object_type_name => wwsec_api.PAGE_OBJ,
               p_name             => '0/156',
               p_privilege_array  => l_priv_array
           );
       end;

  Parameters:
    `p_object_type_name` - the type of object, e.g., ADMIN, FOLDER, ITEM, etc.
    `p_name` - the reference to the object
    `p_privilege_array` - the list of privileges
    `p_owner` - the owner of the privilege object
    `p_reqd_auth_level` - the minimum authentication level required
    `p_check_public_user` - TRUE if privileges granted to the public user should be checked (i.e. a user has a privilege if it is granted to the user, the user's groups, or the public user). Default TRUE.
  Returns:
    TRUE if the user has the specified privilege, FALSE otherwise
  Purity:
    WNDS
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### has_privilege

    function has_privilege(
        p_object_type_name in varchar2,
        p_name in varchar2,
        p_privilege_code in number,
        p_owner in varchar2 default wwctx_api . get_product_schema,
        p_reqd_auth_level in number default wwctx_api . required_authentication_level,
        p_check_public_user in boolean default true
    ) return boolean

  Checks whether a specified user has a specified privilege.

  This version uses a privilege code, instead of the privileges string, for better performance. This routine returns TRUE if the user or the group the user belongs to has a certain privilege in ACL table, and returns FALSE otherwise.

  Example:

       declare
           l_is_allowed boolean;
       begin
           l_is_allowed := wwsec_api.has_privilege(
               p_object_type_name => wwsec_api.PAGE_OBJ,
               p_name             => '0/156',
               p_privilege_code   => wwsec_api.MANAGE_PRIV
           );
       end;

  Parameters:
    `p_object_type_name` - the type of object, e.g., ADMIN, FOLDER, ITEM, etc.
    `p_name` - the reference to the object
    `p_privilege_code` - the privilege code that needs to be checked.
    `p_owner` - the 'owner' of the ACL entry, used to resolve namespace collisions
    `p_reqd_auth_level` - the minimum authentication level required
    `p_check_public_user` - TRUE if privileges granted to the public user should be checked (i.e. a user has a privilege if it is granted to the user, the user's groups, or the public user). Default TRUE.
  Returns:
    TRUE if the user has the specified privilege, FALSE otherwise
  Purity:
    WNDS
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### id

    function id(
        p_user_name in varchar2,
        p_userguid in varchar2 default null
    ) return number

  Returns a person ID, given a user name or Globally Unique Identifier (GUID).

  Example:

       declare
           l_id number;
       begin
           l_id := wwsec_api.id(
               p_user_name => 'user1'
           );
       end;

  Parameters:
    `p_user_name` - the user name of the Oracle9iAS Portal user
    `p_userguid` - the global unique identifier (GUID) used to identify the user in OID. It is an optional parameter and when specified takes precedence over p_user_name. Note that this parameter is available in Oracle9iAS Portal 9.0.2 or later.
  Returns:
    a person identifier if a profile entry exists for the user in the portal
  See Also:
    wwsec_api.id_sso
  Purity:
    WNDS
  Exceptions:
    `USER_NOT_FOUND_EXCEPTION` - if the user name is not found in the Portal's profile table
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### id_sso

    function id_sso(
        p_username in varchar2,
        p_userguid in varchar2 default null
    ) return number

  Returns a person ID, given a user name or GUID and also validates that a user exists in the OID Server and Oracle9iAS Portal.

  It also creates a shadow entry in Oracle9iAS Portal (if one does not exist) before returning the person ID.

  Example:

       declare
           l_id number;
       begin
           l_id := wwsec_api.id_sso(
               p_username => 'user1'
           );
       end;

  Parameters:
    `p_username` - the user name of the Oracle9iAS Portal user
    `p_userguid` - the global unique identifier (GUID) used to identify the user in OID. It is an optional parameter and when specified takes precedence over p_user_name. Note that this parameter is available in Oracle9iAS Portal 9.0.2 or later.
  Returns:
    a person ID
  See Also:
    wwsec_api.id
  Exceptions:
    `USER_NOT_FOUND_EXCEPTION` - if the user name is not found in the portal profile or in OID.
    `UNEXPECTED_EXCEPTION` - if any other exception condition occurs
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### is_group_owner

    function is_group_owner(
        p_member_id in number
    ) return number

  Deprecated. As of Oracle9iAS Portal 9.0.2, since the membership information is maintained in OID and there is no member id attribute, which is required as an input parameter for this function.
  Checks whether a member is a group's owner. This routine returns 1 when the member is the group's owner, 0 otherwise.

  Parameters:
    `p_member_id` - The identifier of the member record from the group. The member ID can be obtained from the list_member_record obtained from a call to wwsec_api.get_list_members.
  Returns:
    1 when the member is the group's owner; 0 otherwise
  See Also:
    wwsec_api.get_list_members
  Exceptions:
    `DEPRECATED_API_EXCEPTION` - if invoked
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### is_privilege_at_least

    function is_privilege_at_least(
        p_object_type_name in varchar2,
        p_name in varchar2,
        p_privilege_code in number,
        p_owner in varchar2 default wwctx_api . get_product_schema,
        p_reqd_auth_level in number default wwctx_api . required_authentication_level,
        p_check_public_user in boolean default true
    ) return boolean

  Checks whether a specified user, or group to which a user belongs, has a privilege on a specified object that is at least as high as the privilege specified. This check assumes that privileges are defined hierarchically, and that the highest privilege has the highest privilege code.

  This routine returns TRUE if the user or the group the user belongs to has at least a certain privilege on a given object, and returns FALSE otherwise.

  Example:

       declare
           l_return boolean;
       begin
           wwsec_api.is_privilege_at_least(
               p_object_type_name => wwsec_oid.PAGE_OBJ,
               p_name             => l_name,
               p_privilege_code   => wwsec_api.ANYLOG_MANAGE
           );
       end;

  Parameters:
    `p_object_type_name` - the type of object, e.g., ADMIN, FOLDER, ITEM, etc.
    `p_name` - the reference to the object
    `p_privilege_code` - the minimum privilege code required
    `p_owner` - the 'owner' of the ACL entry, used to resolve namespace collisions
    `p_reqd_auth_level` - the minimum authentication level required
    `p_check_public_user` - TRUE if privileges granted to the public user should be checked (i.e. a user has a privilege if it is granted to the user, the user's groups, or the public user). Default TRUE.
  Returns:
    TRUE if the user has at least the specified privilege, FALSE otherwise
  Purity:
    WNDS
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### is_privileged_by_auth_function

    function is_privileged_by_auth_function(
        p_object_type_name in varchar2,
        p_name in varchar2,
        p_privilege_code in varchar2,
        p_owner in varchar2 default wwctx_api . get_product_schema,
        p_reqd_auth_level in number default wwctx_api . required_authentication_level,
        p_auth_function in varchar2 default null
    ) return boolean

  Checks the authorization by calling the authorization function.

  This routine calls the authorization function for the given objects and returns the value that is returned by this authorization function.

  Parameters:
    `p_object_type_name` - the type of object, e.g., ADMIN, FOLDER, ITEM, etc.
    `p_name` - the reference to the object
    `p_privilege_code` - the privilege code that needs to be checked
    `p_owner` - the 'owner' of the ACL entry, used to resolve namespace collisions
    `p_reqd_auth_level` - the minimum authentication level required
    `p_auth_function` - name of the authorization function including the schema and the package name as [schema].[package].[function]. This is an optional parameter. If it is not passed then its value is obtained by calling get_authorization_function.
  Returns:
    the value returned by the authorization function
  Purity:
    WNDS
  See Also:
    set_authorization_function
    get_authorization_function
  Since:
    Oracle9iAS Portal 9.0.2

### is_user_in_direct_group

    function is_user_in_direct_group(
        p_person_id in number,
        p_group_id in number
    ) return boolean

  Checks whether a user was individually granted membership in a specific group.

  Call this function to check if a user is individually (directly) registered as a member of a specific group. If the specified user's membership in the specified group is the result of the user's membership in another group that is a member of the specified group (an indirect membership), this function returns FALSE.

  For example, a user can have an individual membership in the Oracle9iAS Portal Administrators group, or can have a membership in the Oracle9iAS Portal Administrators group by being a member of the DBA group, which is a member of the Oracle9iAS Portal Administrators group. If a membership in DBA causes this user to be a member of Oracle9iAS Portal Administrators, this function would return FALSE. If the user has a direct membership in Oracle9iAS Portal Administrators, this function would return TRUE.

  Example:

       declare
           l_is_direct_member boolean;
       begin
           l_is_direct_member := wwsec_api.is_user_in_direct_group(
               p_person_id => wwsec_api.id('JDOE'),
               p_group_id  => wwsec_api.group_id('DBA_GROUP')
           );
       end;

  Parameters:
    `p_person_id` - the portal's identifier for the user
    `p_group_id` - the portal's identifier for the group
  Returns:
    TRUE or FALSE indicating whether or not the user is a direct member
  Exceptions:
    `GROUP_NOT_FOUND_EXCEPTION` - if the referenced group doesn't exist
    `LDAP_CONNECTION_EXCEPTION` - if the portal cannot connect to OID
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### is_user_in_group

    function is_user_in_group(
        p_person_id in number,
        p_group_id in number
    ) return boolean

  Checks whether a user belongs to a specific group.

  Call this routine to determine if a user is a member of a specified group. This function can be used to resolve nested memberships. For example, if a user U is a member of a group A, which, in turn, is a member of group B, then user U is also considered a member of group B. This function returns TRUE, if p_person_id refers to user U and p_group_id refers to either group A or group B.

  Example:

       declare
           l_is_member boolean;
       begin
           l_is_member := wwsec_api.is_user_in_group(
               p_person_id => wwsec_api.id ('USER1'),
               p_group_id  => wwsec_api.group_id ('GROUP1')
           );
       end;

  Parameters:
    `p_person_id` - the portal's identifier for the user
    `p_group_id` - the portal's identifier for the group
  Returns:
    TRUE or FALSE indicating whether or not the user is a member
  Exceptions:
    `GROUP_NOT_FOUND_EXCEPTION` - if the referenced group doesn't exist
    `LDAP_CONNECTION_EXCEPTION` - if the portal cannot connect to OID
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### list_id

    function list_id(
        p_group_name in varchar2,
        p_site_id in number default null
    ) return number

  Gets the group ID of a list within a site.

  This routine returns the group ID of a group that is registered to be scoped to a particular content area.

  Example:

       declare
           l_groupid number;
       begin
           l_groupid := wwsec_api.list_id(
               p_group_name => 'PORTAL_ADMIN'
           );
       end;

  Parameters:
    `p_group_name` - the name of the group
    `p_site_id` - the site_id of the content area to which group p_group_name is scoped. In Oracle9iAS Portal 9.0.2 or later, this parameter is ignored, as scoping to a content area is no longer supported.
  Returns:
    group ID of the group p_group_name
  See Also:
    wwsec_api.group_id
  Exceptions:
    `GROUP_NOT_FOUND_EXCEPTION` - if the name cannot be found
    `VALUE_ERROR_EXCEPTION` - if p_name is null
    `LDAP_CONNECTION_EXCEPTION` - if the API is unable to connect with the OID server
    `wwsec_oid.MULTIPLE_MATCHES_FOUND` - if the specified group name is not unique when searching OID from the configured group search base
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### lists

    function lists(
        p_siteid in number default null
    ) return wwsec_api.list_array

  Deprecated. As of Oracle9iAS Portal 9.0.2, since the groups are stored in OID and are not scoped by site ID
  Gets a list of list type groups. This function gets a group of 'LIST' type groups when given a site ID.

  Parameters:
    `p_siteid` - the site ID
  Returns:
    a list of groups of type 'LIST' in the array of list_record
  Exceptions:
    `DEPRECATED_API_EXCEPTION` - if invoked
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### modify_portal_user

    procedure modify_portal_user(
        p_user_name in varchar2,
        p_db_user in varchar2 default wwctx_api . get_public_schema,
        p_portal_user in varchar2 default 'y',
        p_display in varchar2 default 'y',
        p_display_personal_info in varchar2 default 'n',
        p_notification_preference in varchar2 default 'mailhtml',
        p_empno in varchar2 default null,
        p_last_name in varchar2 default null,
        p_first_name in varchar2 default null,
        p_middle_name in varchar2 default null,
        p_known_as in varchar2 default null,
        p_maiden_name in varchar2 default null,
        p_date_of_birth in varchar2 default null,
        p_email in varchar2 default null,
        p_work_phone in varchar2 default null,
        p_home_phone in varchar2 default null,
        p_mobile_phone in varchar2 default null,
        p_pager in varchar2 default null,
        p_fax in varchar2 default null,
        p_office_addr1 in varchar2 default null,
        p_office_addr2 in varchar2 default null,
        p_office_addr3 in varchar2 default null,
        p_office_city in varchar2 default null,
        p_office_state in varchar2 default null,
        p_office_zip in varchar2 default null,
        p_office_country in varchar2 default null,
        p_home_addr1 in varchar2 default null,
        p_home_addr2 in varchar2 default null,
        p_home_addr3 in varchar2 default null,
        p_home_city in varchar2 default null,
        p_home_state in varchar2 default null,
        p_home_zip in varchar2 default null,
        p_home_country in varchar2 default null,
        p_organization in varchar2 default null,
        p_title in varchar2 default null,
        p_spending_limit in number default null,
        p_hiredate in varchar2 default null,
        p_source in varchar2 default null,
        p_manager_user_name in varchar2 default null
    )

  Updates personal and business-related information relating to an Oracle9iAS Portal user.

  Note: In Oracle9iAS Portal 9.0.2 (or later) this function can be used to modify a user profile for a user that exists in Oracle Internet Directory (OID).

  Example:

       declare
           l_id number;
       begin
           l_id := wwsec_api.modify_portal_user
           (
           p_User_Name   => 'JWDOE',
           p_Portal_User => 'Y',
           p_Display     => 'Y',
           p_Display_Personal_Info => 'Y',
           p_Notification_Preference => 'MAILHTML',
           p_Empno       => '123-45-6789',
           p_Last_Name   => 'Doe',
           p_First_Name  => 'John',
           p_Middle_Name => 'Wilson',
           p_Known_As    => 'John',
           p_Date_Of_Birth => '15-MAR-1968',
           p_Email       => 'jdoe@abc.com',
           p_Work_Phone  => '(123) 456-7890',
           p_Home_Phone  => '(234) 567-8901',
           p_Mobile_Phone => '(345) 678-9012',
           p_Pager       => '(456) 789-0123',
           p_Fax         => '(567) 890-1234',
           p_Office_Addr1    => '123 First St',
           p_Office_City     => 'Washington',
           p_Office_State    => 'DC',
           p_Office_Zip      => '20001',
           p_Office_Country  => 'USA',
           p_Home_Addr1      => '234 Second St',
           p_Home_City       => 'Washington',
           p_Home_State      => 'DC',
           p_Home_Zip        => '20001',
           p_Home_Country    => 'USA',
           p_Title           => 'Not Assigned',
           p_Hiredate        => '01-Oct-2000',
           p_Manager_User_Name => 'GHTHOMAS'
           );
       end;

  Parameters:
    `p_User_Name` - the user name of the Oracle9iAS Portal user whose account is to be modified
    `p_DB_User` - a database user name
    `p_Portal_User` - indicates whether the user is an active Oracle9iAS Portal user
    `p_Display` - indicates whether the user will be displayed in a workflow
    `p_Display_Personal_Info` - enter Y or N to choose to display personal information
    `p_Notification_Preference` - a workflow notification method. Valid values are:
    MAILHTML - send HTML mail
    MAILTEXT - send text mail
    MAILATTH - send as attachment
    QUERY - don't notify, will query
    SUMMARY - send summary information only
    `p_Empno` - an employee number
    `p_Last_Name` - the user's family name
    `p_First_Name` - the user's given name
    `p_Middle_Name` - the user's middle name
    `p_Known_As` - the user's nickname
    `p_Maiden_Name` - the user's maiden name (if applicable)
    `p_Date_Of_Birth` - the user's date of birth. Note: Use the date format 'DD-MON-YYYY' format (the month is not case sensitive).
    `p_Email` - the user's e-mail address
    `p_Work_Phone` - the user's work phone number
    `p_Home_Phone` - the user's home phone number
    `p_Mobile_Phone` - the user's mobile phone number
    `p_Pager` - the user's pager number
    `p_Fax` - the user's fax number
    `p_Office_Addr1` - the first line of the user's office address
    `p_Office_Addr2` - the second line of the user's office address
    `p_Office_Addr3` - the third line of the user's office address
    `p_Office_City` - the city in which the user's office is located
    `p_Office_State` - the state in which the user's office is located
    `p_Office_Zip` - the zip code for the person's office
    `p_Office_Country` - the country in which the user's office is located
    `p_Home_Addr1` - the first line of the user's home address
    `p_Home_Addr2` - the second line of the user's home address
    `p_Home_Addr3` - the third line of the user's home address
    `p_Home_City` - the user's home city
    `p_Home_State` - the user's home state
    `p_Home_Zip` - the user's home zip code
    `p_Home_Country` - the user's home country
    `p_Organization` - the user's organization. Note: This parameter is not supported in OID and is currently ignored. The organization value is always taken from the subscriber.
    `p_Title` - the user's job title.
    `p_Spending_Limit` - the user's spending limit. Note: This parameter is not supported in OID and is currently ignored.
    `p_Hiredate` - the user's date of hire. Note: Use the date format 'DD-MON-YYYY' format (the month is not case sensitive).
    `p_Source` - the source of user information (via bulkload or UI). Note: This parameter is not supported in OID and is currently ignored.
    `p_Manager_User_Name` - the user name of the user's manager
  Exceptions:
    `NO_MANAGER_EXCEPTION` - if the user's manager's user ID is not entered
    `ACCESS_DENIED_EXCEPTION` - if the user who initiates the calling routine has insufficient authority to execute the routine
    `USER_NOT_FOUND_EXCEPTION` - if the user does not exist in OID
    `LDAP_CONNECTION_EXCEPTION` - if the portal cannot connect to OID
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### person_info

    function person_info(
        p_person_id in number
    ) return wwsec_person%rowtype

  Returns user information, given a person ID.

  Example:

       declare
          l_person_rec wwsec_person%rowtype;
       begin
          l_person_rec := wwsec_api.person_info
          (
             p_person_id => 787633
          );
       end;

  Returns:
    person information
  Exceptions:
    `INVALID_PERSON_ID_EXCEPTION` - if the ID specified does not exist
    `UNEXPECTED_EXCEPTION` - if a problem occurs for which an exception has not been defined
    `USER_NOT_FOUND_EXCEPTION` - if the user does not exist in OID
    `LDAP_CONNECTION_EXCEPTION` - if the portal cannot connect to OID
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### person_info

    function person_info(
        p_user_name in varchar2
    ) return wwsec_person%rowtype

  Returns user information, given a user name.

  Example:

       declare
           l_person_rec wwsec_person%rowtype;
       begin
           l_person_rec := wwsec_api.person_info
           (
             p_user_name => 'USER1'
           );
       end;

  Returns:
    person information
  Exceptions:
    `USER_NOT_FOUND_EXCEPTION` - if the user name is not found
    `UNEXPECTED_EXCEPTION` - if a problem occurs for which an exception has not been defined
    `LDAP_CONNECTION_EXCEPTION` - if the portal cannot connect to OID
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### privilege_list

    function privilege_list(
        p_object_type_name in varchar2
    ) return privilege_array

  Returns a list of privileges for a specified object_type_name.

  Example:

       declare
           l_privileges wwsec_api.privilege_array;
       begin
           l_privileges := wwsec_api.privilege_list
           (
               p_object_type_name => wwsec_api.PAGE_OBJ,
               p_name             => '0/156'
           );
       end;

  Parameters:
    `p_object_type_name` - the type of object, e.g., ADMIN, FOLDER, ITEM, etc.
  Returns:
    an array containing all of the privileges currently granted on a specified object
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### publish_group

    procedure publish_group(
        p_groupid in number,
        p_publishable in boolean
    )

  Deprecated. As of Oracle9iAS Portal 9.0.2, as groups are stored in OID which does not support this property
  Sets the group to be publishable or nonpublishable.

  Parameters:
    `p_groupid` - the portal's identifier for the group
  Exceptions:
    `DEPRECATED_API_EXCEPTION` - if this function is invoked
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### remove_group_acl

    procedure remove_group_acl(
        p_object_type_name in varchar2,
        p_name in varchar2,
        p_group_id in number default null,
        p_privilege in varchar2 default null,
        p_owner in varchar2 default wwctx_api . get_product_schema,
        p_disable_invalidations in boolean default false
    )

  Removes a group's privileges.

  Call this API to perform one of three possible operations:

  - 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.
  - If a value is passed into p_privilege, the specified privilege is removed.
  - If group_id is null, the privilege is removed for all groups.

  Example:

       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
       );

  Parameters:
    `p_object_type_name` - the type of object, e.g., ADMIN, FOLDER, ITEM, etc.
    `p_name` - the reference to the object
    `p_group_id` - the portal's identifier for a group
    `p_privilege` - the privilege to be granted. this should exist in WWSEC_PRIVILEGE$
    `p_owner` - the owner of the ACL entry
    `p_disable_invalidations` - controls whether cache invalidations are disabled when removing the group ACL
  Exceptions:
    `ACCESS_DENIED_EXCEPTION` - if the caller has insufficient privileges
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### remove_user_acl

    procedure remove_user_acl(
        p_object_type_name in varchar2,
        p_name in varchar2,
        p_person_id in number default null,
        p_privilege in varchar2 default null,
        p_owner in varchar2 default wwctx_api . get_product_schema,
        p_disable_invalidations in boolean default false
    )

  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.

  Example:

       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
       );

  Parameters:
    `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.
    `p_name` - the reference to the object
    `p_person_id` - the portal's identifier for a user
    `p_privilege` - the privilege to be granted. this should exist in WWSEC_PRIVILEGE$
    `p_owner` - the owner of the ACL entry, used for avoiding namespace collisions
    `p_disable_invalidations` - controls whether cache invalidations are disabled when setting the user ACL
  Exceptions:
    `ACCESS_DENIED_EXCEPTION` - if the caller has insufficient privileges
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### set_authorization_function

    procedure set_authorization_function(
        p_object_type_name in varchar2,
        p_owner in varchar2 default wwctx_api . get_product_schema,
        p_name in varchar2,
        p_authorization_function in varchar2
    )

  Sets the name of a function to be used for function-based authorization.

  This procedure creates an entry in the authorization function table. It updates the entry if it already exists and deletes it if p_authorization_function is null. The authorization function is executed to evaluate whether the current user is authorized to perform the action on the specified object.

  Example:

       begin
           wwsec_api.set_authorization_function(
               p_object_type_name       => wwsec_api.ANYSCHEMA_OBJ,
               p_name                   => wwsec_api.ALL_OBJECTS,
               p_authorization_function => 'SCOTT.TEST_PKG.IS_DBA'
           );
       end;

  Parameters:
    `p_object_type_name` - the type of object, e.g., ADMIN, FOLDER, ITEM, etc., should exist in WWSEC_PRIV_OBJECT_TYPE$
    `p_owner` - the 'owner' of the ACL entry, used to resolve namespace collisions
    `p_name` - the reference to the object
    `p_authorization_function` - name of the authorization function including the schema and the package name as [schema].[package].[function]. This is the name of the function that would check the privilege. The specified authorization function must exist when this API is invoked. This function must implement an interface where it accepts five parameters with names p_object_type_name, p_name, p_privilege_code, p_owner, and p_reqd_auth_level. In addition, the authorization function must have a purity level of a minimum of WNDS. A null value for p_authorization_function disables the function based security for the object.
  See Also:
    get_authorization_function
  Exceptions:
    `INVALID_AUTH_FUNC_EXCEPTION` - if the function doesn't exist
  Since:
    Oracle9iAS Portal 9.0.2

### set_defaultgroup

    procedure set_defaultgroup(
        p_groupid in number,
        p_username in varchar2 default wwctx_api . get_user
    )

  Sets the default group for a specified user.

  Note: The default group is the group that the preference system uses if no user-level preferences are specified for a given setting.

  Example:

          wwsec_api.set_defaultgroup(
             p_groupid   => wwsec_api.group_id ('PORTAL_ADMIN'),
             p_username  => 'USER1'
          );

  Parameters:
    `p_groupid` - the unique identifier for the default group, or null if no preference
    `p_username` - the name of the user for whom the default group should be defined
  See Also:
    get_default_group
  Exceptions:
    `UNEXPECTED_EXCEPTION` - if a problem occurs for which an exception has not been defined
    `LDAP_CONNECTION_EXCEPTION` - if the portal cannot connect to OID
    `ACCESS_DENIED_EXCEPTION` - if user has insufficient privileges
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### set_group_acl

    procedure set_group_acl(
        p_group_id in number,
        p_object_type_name in varchar2,
        p_owner in varchar2 default wwctx_api . get_product_schema,
        p_name in varchar2,
        p_privilege in varchar2,
        p_disable_invalidations in boolean default false
    )

  Creates an entry in the Access Control List that grants a privilege on a specified object to a specified group.

  Example:

       wwsec_api.set_group_acl(
           p_group_id         => wwsec_api.group_id('MYGROUP'),
           p_object_type_name => wwsec_api.ANYSITE_OBJ,
           p_name             => wwsec_api.ALL_OBJECTS,
           p_privilege        => wwsec_api.CREATE_PRIV
       );

  This example shows how to programmatically grant group MYGROUP with the global privilege to create page groups.

  Parameters:
    `p_group_id` - the numeric ID for a group profile
    `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.
    `p_owner` - the owner of the ACL entry, used for avoiding namespace collisions, typically the product schema
    `p_name` - - is an object-type-specific reference to the object on which privilege is being granted.
    `p_privilege` - - the privilege to be granted. Defined by a security API constant that ends with '_PRIV'. For example, wwsec_api.OWN_PRIV, wwsec_api.VIEW_PRIV, etc.
    `p_disable_invalidations` - controls whether cache invalidations are disabled when setting the group ACL
  See Also:
    wwsec_api.set_user_acl
  Exceptions:
    `GROUP_NOT_FOUND_EXCEPTION` - if the group doesn't exist
    `ACCESS_DENIED_EXCEPTION` - if the caller has insufficient privileges
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### set_user_acl

    procedure set_user_acl(
        p_person_id in number,
        p_object_type_name in varchar2,
        p_owner in varchar2 default wwctx_api . get_product_schema,
        p_name in varchar2,
        p_privilege in varchar2,
        p_disable_invalidations in boolean default false
    )

  Gives a user a specified privilege in the Oracle9iAS Portal. This API creates an entry in the Portal's access control list (ACL) that grants a privilege on a given object to a specified user.

  Example:

       wwsec_api.set_user_acl(
           p_person_id        => wwsec_api.id('JDOE'),
           p_object_type_name => wwsec_api.ANYPAGE_OBJ,
           p_name             => wwsec_api.ALL_OBJECTS,
           p_privilege        => wwsec_api.MANAGE_STYLE_PRIV
       );

  This example shows how to programmatically grant user JDOE with the global privilege to manage styles on any page.

  Parameters:
    `p_person_id` - the portal's identifier for the user
    `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.
    `p_owner` - the owner of the ACL entry, used for avoiding namespace collisions, typically the product schema.
    `p_name` - - is an object-type-specific reference to the object on which privilege is being granted.
    `p_privilege` - - the privilege to be granted. Defined by a security API constant that ends with '_PRIV'. For example, wwsec_api.OWN_PRIV, wwsec_api.VIEW_PRIV, etc.
    `p_disable_invalidations` - controls whether cache invalidations are disabled when setting the user ACL
  See Also:
    set_group_acl
  Exceptions:
    `USER_NOT_FOUND_EXCEPTION` - if the user doesn't exist
    `ACCESS_DENIED_EXCEPTION` - if the caller does not have the privilege to manage the specified object
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### update_group_acl

    procedure update_group_acl(
        p_object_type_name in varchar2,
        p_name in varchar2,
        p_grantee_group_id in number,
        p_privilege in varchar2,
        p_owner in varchar2 default wwctx_api . get_product_schema,
        p_disable_invalidations in boolean default false
    )

  Changes a group's privilege in the Access Control List.

  Example:

       wwsec_api.update_group_acl(
           p_object_type_name => wwsec_api.ANYSITE_OBJ,
           p_name             => wwsec_api.ALL_OBJECTS,
           p_grantee_group_id => wwsec_api.group_id('MYGROUP'),
           p_privilege        => wwsec_api.CREATE_PRIV
       );

  This example shows how to programmatically grant group MYGROUP with the global privilege to create page groups.

  Parameters:
    `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.
    `p_name` - - is an object-type-specific reference to the object on which privilege is being granted.
    `p_grantee_group_id` - the portal's identifier for a group
    `p_privilege` - - the privilege to be granted. Defined by a security API constant that ends with '_PRIV'. For example, wwsec_api.OWN_PRIV, wwsec_api.VIEW_PRIV, etc.
    `p_owner` - an owner of the ACL entry, used for avoiding namespace collisions
    `p_disable_invalidations` - controls whether cache invalidations are disabled when updating the group ACL
  Exceptions:
    `ACCESS_DENIED_EXCEPTION` - if the caller has insufficient privileges
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### update_group_owner

    procedure update_group_owner(
        p_group_id in number,
        p_member_group_id in number,
        p_is_owner in number
    )

  Modifies group-ownership for a group that is a member of another group.

  Call this procedure to perform one of two operations, depending on the value of p_is_owner:

  - Make a group (that is a member of p_group_id) an owner of the group and update the member's privileges accordingly.
  - Remove group owner privileges for a member group that is an owner of the specified group.

  Example:

       wwsec_api.update_group_owner(
           p_group_id        => wwsec_api.group_id('POWER_USERS'),
           p_member_group_id => wwsec_api.group_id('PORTAL_DEVELOPERS'),
           p_is_owner        => wwsec_api.NOT_OWNER
       );

  Parameters:
    `p_group_id` - the portal's identifier for the group
    `p_member_group_id` - the portal's identifier for the member group
    `p_is_owner` - indicates whether or not the member group should be made an owner or not
  Exceptions:
    `GROUP_NOT_FOUND_EXCEPTION` - if the referenced group doesn't exist
    `ACCESS_DENIED_EXCEPTION` - if the caller is not an owner of the group or does not have a global privilege to edit groups
    `LDAP_CONNECTION_EXCEPTION` - if the portal cannot connect to OID
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### update_list

    procedure update_list(
        p_groupid in number,
        p_siteid in number default global_group,
        p_name in varchar2,
        p_description in varchar2 default null,
        p_hidden_group in number,
        p_hidden_members in number
    )

  Updates general information for a specified group.

  Example:

       wwsec_api.update_list
       (
           p_groupid      => 2,
           p_name         => 'DEVELOPER',
           p_description  => 'Development Team',
           p_hidden_group => wwsec_api.NOT_HIDDEN
       );

  Parameters:
    `p_groupid` - the unique identifier for a group
    `p_name` - the name of the group
    `p_description` - a description of the group
    `p_hidden_group` - indicates if the group is hidden from users and groups except those who are owners of the group
    `p_hidden_members` - this parameter is not used
  Exceptions:
    `GROUP_NOT_FOUND_EXCEPTION` - if the p_groupid doesn't exist
    `ACCESS_DENIED_EXCEPTION` - if the caller does not own the group, or does not have the global privileges to edit a group
    `INVALID_GRP_NAME_EXCEPTION` - if the group name is invalid
    `LDAP_CONNECTION_EXCEPTION` - if the portal cannot connect to OID
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### update_user_acl

    procedure update_user_acl(
        p_object_type_name in varchar2,
        p_name in varchar2,
        p_grantee_user_id in number,
        p_privilege in varchar2,
        p_owner in varchar2 default wwctx_api . get_product_schema,
        p_disable_invalidations in boolean default false
    )

  Changes a user's privilege in the Access Control List.

  Call this routine to update a user's privilege in the Access Control List.

  Example:

       wwsec_api.update_user_acl(
           p_object_type_name => wwsec_api.ANYPAGE_OBJ,
           p_name             => wwsec_api.ALL_OBJECTS,
           p_grantee_user_id  => wwsec_api.id('JDOE'),
           p_privilege        => wwsec_api.MANAGE_STYLE_PRIV
       );

  This example shows how to programmatically grant user JDOE with the global privilege to manage styles on any page.

  Parameters:
    `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.
    `p_name` - - is an object-type-specific reference to the object on which privilege is being granted.
    `p_grantee_user_id` - the portal's identifier for a user
    `p_privilege` - - the privilege to be granted. Defined by a security API constant that ends with '_PRIV'. For example, wwsec_api.OWN_PRIV, wwsec_api.VIEW_PRIV, etc.
    `p_owner` - owner of the ACL entry, used for avoiding namespace collisions
    `p_disable_invalidations` - controls whether cache invalidations are disabled when setting the user ACL
  Exceptions:
    `ACCESS_DENIED_EXCEPTION` - if the caller has insufficient privileges
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### update_user_owner

    procedure update_user_owner(
        p_group_id in number,
        p_member_person_id in number,
        p_is_owner in number
    )

  Modifies group-ownership for a user.

  Call this procedure to perform one of two operations, depending on the value of p_is_owner:

  - Make a user an owner of the group and update the user's privileges accordingly.
  - Remove group owner privileges for a user who is currently an owner of the p_group_id.

  Example:

       wwsec_api.update_user_owner(
           p_group_id            => wwsec_api.group_id('POWER_USERS'),
           p_member_person_id    => wwsec_api.id('JDOE'),
           p_is_owner            => wwsec_api.NOT_OWNER
       );

  Parameters:
    `p_group_id` - the portal's identifier for the group
    `p_member_person_id` - the portal's identifier for the user
    `p_is_owner` - indicates whether or not the user should be made an owner
  Exceptions:
    `GROUP_NOT_FOUND_EXCEPTION` - if the referenced group doesn't exist
    `INVALID_PERSON_ID_EXCEPTION` - if p_member_person_id doesn't exist
    `ACCESS_DENIED_EXCEPTION` - if the caller is not an owner of the group or does not have a global privilege to edit groups
    `LDAP_CONNECTION_EXCEPTION` - if the portal cannot connect to OID
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### user_in_groups

    function user_in_groups(
        p_user_name in varchar2
    ) return idarray

  Deprecated. As of Oracle9iAS Portal 9.0.2, since groups are now stored in OID and do not necessarily have a local shadow entry with an ID
  Returns a list of group IDs when given a user name.

  Parameters:
    `p_user_name` - the name of the user whose group memberships are being requested
  Returns:
    an array of group Ids that the user belongs to
  Exceptions:
    `DEPRECATED_API_EXCEPTION` - if invoked
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### user_name

    function user_name(
        p_id in number
    ) return varchar2

  Returns a user name, given a person ID.

  Example:

       declare
           l_user_name varchar2 (30);
       begin
           l_user_name := wwsec_api.user_name
           (
             p_id => 16782
           );
       end;

  Parameters:
    `p_id` - a unique identifying number for a person
  Returns:
    a user name for the specified ID
  Exceptions:
    `INVALID_PERSON_ID_EXCEPTION` - if the specified person_id does not exist
    `UNEXPECTED_EXCEPTION` - if any other exception condition occurs
  Since:
    Oracle9iAS Portal 3.0.6.6.5

### users_in_group

    function users_in_group(
        p_group_id in number
    ) return array

  Deprecated. As of Oracle9iAS Portal 9.0.2, since the group memberships are being maintained in OID and implementation of this API becomes prohibitive. OID does not provide a direct API to return the members of a group, so recursive calls would have to be made to the directory to get the users who are indirect members. This function is not being used anywhere in the Portal code.
  Gets the list of all the users in a specific group.

  Parameters:
    `p_group_id` - the portal's identifier for the group
  Returns:
    an array of user names
  Exceptions:
    `DEPRECATED_API_EXCEPTION` - if invoked
  Since:
    Oracle9iAS Portal 3.0.6.6.5

Overview | Package | Object Type | Deprecated | Index | Help
| Oracle9iAS Portal PL/SQL API Reference - 9.0.2.6
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES
SUMMARY: EXCEPTION | TYPE | CONSTANT | VARIABLE | FUNCTION/PROCEDURE | DETAIL: EXCEPTION | TYPE | CONSTANT | VARIABLE | FUNCTION/PROCEDURE