Contributions Module


Introduction

The OpenProdoc Contribution module allows to insert documentation to users not registered in OpenProdoc by means of totally configurable forms, similar to the OPAC search module that allows to search documents and folders to external users.

This can facilitate users external to the entity, or internal but not registered and who will access punctually, being able to provide documentation without the need for training or knowledge of OpenProdoc, and avoids the management of users when it is necessary to deal with a large number of very specific collaborators, such as collaborators, partners or clients of an institution. As in the case of the OPAC, security is critical, since confidential information could be accessed, documents can be manipulated or files that are harmful or too large can be iploaded. To minimize risks, the contribution module has several forms of security and control that are detailed later.

With the function "Contribution Module" you can create forms like these:

Example Contributions Login

Ejemplo Contribución Login 2

Ejemplo Contribución Lista

Ejemplo Contribución Incorporación Docs

Athena design created by Lucycons3 and Nosturi

How it works

The operation of the "Contribution Module", which only requires parameterization, is as follows:

Pages:

The contribution module manages 4 pages to perform its functions. These pages, with a default structure already included in OpenProdoc, can be replaced by other pages (or even fragments of page or iframes if it is structured appropriately) indicating it in the parameters NumHtmlCont * and the rest of the related parameters.

The pages / steps that make up the contribution module are:

Parameterization:

You can create as many contribution files as you want. Each one will represent a "contribution area" with different characteristics and interface. Although in principle they will be separated, CSS, internal user access and even the container folder could be shared. As in the case of the OPAC, it will be invoked by means of a call, including as a parameter the identifier of the contribution file.

The file follows the usual standard of property files (tag + "=" + Value), admitting comments (lines that begin with the character '#'). The meaning of each label (which can not be repeated) is as follows:

If the browser User-Agent does not contain any of the indicated entries, then the internal templates included in OpenProdoc will be used. Alternative pages can be included only for any of the elements (login, list, ..), it is not necessary to do it for everyone.

The process of parameterizing a controibution module consists in creating a text file with the aforementioned content (the included example can be used as a base and modified), introducing the appropriate values to the specific OpenProdoc installation

Previously you must modify the OpenProdoc configuration file (Prodoc.properties or the name used) and add 2 lines:

User=User1

Pass=UserPass1

Where User1 and UserPass1 will be data of a user that has access to the different documents that configuration (Contrib and Contrib_CSS) that are described in this help. It is recommended to be a user with a limited role and with a minimum of permissions, since you should only be able to access the configuration files of the Contribution in read mode. As with any change in the configuration file (Prodoc.properties), the server must be restarted to be read again.

Next, the CSS must be created (or modified the example included) to adapt it to the style of the corresponding institution or company. Then you must add the CSS to the OpenProdoc repository and write down the generated PdId. This PdId is the one that should be referenced as parameter ContribCSS: of the configuration file of the contribution module. Then that configuration file of the contribution module will be uploaded.

