2022 June Release

Actions of FSCPORTAL@1.1001 Permanent link for this heading

Return Type

Signature

void

AttrCfgAuthPortalListGet(
  AttributeDefinition attrdef,
  ref any value,
  out optional boolean volatile,
  out optional boolean volatiletx)

void

CreateObject(
  out string result)

void

FinalizeCommit(
  object[] attrlist)

AttributeObjectDef

GetInboxList(
  out retval AttributeObjectDef inboxlist)

object

GetObjectByID(
  object inbox,
  string type,
  string id,
  out retval object result)

void

Initialize()

void

InitializeFromDictionary(
  dictionary requestdict,
  optional object parent)

void

IsAuthorizedPortal(
  string portalipaddr,
  optional string portalcertsubject,
  out boolean authorized)

void

PrepareCreatedObject(
  object createdobject)

void

ValidateAccount(
  string userlogname,
  optional string[] grouplognames,
  optional string[] portaluserattributekeys,
  optional string[] portaluserattributevalues)


FSCPORTAL@1.1001:AttrCfgAuthPortalListGet Permanent link for this heading

void FSCPORTAL@1.1001:AttrCfgAuthPortalListGet(
  AttributeDefinition attrdef,
  ref any value,
  out optional boolean volatile,
  out optional boolean volatiletx)

Name

Description

attrdef

value

volatile

volatiletx

Additional Information


FSCPORTAL@1.1001:CreateObject Permanent link for this heading

Friendly URL for creating an object based on HTML form data. The created object will be stored in the "form inbox" identified by the form data with name "inbox" in the object pointer property returned by GetInboxList.

Note: This method commits the current transaction. The following form data has to be provided in the HTTP POST request:
  • inbox: The identifier of an object that provides an object pointer property for multiple values by GetInboxList. The user (in general identified by the EvaluateExpression with context FormPoster) must have set access for the property returned by GetInboxList of the object identified by inbox.
    Classes that implement GetInboxList are:
    FormInbox using inboxobjs as object pointer property
    InboxRoom using ibrchildren as object pointer property
  • objectclass: Fully-qualified reference of the object class of which an object should be instantiated. The created object will be initialized by calling InitializeFromDictionary. Before, PrepareCreatedObject is invoked on the form inbox object.
  • objecttemplate: The address of a template object that will be copied. The new object will be initialized by calling InitializeFromDictionary. Before, PrepareCreatedObject is invoked on the form inbox object.
  • redirect: Redirect URL to be invoked after successful creation and initialization of the new object(s). This must be an absolute URL including protocol and host. For security reason the host of this URL must match the referrer (HTTP header "Referer" or "Origin") of the page containing the form. The URL must not be a relative URL.
  • errorredirect: Redirect URL to be invoked when a failure occurs (e.g. during creation or initialization of the new object).
    Error code and error message will be passed in URL parameters errorcode and error
    For security reason the host of this URL must match the referrer (HTTP header "Referer" or "Origin") of the page containing the form. The URL must not be a relative URL.
  • redirecttype: Defines how the redirect should be executed.
    Valid values are "302", "303", "307", all other values will be ignored. By default the redirect is executed on the client by script or meta tag http-equiv="REFRESH". If this form field is set the redirect is initiated on the server by responding with the appropriate http status code and the URL in the http header "Location".

void FSCPORTAL@1.1001:CreateObject(
  out string result)

Name

Description

result

Additional Information


FSCPORTAL@1.1001:FinalizeCommit Permanent link for this heading

void FSCPORTAL@1.1001:FinalizeCommit(
  object[] attrlist)

Name

Description

attrlist

Additional Information


FSCPORTAL@1.1001:GetInboxList Permanent link for this heading

Returns the object pointer property where to store the objects created in CreateObject. The method must provide an object list property to act as form inbox. FormInbox will use inboxobjs as object list property. The InboxRoom will use ibrchildren as object list property for the new objects.

AttributeObjectDef FSCPORTAL@1.1001:GetInboxList(
  out retval AttributeObjectDef inboxlist)

Name

