Skip to content

Commit 3d4ad99

Browse files
committed
Send weekly reminders to PIs for 4 weeks
Meant to be run as a daily cron job, this script will email PIs with outstanding requests. After 34 days, requests will be removed from the database.
1 parent a716b8a commit 3d4ad99

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php
2+
/*
3+
Emails PIs that have oustanding member requests once a week for 4 weeks.
4+
Removes the request after 34 days have passed.
5+
*/
6+
7+
require_once "../resources/autoload.php";
8+
use UnityWebPortal\lib\UnityGroup;
9+
10+
$today = time();
11+
$accounts = $LDAP->getAllPIGroups($SQL, $MAILER, $REDIS);
12+
foreach ($accounts as $pi_group) {
13+
$pi_user = $pi_group->getOwner();
14+
$requests = $pi_group->getRequests();
15+
foreach ($requests as $request) {
16+
$request_date = strtotime($request[1]);
17+
$daysDifference = ($today - $request_date) / (60 * 60 * 24);
18+
if ($daysDifference > 34) {
19+
# No interface in UnityGroup for this, so use DB directly
20+
$SQL->removeRequest($request[0], $pi_group->getPIUID());
21+
}
22+
elseif ($daysDifference > 1 && $daysDifference % 7 == 0) {
23+
$new_user = $request[0];
24+
// send email to PI
25+
$MAILER->sendMail(
26+
$pi_user->getMail(),
27+
"group_user_request_owner",
28+
array(
29+
"group" => $pi_group->getPIUID(),
30+
"user" => $new_user->getUID(),
31+
"name" => $new_user->getFullName(),
32+
"email" => $new_user->getMail(),
33+
"org" => $new_user->getOrg()
34+
)
35+
);
36+
}
37+
}
38+
}

0 commit comments

Comments
 (0)