Merge changes from the 2.6.0 release.
use correct Metacat API action for retrieving access control block
merge from 2.6 branch: changes to include expect header and validatesession method
merge from 2.6 branch: add method for retrieving access control block from metacat api
merge changes to accommodate multiple alternative identifiers into trunk from 2.6 branch.
Merge registry changes into the trunk.
Merge minor registry changes from the 2.6 branch back to the trunk.
refs https://github.nceas.ucsb.edu/KNB/arctic-data/issues/107
Add a fundingElement() method to insert the funding element into the generted EML. Ensure it is added to the template variables hash for maintaining state across stages.
refs https://github.nceas.ucsb.edu/KNB/arctic-data/issues/42
Fix a bug in testing the validity of the CGI Session. It can't be empty or expired.
Validate the session during the modification stage, rather than just assuming a CGI session (support tokens too).
Also, fix the XML document validation issue where an <additionalParty> element is added prior to the <metadataProvider> element. This seems to be an intermittent issue, and may be due to more recent versions of perl returning hash contents more randomly than previous versions. The %orig hash passed in to personnelList() is assumed to be random now, and I just ensured the metadataProvider is first in the produced string....
Modify getCredentials() to support token-based credentials.
We ended up not being able to use IO::Socket::SSL, so I removed the import statement. Also, add the new Perl module dependencies to the installation documentation.
Change getUsername() to also support adding usernames into an EML access element from the authentication token's 'sub' claim.Also, add a bit of debugging output for tracing the flow of the XML generation.
Modify the Metacat.pm upload() method to use the correct Content-Type for the form. RFC 2388 specifies that the Content-Type should be "multipart/form-data", and that the Content-Disposition should be "form-data", along with the "name" parameter.
dd the hasValidAuthToken() method to determine if the current token (if any) is valid. Use this and validateSession() within the script to determine if we need to call Metacat->login() or not. Add some minor debugging to work through the code stages using auth tokens....
Fix a couple of syntax issues.
Don't forget to set the token variable from the HTTP_AUTHORIZATION environment variable.
Add a setAuthToken() method. when the HTTP_AUTHORIZATION environment variable is set, set the value as the `auth_token_header` instance variable in the Metacat instance passed in. This requires that the Apache installation includes an HTTP rewrite rule to pass the header on to an CGI processing the request. Call this method whenever we instantiate a Metacat object....
Modify the Metacat.pm sendData() method to include the Authorization HTTP header when it's available as an instance variable.
refs https://github.nceas.ucsb.edu/KNB/arctic-data/issues/41
If the user doesn's specify the ldap ca file path on the metacat.properties, it will use the default one.
correct logout method (old change still in workspace)
add logout implementation - calls server and clears cookie jar.
do not require site parameter if registry.show.siteList=false.https://projects.ecoinformatics.org/ecoinfo/issues/6687
Replace the operator "=~' by "eq" in comparing the two password fields.
dd a new routine to check if the uid has been taken already in the production space during the creation process.
use configured auth.base rather than hard-coded dc=ecoinformatics,dc=org. https://projects.ecoinformatics.org/ecoinfo/issues/6592
For the existing uidnumber, we decrease the size of vector for sorting.
Login automatically via curl rather than manually entering the cookie info for the registry test script
Add the code to check if the existing highest uidNumber really exists.
In the getNextUidNumber method, a mechanism to look up the highest existing udiNumber was added.
Create a lock file for the registry if one doesn't exist
Allow the registry form to specify a docid scope
Only lock the local docid file when creating a new docid, not when inserting, for faster upload times. Remove extra debug messages from testing.
Fix bug in the online registry where data files were not using the new docid creation process
Lock a local file while docids are being created so multiple docs can be uploaded at once
Use an array of a hash to keep the orgName/orgLabel pair.
Pass the userManagementUrl to templates.
Use the verity=>none for start_tls method on some search methods.These methods will search the referral servers, some of which is using self-signed certificate. There is a difficuty to verify it.The search methods don't have any critical data, so the down-grade doesn't have too much impact.
when a user reset the password, we search the user to use the base=o=org,dc=ecoinformatics,dc=org and filter is uid=username.
Add the code to check if the stored the uidnext is a number or not.
Fixed a bug that a debug message is incorrect.
Add the missed the attriubtes such as uidNumber, gidNumber and et al.
Get the some properties from the metacat.properties file.
Add a new method to get the next avaliable uid.
When start tls, the verify was changed to "require" rather than "none".
always return the metacat logout form when calling the perl registry logout action, even when there is no perl session to invalidate -- needed for metacatui.
actually remove the entry if it is expired (uncomment the function call). https://projects.ecoinformatics.org/ecoinfo/issues/6099
correct the createTimestamp filter and search base -- only remove inetOrgPerson entries, not any underlying structure that was added to store these temporary accounts. https://projects.ecoinformatics.org/ecoinfo/issues/6099
correct some syntax errors, date filter formatting. https://projects.ecoinformatics.org/ecoinfo/issues/6099
clear temporary accounts that have not been activated after a configurable number of hours. https://projects.ecoinformatics.org/ecoinfo/issues/6099
do not include default organization for the metacatui "skin"
Adding build files to ignore.
Refer to metacat.war deployments since those are now the default. https://projects.ecoinformatics.org/ecoinfo/issues/6082
Remove an extra print content type statement.
Add a print statment for "content type". Otherwise, the html can't show up.
do not email a specific account reset URL so that the emails can be used in multiple UI contexts. https://projects.ecoinformatics.org/ecoinfo/issues/6066
Comment out some extral "contet type".
ensure all emailed links make sense for the UI that initiated them. also format referrals using the same options as the primary accounts (recursive call needed the html parameter). https://projects.ecoinformatics.org/ecoinfo/issues/6066
include optional email.overrideURL property for the account management page to send an email link that will result in a styled response. https://projects.ecoinformatics.org/ecoinfo/issues/6066
use AJAX method of including the captcha. https://projects.ecoinformatics.org/ecoinfo/issues/6098
Remove an extra space in the email message.
Edit some of the instructions for activating an account. https://projects.ecoinformatics.org/ecoinfo/issues/6063
Remove the knb information in the emails.
Add code to handle the looking up names.
Add a method to lookup users'account for the people who forgot their user name.
Add code to generate dc=tmp. Clean up some code.
Remove a reistriction that it didn't show the similar accounts of "ou=Account" in the user registration.
Use the specific template for the verification.
Fixed a bug that email verificaton doesn't work well on "ou=Account".
Fixed a bug to split the organization list from a property file.Fixed a bug to use a wrong object class for the ou.
Pass a organization list to the template.
Add code to get organization information from the ldapconfig.
First get the email sender from the skin properties. If it is null, get it from the metacat.properties file.
Reword a message for the failed verification.
Add code to handle the failure of the email server.
Add code to check if password match in the registeration.
Add the new feature for the email verification.
Fixed a bug that the url link was not correct in the email.
Send the verification email.
Add code to add a user to the tmp subtree.
Fixed a bug in creating a subtree.
Add code to generate temporary subtree if it didn't exist.
add a new subroutine to create a temporary account.
Read the recaptcha key from the metacat.properties.
Add the recaptcha protection.
correctly delete data file when we are done with it. https://projects.ecoinformatics.org/ecoinfo/issues/6007
include filename in the filepart part. https://projects.ecoinformatics.org/ecoinfo/issues/6007
send the original filename in the upload() method since that is supported by the Metacat API. https://projects.ecoinformatics.org/ecoinfo/issues/6007
remove the unique string when generating data file metadata. https://projects.ecoinformatics.org/ecoinfo/issues/6007
debugging. https://projects.ecoinformatics.org/ecoinfo/issues/6007
use File::Temp to write data files in registry. https://projects.ecoinformatics.org/ecoinfo/issues/6007
use correct test for PID param.
Allow use of PID instead of docid in the Perl registry. At least for reading/editing and deleting existing content. Does not create content using a pid. https://projects.ecoinformatics.org/ecoinfo/issues/5932
use kepler account as default
use 'allowFirst' for access rules. We have deprecated 'denyFirst' and deny rules in Metacat as of 2.0.0
handle https-only server configuration -- must pull resources from https not http for the skins etc.
ROLLBACK: check for non-public session in Metacat before showing the registry formhttp://bugzilla.ecoinformatics.org/process_bug.cgi
check for non-public session in Metacat before showing the registry formhttp://bugzilla.ecoinformatics.org/process_bug.cgi
use EML 2.1.1 and UTF-8