Description

inboxlist

Additional Information


FSCPORTAL@1.1001:GetObjectByID Permanent link for this heading

Get object by an ID passed in to CreateObject. The action will be executed on the current user (for inbox), the inbox (for objectclass and objecttemplate) or the created object (for objcategory and attachmentattrdef).

object FSCPORTAL@1.1001:GetObjectByID(
  object inbox,
  string type,
  string id,
  out retval object result)

Name

Description

inbox

The inbox where the object is/will be created.

type

The type of object. The identifier of the request parameter is used. Currently it is used for inbox, objectclass, objecttemplate, objcategory and attachmentattrdef.

id

The id of the object, may be an address or reference, depending on type

result

The object or null if the id does not result in a valid object for type

Additional Information


FSCPORTAL@1.1001:Initialize Permanent link for this heading

void FSCPORTAL@1.1001:Initialize()

Additional Information


FSCPORTAL@1.1001:InitializeFromDictionary Permanent link for this heading

Initializes an object with the values provided in a dictionary.

The requestdict dictionary allows you to access the submitted form data.

This method is invoked by action CreateObject used for friendly URL "createobject". A default implementation exists for BasicObject, CompoundObject and ContentObject. The default implementation will set the following properties:
  • objname: The name of the object (objname).
  • objsubject: The subject of the object (objsubject).
  • objcategory: The category of the object (objcategory) identified in requestdict by its full reference or object address.
    In addition, the method checks whether there are values in requestdict that match properties defined by the category (categoryattributes). The properties of the category are identified in requestdict by their short reference, full reference, or object address.
  • Moreover it is possible to set scalar properties that can be changed in the property editor. These properties are identified in requestdict by their full reference or object address. You may use the short reference, too. But if two properties exist with the same short reference it is not determined which property will be set. So it is recommended to use the full reference.
  • content: The content of the object (content). If objname is not set the name of the object will be extracted from the file name of this field.
    Note: The form data of this entry must not be multiple (see attachmentkeys below).
You may also create (multiple) content objects within a compound object:
  • attachmentattrdef: Defines the object pointer property where to store the content objects (e.g. objchildren for a Folder).
  • attachmentkeys: A comma separated list of entry names found in requestdict. These entries refer to files submitted in the http request. It may also be possible to define the HTML form field as multiple to submit more than one file in one request. For each submitted file an object is created in the list defined by attachmentattrdef. The object class and the object name for these objects will be retrieved from the name and extension of the file. In addition PrepareCreatedObject is invoked on each attached object.
You may override this action for your own class. In that case you have to check the values in requestdict and use them to initialize your objects. Please note that the method will remove the entries mentioned above from the dictionary after setting the appropriate properties.

If files were submitted with the form, the temporary file paths to access the submitted files are stored in respective dictionary entries, and the contents can be retrieved by creating a new content and invoking the CooContent::SetFile() method on it.

void FSCPORTAL@1.1001:InitializeFromDictionary(
  dictionary requestdict,
  optional object parent)

Name

Description

requestdict

parent

Additional Information


FSCPORTAL@1.1001:IsAuthorizedPortal Permanent link for this heading

void FSCPORTAL@1.1001:IsAuthorizedPortal(
  string portalipaddr,
  optional string portalcertsubject,
  out boolean authorized)

Name

Description

portalipaddr

portalcertsubject

authorized

Additional Information


FSCPORTAL@1.1001:PrepareCreatedObject Permanent link for this heading

Prepares a created object in an inbox. By default the teamroom of the inbox object will be assigned to the created object.

void FSCPORTAL@1.1001:PrepareCreatedObject(
  object createdobject)

Name

Description

createdobject

Additional Information


FSCPORTAL@1.1001:ValidateAccount Permanent link for this heading

void FSCPORTAL@1.1001:ValidateAccount(
  string userlogname,
  optional string[] grouplognames,
  optional string[] portaluserattributekeys,
  optional string[] portaluserattributevalues)

Name

Description

userlogname

grouplognames

portaluserattributekeys

portaluserattributevalues

Additional Information