For details on the changes in each release, see the Releases page.
- the [webhook] section of the config file can be removed
- all mail templates are no longer PHP files, now they are
.html.twig - the
mail_overridesdirectory has been renamed tomail - the
templates_overridesdirectory has been renamed totemplates - the
overridesdirectory has been renamed todomain_overrides - the size of the
recipientcolumn in theaudit_logSQL table should be increased from 128 to 768
- the
update-qualified-users-group.phpworker should be executed- this may remove a large number of users from your qualified users group
- the
pagesSQL table should be droppped- the
homepage can be copied over todeployment/templates_overrides/home.php - the
supportpage should be moved over to wherever you host your documentation
- the
- the
noticesSQL table should be droppped - a new LDAP schema needs to be added:
scp tools/docker-dev/identity/account-portal-schema.ldif root@your-ldap-server:/root/account-portal-schema.ldif ssh root@your-ldap-server ldapadd -Y EXTERNAL -H ldapi:/// -f /root/account-portal-schema.ldif
- the objectClass
piGroupneeds to be added to all your PI groups./workers/ensure-all-pi-groups-have-objectClass.php
- the
[ldap]group_ouoption has been renamed to[ldap]usergroup_ou - the
[ldap]user_flag_groups[ghost]group has been renamed to[ldap]user_flag_groups[disabled] - 3 new colors
dangerdanger_hoverdanger_disabledshould be added to the branding config - a new config section has been added
[expiry]which needs 4 options set:idlelock_warning_days: list of day numbers when a user will get an email warning that their account will be idlelockedidlelock_day: day number when a user will be idlelockeddisable_warning_days: list of day numbers when a user will get an email warning that their account will be disableddisable_day: day number when a user will be disabled- a "day number" starts counting from the last day that a user logged in, so on day 5, the user last logged in 5 days ago
- drop the
account_deletion_requeststable - a new location
/lanneeds to be configured in your webserver- authorization: only IP addresses in your local area network should be allowed
- authentication: none
CGIPassAuth On
- a new LDAP posixGroup needs to be created for "immortal" users, who are exempt from automatic account expiration
- the
[ldap]user_flag_groups[immortal]open must also be defined
- the
- the
[site]account_policy_urloption has been renamed to[site]pi_qualification_docs_url - the
[site]account_expiration_policy_urloption must be defined - the SQL trigger for
audit_logto updateuser_last_loginsshould be removed:drop trigger update_last_login;
[api]keyscan now be specified in the config file
- the
[site]getting_started_urloption should be defined - the
[ldap]admin_groupoption has been renamed to[ldap]user_flag_groups[admin] - the
[ldap]qualified_user_groupoption has been renamed to[ldap]user_flag_groups[qualified] - the
user_qualified,user_dequalifiedmail templates have been removed - the
user_flag_added,user_flag_removedmail templates have been added (qualifiedis one of the flags)
- Redis can be shut down
- the
[redis]portion of your config file should be removed
- the
[ldap]user_groupoption has been renamed to[ldap]qualified_user_group - the
user_createdmail template has been renamed touser_qualified - the
user_dequalifiedmail template has been added
In v1.2.1, we extended PI group requests and PI group join requests to store user info like name and email. This was necessary because LDAP entries were not created for users until they became "qualified" (become a PI or joined a PI group). While a user was unqualified, if the Redis cache was cleared, the user info would be lost. Now, LDAP entries are created immediately for every user, so this is no longer necessary.
- Shut down the web portal
systemctl stop apache2
- Create LDAP entries for all existing requests
use UnityWebPortal\lib\UnityUser; $_SERVER["HTTP_HOST"] = "worker"; // see deployment/overrides/worker/ $_SERVER["REMOTE_ADDR"] = "127.0.0.1"; require_once __DIR__ . "/../resources/autoload.php"; foreach ($SQL->getAllRequests() as $request) { $user = new UnityUser($request["uid"], $LDAP, $SQL, $MAILER); if (!$user->exists()) { echo "creating user: " . jsonEncode($request) . "\n"; $user->init( $request["firstname"], $request["lastname"], $request["email"], $request["org"], ); } }
- Remove columns from the
requeststable:ALTER TABLE `requests` DROP COLUMN `firstname`, DROP COLUMN `lastname`, DROP COLUMN `email`, DROP COLUMN `org`;
- Update the portal PHP code following the normal procedure
- Start the portal again
systemctl start apache2
- SQL:
- remove the
sitevarstable
- remove the
defaults/config.ini.defaulthas some new fields that need to be overriden:offset_UIDGIDoffset_PIGIDoffset_ORGGID
custom_user_mappingscan no longer match with just the 1st segment of the logged in user's UID, an exact match is required- LDAP:
- create the
gecosattribute for all users by concatenatinggivenNameandsn
- create the
- SQL:
- Add new columns to the
requeststable:ALTER TABLE `requests` ADD `firstname` VARCHAR(768) NOT NULL AFTER `timestamp`, ADD `lastname` VARCHAR(768) NOT NULL AFTER `firstname`, ADD `email` VARCHAR(768) NOT NULL AFTER `lastname`, ADD `org` VARCHAR(768) NOT NULL AFTER `email`;
- Add new columns to the
- SQL:
- Create the
sitevarstable (seebootstrap.sqlfor details) - Create the
audit_logtable (seebootstrap.sqlfor details) - Create the
account_deletion_requeststable (seebootstrap.sqlfor details) - Create the
user_last_loginstable (seebootstrap.sqlfor details) - Drop the
sso_logtable - Drop the
eventstable - Reduce the size of all
varchar(1000)columns tovarchar(768) - Delete the
privrow in thepagestable (if moving site policy to external site) - Add the
account_policyrow in thepagestable (if NOT moving site policy to external site)
- Create the
defaults/config.ini.defaulthas some new fields that may need to be overriden:ldap.user_groupsite.terms_of_service_url- example, created account policy page:
https://unity.rc.umass.edu/panel/account_policy.php
- example, created account policy page:
site.account_policy_url- example, using old site policy page:
https://unity.rc.umass.edu/panel/priv.php
- example, using old site policy page:
- LDAP:
- Create a new group defined by
ldap.user_groupin the config
- Create a new group defined by
- SQL:
- Add the
homecontent management row
- Add the
config/branding/config.ini.defaulthas some new fields that may need to be overriden:mail.pi_approve*page.home- The entire
loginshellsection