With the generated Id the OpenProdoc url should be invoked (that is: http://localhost: 8080/ProdocWeb2/ContribLogin?Id= the identifier of the new document uploaded, for example http://localhost:8080/ProdocWeb2/ContribLogin?Id=566b6464a654-9696e68d686 ).

OpenProdoc will present a page according to the parameters defined in that file, including style sheet, literals, document types, etc.

Since all the appearance is parameterizable, including document typologies, metadata, etc., and due it is oriented to sporadic users, it is reasonable to assume that a personalized help is necessary. For that there is a button that will open the html page whose url is indicated in the configuration. It could be an external page or an html document stored in OpenProdoc.

It should be noted that the configuration file, like any OpenProdoc document, can be edited and versioned, always being used the last published version to compose the contribution module. However, the update may take some time, since to improve performance, the configuration is not updated immediately because a cached copy is used.

Since the parameterization is based on one OpenProdoc document and the style on another, it is possible to have several settings simultaneously, which present different sets of documents, different interface language, different style or different user. Providing each user group with the appropriate url (which will only be differentiated in the Document Identifier), many different contribution modules can be offered with very little effort at the same time.

Example of contribution module configuration file:

#======= Document configuration =============================================
# Fields used for "login"/verifiation of identity
LoginFields=Correo|Telef
# Fields of the Foolder type to ask to be filled
FieldsToInclude=Nombre|Apellidos|Correo|Telef|Idioma
# Path of folder where folders will be created
BaseFolder=/Donaciones
# Document types allowed to be uploded
DocTipesList=PD_DOCS|Manual|Picture|Grabaciones
# Non included doc types show ALL fields
#Fields_PD_DOCS=
Fields_Manual=Title|DocDate
Fields_Picture=Title|Author|Keywords|DocDate
#Fields_Grabaciones=
#======= Security ==========================================================
# Open (1) or closed (0)system. When closed, Folder MUST be created and login information transmited to external user.
OpenContrib=0
# Folder type to use
LoginFolderType=Donaciones
# UserName and Password of the user that will do the actual insert in openprodoc of Folders and docs.
# It is recmmended to be a user with a limiteed rol (only insert of folders and docs) and permissions only in the Contribution folder
User=guest1
Pass=passguest1
# Allowed extensions to upload
AllowedExt=doc|docx|xls|xlsx|ppt|pptx|txt|pdf|jpg|jpeg|tiff|tif|png|gif|odt
# MaxSize upload (bytes)
MaxSize=20000000
#======= Interface =========================================================
# Openprodoc identifier of CSS or http url of CSS
ContribCSS=16697ec3694-3fe7288b86493159
# url of logo. Can be a "local" url using the format /SendDoc?Id=Identifier of doc
ContribLogo=img/LogoProdoc.jpg
# Title to be show in login
Title=Aportaciones
# Title to be show in content of folder
TitleList=Archivo personal
# Id of Report used for showing docs infolder
DocsReportId=16654ff6af1-3f9b78099c0147a0
# Url of help
UrlHelp=
#======= Alternative htmls ==================================================
# Alternative htmls depending on agent
#---------------------------------------------
# Num alternatives for login
NumHtmlContLog=1
# Agents for login
ListAgentLog0=Edge|Firefox
# html for each agent of login
HtmlAgentLog0=166a24cd914-3fee91e7fa2c96cc
#---------------------------------------------
# Num alternatives for Lista of docs
NumHtmlContList=1
# Agents for List
ListAgentList0=Chrome
# html for each agent of List
HtmlAgentList0=166a24d2fa1-3fe05747921f306c
#---------------------------------------------
# Num alternatives for adding docs
NumHtmlContAdd=1
# Agents for adding docs
ListAgentAdd0=Opera|Chrome
# html for each agent of adding docs
HtmlAgentAdd0=166a24d90f9-3fc08534bf7753e0
#---------------------------------------------
# Num alternatives for Results adding docs
NumHtmlContRes=1
# Agents for Results adding docs
ListAgentRes0=*
# html for each agent of Results adding docs
HtmlAgentRes0=166a24de462-3fc29665f8ea9ffc
#====================================================
Automation

To facilitate the work of internal users, it is advisable to define automatic tasks that notify changes and normalize entries.

For example, if the folder has metadata Name, Surname and DNI, it may be advisable to create a task associated with the "Insertion" event of type "modify metadata", normalizing the title of the folder with the "formula"="Title = DNI + "-" + Surname + ", " + Name (the exact syntax is not this, but it is used for clarity). This ensures that the nomenclature is homogeneous regardless of who enters the data.

You could also create a scheduled task that sends a report every night to a certain group with the data of all the created or updated folders (that is, they have new documents) in the day, so that you can automatically know what new documentation has been received and files have to be reviewed without needing to review them one by one.

Security and Control:

Since external access to a document manager by unauthenticated external users may involve risks of various kinds, various measures have been introduced to minimize the risk:

If the documentation contained in the repository includes confidential or especially sensitive documentation, to increase security the recommendation would be to have TWO installations, one dedicated solely to collecting the documentation displayed in the DMZ or cloud or an area visible from the Internet and another deployed in an internal environment where it resides finally. The communication between both can be automated by means of automatic tasks in the input repository that export the documentation (as soon as it is entered or periodically) and other automatic tasks that are imported by the destination repository.


Help Index OpenProdoc