diff --git a/defaults/config.ini.default b/defaults/config.ini.default
index 6bcc5b95..48c6a3cb 100644
--- a/defaults/config.ini.default
+++ b/defaults/config.ini.default
@@ -19,7 +19,7 @@ pass = "password" ; Admin bind password
basedn = "dc=unityhpc,dc=test" ; Base search DN
user_ou = "ou=users,dc=unityhpc,dc=test" ; User organizational unit
group_ou = "ou=groups,dc=unityhpc,dc=test" ; Group organizational unit
-pigroup_ou = "ou=pi_groups,dc=unityhpc,dc=test" ; PI Group organizational unit
+unitygroup_ou = "ou=unity_groups,dc=unityhpc,dc=test" ; Unity Group organizational unit
orggroup_ou = "ou=org_groups,dc=unityhpc,dc=test" ; ORG group organizational unit
admin_group = "cn=sudo,dc=unityhpc,dc=test" ; admin dn (members of this group are admins on the web portal)
def_user_shell = "/bin/bash" ; Default shell for new users
diff --git a/resources/autoload.php b/resources/autoload.php
index af41edfc..535f3015 100644
--- a/resources/autoload.php
+++ b/resources/autoload.php
@@ -19,6 +19,7 @@
require_once __DIR__ . "/lib/UnityConfig.php";
require_once __DIR__ . "/lib/UnityWebhook.php";
require_once __DIR__ . "/lib/UnityRedis.php";
+require_once __DIR__ . "/lib/UnityPerms.php";
// run init script
require __DIR__ . "/init.php";
diff --git a/resources/init.php b/resources/init.php
index 6fe58e41..05bc2dc8 100644
--- a/resources/init.php
+++ b/resources/init.php
@@ -43,7 +43,7 @@
__DIR__ . "/../deployment/custom_user_mappings",
$CONFIG["ldap"]["user_ou"],
$CONFIG["ldap"]["group_ou"],
- $CONFIG["ldap"]["pigroup_ou"],
+ $CONFIG["ldap"]["unitygroup_ou"],
$CONFIG["ldap"]["orggroup_ou"],
$CONFIG["ldap"]["admin_group"],
$CONFIG["ldap"]["def_user_shell"]
diff --git a/resources/lib/UnityGroup.php b/resources/lib/UnityGroup.php
index d1616225..021ba576 100644
--- a/resources/lib/UnityGroup.php
+++ b/resources/lib/UnityGroup.php
@@ -5,13 +5,13 @@
use Exception;
/**
- * Class that represents a single PI group in the Unity Cluster.
+ * Class that represents a single group in the Unity Cluster.
*/
class UnityGroup
{
public const PI_PREFIX = "pi_";
- private $pi_uid;
+ private $group_uid; // change to group_uid;
// Services
private $LDAP;
@@ -23,13 +23,13 @@ class UnityGroup
/**
* Constructor for the object
*
- * @param string $pi_uid PI UID in the format
+ * @param string $group_uid Group UID in the format
* @param LDAP $LDAP LDAP Connection
* @param SQL $SQL SQL Connection
*/
- public function __construct($pi_uid, $LDAP, $SQL, $MAILER, $REDIS, $WEBHOOK)
+ public function __construct($group_uid, $LDAP, $SQL, $MAILER, $REDIS, $WEBHOOK)
{
- $this->pi_uid = $pi_uid;
+ $this->group_uid = $group_uid;
$this->LDAP = $LDAP;
$this->SQL = $SQL;
@@ -44,17 +44,17 @@ public function equals($other_group)
throw new Exception("Unable to check equality because the parameter is not a " . self::class . " object");
}
- return $this->getPIUID() == $other_group->getPIUID();
+ return $this->getGroupUID() == $other_group->getGroupUID();
}
/**
- * Returns this group's PI UID
+ * Returns this group's Group UID
*
- * @return string PI UID of the group
+ * @return string Group UID of the group
*/
- public function getPIUID()
+ public function getGroupUID() // change this to groupUID
{
- return $this->pi_uid;
+ return $this->group_uid;
}
/**
@@ -64,41 +64,57 @@ public function getPIUID()
*/
public function exists()
{
- return $this->getLDAPPiGroup()->exists();
+ return $this->getLDAPUnityGroup()->exists();
}
//
// Portal-facing methods, these are the methods called by scripts in webroot
//
- public function requestGroup($send_mail_to_admins, $send_mail = true)
- {
+ public function requestGroup(
+ $requestor_uid,
+ $group_type,
+ $group_name,
+ $send_mail_to_admins,
+ $start_date,
+ $end_date,
+ $send_mail = true
+ ) {
// check for edge cases...
if ($this->exists()) {
return;
}
+ $requestor = new UnityUser(
+ $requestor_uid,
+ $this->LDAP,
+ $this->SQL,
+ $this->MAILER,
+ $this->REDIS,
+ $this->WEBHOOK
+ );
+
// check if account deletion request already exists
- if ($this->SQL->accDeletionRequestExists($this->getOwner()->getUID())) {
+ if ($this->SQL->accDeletionRequestExists($requestor->getUID())) {
return;
}
- $this->SQL->addRequest($this->getOwner()->getUID());
+ $this->SQL->addGroupRequest($requestor->getUID(), $group_type, $group_name, $start_date, $end_date);
if ($send_mail) {
// send email to requestor
$this->MAILER->sendMail(
- $this->getOwner()->getMail(),
+ $requestor->getMail(),
"group_request"
);
$this->WEBHOOK->sendWebhook(
"group_request_admin",
array(
- "user" => $this->getOwner()->getUID(),
- "org" => $this->getOwner()->getOrg(),
- "name" => $this->getOwner()->getFullname(),
- "email" => $this->getOwner()->getMail()
+ "user" => $requestor->getUID(),
+ "org" => $requestor->getOrg(),
+ "name" => $requestor->getFullname(),
+ "email" => $requestor->getMail()
)
);
@@ -107,10 +123,10 @@ public function requestGroup($send_mail_to_admins, $send_mail = true)
"admin",
"group_request_admin",
array(
- "user" => $this->getOwner()->getUID(),
- "org" => $this->getOwner()->getOrg(),
- "name" => $this->getOwner()->getFullname(),
- "email" => $this->getOwner()->getMail()
+ "user" => $requestor->getUID(),
+ "org" => $requestor->getOrg(),
+ "name" => $requestor->getFullname(),
+ "email" => $requestor->getMail()
)
);
}
@@ -119,10 +135,10 @@ public function requestGroup($send_mail_to_admins, $send_mail = true)
"pi_approve",
"group_request_admin",
array(
- "user" => $this->getOwner()->getUID(),
- "org" => $this->getOwner()->getOrg(),
- "name" => $this->getOwner()->getFullname(),
- "email" => $this->getOwner()->getMail()
+ "user" => $requestor->getUID(),
+ "org" => $requestor->getOrg(),
+ "name" => $requestor->getFullname(),
+ "email" => $requestor->getMail()
)
);
}
@@ -131,38 +147,50 @@ public function requestGroup($send_mail_to_admins, $send_mail = true)
/**
* This method will create the group (this is what is executed when an admin approved the group)
*/
- public function approveGroup($operator = null, $send_mail = true)
+ public function approveGroup($requestor_uid, $operator = null, $send_mail = true)
{
// check for edge cases...
if ($this->exists()) {
return;
}
+ $requestor = new UnityUser(
+ $requestor_uid,
+ $this->LDAP,
+ $this->SQL,
+ $this->MAILER,
+ $this->REDIS,
+ $this->WEBHOOK
+ );
+
// check if owner exists
- if (!$this->getOwner()->exists()) {
- $this->getOwner()->init();
+ if (!$requestor->exists()) {
+ $requestor->init();
}
// initialize ldap objects, if this fails the script will crash, but nothing will persistently break
$this->init();
+ // add the group to the group attributes table
+ $this->SQL->setGroupAttributes($this->getGroupUID(), $requestor->getUID());
+
// remove the request from the sql table
// this will silently fail if the request doesn't exist
- $this->SQL->removeRequest($this->getOwner()->getUID());
+ $this->SQL->removeGroupRequest($requestor->getUID());
- $operator = is_null($operator) ? $this->getOwner()->getUID() : $operator->getUID();
+ $operator = is_null($operator) ? $requestor->getUID() : $operator->getUID();
$this->SQL->addLog(
$operator,
$_SERVER['REMOTE_ADDR'],
"approved_group",
- $this->getOwner()->getUID()
+ $requestor->getUID()
);
// send email to the newly approved PI
if ($send_mail) {
$this->MAILER->sendMail(
- $this->getOwner()->getMail(),
+ $requestor->getMail(),
"group_created"
);
}
@@ -171,28 +199,37 @@ public function approveGroup($operator = null, $send_mail = true)
/**
* This method is executed when an admin denys the PI group request
*/
- public function denyGroup($operator = null, $send_mail = true)
+ public function denyGroup($requestor_uid, $operator = null, $send_mail = true)
{
- // remove request - this will fail silently if the request doesn't exist
- $this->SQL->removeRequest($this->getOwner()->getUID());
-
if ($this->exists()) {
return;
}
- $operator = is_null($operator) ? $this->getOwner()->getUID() : $operator->getUID();
+ $requestor = new UnityUser(
+ $requestor_uid,
+ $this->LDAP,
+ $this->SQL,
+ $this->MAILER,
+ $this->REDIS,
+ $this->WEBHOOK
+ );
+
+ // remove request - this will fail silently if the request doesn't exist
+ $this->SQL->removeGroupRequest($requestor_uid);
+
+ $operator = is_null($operator) ? $requestor->getUID() : $operator->getUID();
$this->SQL->addLog(
$operator,
$_SERVER['REMOTE_ADDR'],
"denied_group",
- $this->getOwner()->getUID()
+ $requestor->getUID()
);
// send email to the requestor
if ($send_mail) {
$this->MAILER->sendMail(
- $this->getOwner()->getMail(),
+ $requestor->getMail(),
"group_denied"
);
}
@@ -205,7 +242,7 @@ public function removeGroup($send_mail = true)
{
// remove any pending requests
// this will silently fail if the request doesn't exist (which is what we want)
- $this->SQL->removeRequests($this->pi_uid);
+ $this->SQL->removeJoinRequests($this->getGroupName());
// we don't need to do anything extra if the group is already deleted
if (!$this->exists()) {
@@ -216,15 +253,15 @@ public function removeGroup($send_mail = true)
$users = $this->getGroupMembers();
// now we delete the ldap entry
- $ldapPiGroupEntry = $this->getLDAPPiGroup();
- if ($ldapPiGroupEntry->exists()) {
- if (!$ldapPiGroupEntry->delete()) {
+ $ldapGroupEntry = $this->getLDAPUnityGroup();
+ if ($ldapGroupEntry->exists()) {
+ if (!$ldapGroupEntry->delete()) {
throw new Exception("Unable to delete PI ldap group");
}
- $this->REDIS->removeCacheArray("sorted_groups", "", $this->getPIUID());
+ $this->REDIS->removeCacheArray("sorted_groups", "", $this->getGroupUID());
foreach ($users as $user) {
- $this->REDIS->removeCacheArray($user->getUID(), "groups", $this->getPIUID());
+ $this->REDIS->removeCacheArray($user->getUID(), "groups", $this->getGroupUID());
}
}
@@ -234,7 +271,7 @@ public function removeGroup($send_mail = true)
$this->MAILER->sendMail(
$user->getMail(),
"group_disband",
- array("group_name" => $this->pi_uid)
+ array("group_name" => $this->group_uid)
);
}
}
@@ -256,26 +293,34 @@ public function approveUser($new_user, $send_mail = true)
// remove request, this will fail silently if the request doesn't exist
$this->removeRequest($new_user->getUID());
+ // give the user the defRole of that group type
+ $this->SQL->assignDefRole($new_user->getUID(), $this->getGroupType(), $this->getGroupUID());
+
// send email to the requestor
if ($send_mail) {
// send email to the user
$this->MAILER->sendMail(
$new_user->getMail(),
"group_user_added",
- array("group" => $this->pi_uid)
+ array("group" => $this->group_uid)
);
- // send email to the PI
- $this->MAILER->sendMail(
- $this->getOwner()->getMail(),
- "group_user_added_owner",
- array(
- "group" => $this->pi_uid,
- "user" => $new_user->getUID(),
- "name" => $new_user->getFullName(),
- "email" => $new_user->getMail(),
- "org" => $new_user->getOrg()
+
+ $admins = $this->getGroupAdmins();
+
+ // send email to the admins
+ foreach ($admins as $admin) {
+ $this->MAILER->sendMail(
+ $admin->getMail(),
+ "group_user_added_owner",
+ array(
+ "group" => $this->group_uid,
+ "user" => $new_user->getUID(),
+ "name" => $new_user->getFullName(),
+ "email" => $new_user->getMail(),
+ "org" => $new_user->getOrg()
)
- );
+ );
+ }
}
}
@@ -293,21 +338,25 @@ public function denyUser($new_user, $send_mail = true)
$this->MAILER->sendMail(
$new_user->getMail(),
"group_user_denied",
- array("group" => $this->pi_uid)
+ array("group" => $this->group_uid)
);
- // send email to the PI
- $this->MAILER->sendMail(
- $this->getOwner()->getMail(),
- "group_user_denied_owner",
- array(
- "group" => $this->pi_uid,
- "user" => $new_user->getUID(),
- "name" => $new_user->getFullName(),
- "email" => $new_user->getMail(),
- "org" => $new_user->getOrg()
+ $admins = $this->getGroupAdmins();
+
+ // send email to the admins
+ foreach ($admins as $admin) {
+ $this->MAILER->sendMail(
+ $admin->getMail(),
+ "group_user_denied_owner",
+ array(
+ "group" => $this->group_uid,
+ "user" => $new_user->getUID(),
+ "name" => $new_user->getFullName(),
+ "email" => $new_user->getMail(),
+ "org" => $new_user->getOrg()
)
- );
+ );
+ }
}
}
@@ -317,9 +366,9 @@ public function removeUser($new_user, $send_mail = true)
return;
}
- if ($new_user->getUID() == $this->getOwner()->getUID()) {
- throw new Exception("Cannot delete group owner from group. Disband group instead");
- }
+ // if ($new_user->getUID() == $this->getOwner()->getUID()) {
+ // throw new Exception("Cannot delete group owner from group. Disband group instead");
+ // }
// remove request, this will fail silently if the request doesn't exist
$this->removeUserFromGroup($new_user);
@@ -329,21 +378,25 @@ public function removeUser($new_user, $send_mail = true)
$this->MAILER->sendMail(
$new_user->getMail(),
"group_user_removed",
- array("group" => $this->pi_uid)
+ array("group" => $this->group_uid)
);
- // send email to the PI
- $this->MAILER->sendMail(
- $this->getOwner()->getMail(),
- "group_user_removed_owner",
- array(
- "group" => $this->pi_uid,
- "user" => $new_user->getUID(),
- "name" => $new_user->getFullName(),
- "email" => $new_user->getMail(),
- "org" => $new_user->getOrg()
+ $admins = $this->getGroupAdmins();
+
+ // send email to the admins
+ foreach ($admins as $admin) {
+ $this->MAILER->sendMail(
+ $admin->getMail(),
+ "group_user_removed_owner",
+ array(
+ "group" => $this->group_uid,
+ "user" => $new_user->getUID(),
+ "name" => $new_user->getFullName(),
+ "email" => $new_user->getMail(),
+ "org" => $new_user->getOrg()
)
- );
+ );
+ }
}
}
@@ -369,39 +422,43 @@ public function newUserRequest($new_user, $send_mail = true)
$this->MAILER->sendMail(
$new_user->getMail(),
"group_user_request",
- array("group" => $this->pi_uid)
+ array("group" => $this->group_uid)
);
- // send email to PI
- $this->MAILER->sendMail(
- $this->getOwner()->getMail(),
- "group_user_request_owner",
- array(
- "group" => $this->pi_uid,
- "user" => $new_user->getUID(),
- "name" => $new_user->getFullName(),
- "email" => $new_user->getMail(),
- "org" => $new_user->getOrg()
+ $admins = $this->getGroupAdmins();
+
+ // send email to the admins
+ foreach ($admins as $admin) {
+ $this->MAILER->sendMail(
+ $admin->getMail(),
+ "group_user_request_owner",
+ array(
+ "group" => $this->group_uid,
+ "user" => $new_user->getUID(),
+ "name" => $new_user->getFullName(),
+ "email" => $new_user->getMail(),
+ "org" => $new_user->getOrg()
)
- );
+ );
+ }
}
}
public function getRequests()
{
- $requests = $this->SQL->getRequests($this->pi_uid);
+ $requests = $this->SQL->getJoinRequests($this->group_uid);
$out = array();
foreach ($requests as $request) {
$user = new UnityUser(
- $request["uid"],
+ $request["requestor"],
$this->LDAP,
$this->SQL,
$this->MAILER,
$this->REDIS,
$this->WEBHOOK
);
- array_push($out, [$user, $request["timestamp"]]);
+ array_push($out, [$user, $request["requested_on"]]);
}
return $out;
@@ -410,7 +467,7 @@ public function getRequests()
public function getGroupMembers($ignorecache = false)
{
if (!$ignorecache) {
- $cached_val = $this->REDIS->getCache($this->getPIUID(), "members");
+ $cached_val = $this->REDIS->getCache($this->getGroupUID(), "members");
if (!is_null($cached_val)) {
$members = $cached_val;
}
@@ -418,14 +475,13 @@ public function getGroupMembers($ignorecache = false)
$updatecache = false;
if (!isset($members)) {
- $pi_group = $this->getLDAPPiGroup();
- $members = $pi_group->getAttribute("memberuid");
+ $group = $this->getLDAPUnityGroup();
+ $members = $group->getAttribute("memberuid");
$updatecache = true;
}
$out = array();
$cache_arr = array();
- $owner_uid = $this->getOwner()->getUID();
foreach ($members as $member) {
$user_obj = new UnityUser(
$member,
@@ -441,7 +497,7 @@ public function getGroupMembers($ignorecache = false)
if (!$ignorecache && $updatecache) {
sort($cache_arr);
- $this->REDIS->setCache($this->getPIUID(), "members", $cache_arr);
+ $this->REDIS->setCache($this->getGroupUID(), "members", $cache_arr);
}
return $out;
@@ -449,8 +505,8 @@ public function getGroupMembers($ignorecache = false)
public function getGroupMemberUIDs()
{
- $pi_group = $this->getLDAPPiGroup();
- $members = $pi_group->getAttribute("memberuid");
+ $group = $this->getLDAPUnityGroup();
+ $members = $group->getAttribute("memberuid");
return $members;
}
@@ -476,24 +532,27 @@ public function requestExists($user)
private function init()
{
// make this user a PI
- $owner = $this->getOwner();
+ $requestor_uid = $this->SQL->getRequestor($this->getGroupName());
+
+ // give the user the defSuperRole of that group type
+ $this->SQL->assignSuperRole($requestor_uid, $this->getGroupType(), $this->getGroupUID());
// (1) Create LDAP PI group
- $ldapPiGroupEntry = $this->getLDAPPiGroup();
+ $ldapGroupEntry = $this->getLDAPUnityGroup();
- if (!$ldapPiGroupEntry->exists()) {
- $nextGID = $this->LDAP->getNextPiGIDNumber($this->SQL);
+ if (!$ldapGroupEntry->exists()) {
+ $nextGID = $this->LDAP->getNextGIDNumber($this->SQL);
- $ldapPiGroupEntry->setAttribute("objectclass", UnityLDAP::POSIX_GROUP_CLASS);
- $ldapPiGroupEntry->setAttribute("gidnumber", strval($nextGID));
- $ldapPiGroupEntry->setAttribute("memberuid", array($owner->getUID()));
+ $ldapGroupEntry->setAttribute("objectclass", UnityLDAP::POSIX_GROUP_CLASS);
+ $ldapGroupEntry->setAttribute("gidnumber", strval($nextGID));
+ $ldapGroupEntry->setAttribute("memberuid", array($requestor_uid));
- if (!$ldapPiGroupEntry->write()) {
- throw new Exception("Failed to create POSIX group for " . $owner->getUID()); // this shouldn't execute
+ if (!$ldapGroupEntry->write()) {
+ throw new Exception("Failed to create POSIX group for " . $requestor_uid); // this shouldn't execute
}
}
- $this->REDIS->appendCacheArray("sorted_groups", "", $this->getPIUID());
+ $this->REDIS->appendCacheArray("sorted_groups", "", $this->getGroupUID());
// TODO if we ever make this project based, we need to update the cache here with the memberuid
}
@@ -501,29 +560,29 @@ private function init()
private function addUserToGroup($new_user)
{
// Add to LDAP Group
- $pi_group = $this->getLDAPPiGroup();
- $pi_group->appendAttribute("memberuid", $new_user->getUID());
+ $group = $this->getLDAPUnityGroup();
+ $group->appendAttribute("memberuid", $new_user->getUID());
- if (!$pi_group->write()) {
+ if (!$group->write()) {
throw new Exception("Unable to write PI group");
}
- $this->REDIS->appendCacheArray($this->getPIUID(), "members", $new_user->getUID());
- $this->REDIS->appendCacheArray($new_user->getUID(), "groups", $this->getPIUID());
+ $this->REDIS->appendCacheArray($this->getGroupUID(), "members", $new_user->getUID());
+ $this->REDIS->appendCacheArray($new_user->getUID(), "groups", $this->getGroupUID());
}
private function removeUserFromGroup($old_user)
{
// Remove from LDAP Group
- $pi_group = $this->getLDAPPiGroup();
- $pi_group->removeAttributeEntryByValue("memberuid", $old_user->getUID());
+ $group = $this->getLDAPUnityGroup();
+ $group->removeAttributeEntryByValue("memberuid", $old_user->getUID());
- if (!$pi_group->write()) {
+ if (!$group->write()) {
throw new Exception("Unable to write PI group");
}
- $this->REDIS->removeCacheArray($this->getPIUID(), "members", $old_user->getUID());
- $this->REDIS->removeCacheArray($old_user->getUID(), "groups", $this->getPIUID());
+ $this->REDIS->removeCacheArray($this->getGroupUID(), "members", $old_user->getUID());
+ $this->REDIS->removeCacheArray($old_user->getUID(), "groups", $this->getGroupUID());
}
public function userExists($user)
@@ -533,12 +592,12 @@ public function userExists($user)
private function addRequest($uid)
{
- $this->SQL->addRequest($uid, $this->pi_uid);
+ $this->SQL->addJoinRequest($uid, $this->group_uid);
}
private function removeRequest($uid)
{
- $this->SQL->removeRequest($uid, $this->pi_uid);
+ $this->SQL->removeJoinRequest($uid, $this->group_uid);
}
//
@@ -548,7 +607,7 @@ private function removeRequest($uid)
public function getOwner()
{
return new UnityUser(
- self::getUIDfromPIUID($this->pi_uid),
+ self::getUIDfromGroupUID($this->group_uid),
$this->LDAP,
$this->SQL,
$this->MAILER,
@@ -557,22 +616,163 @@ public function getOwner()
);
}
- public function getLDAPPiGroup()
+ public function getLDAPUnityGroup()
{
- return $this->LDAP->getPIGroupEntry($this->pi_uid);
+ return $this->LDAP->getUnityGroupEntry($this->group_uid);
}
- public static function getPIUIDfromUID($uid)
+ public static function getGroupUIDfromUID($uid)
{
return self::PI_PREFIX . $uid;
}
- public static function getUIDfromPIUID($pi_uid)
+ public static function getUIDfromGroupUID($group_uid)
{
- if (substr($pi_uid, 0, strlen(self::PI_PREFIX)) == self::PI_PREFIX) {
- return substr($pi_uid, strlen(self::PI_PREFIX));
+ if (substr($group_uid, 0, strlen(self::PI_PREFIX)) == self::PI_PREFIX) {
+ return substr($group_uid, strlen(self::PI_PREFIX));
} else {
throw new Exception("PI netid doesn't have the correct prefix.");
}
}
+
+ public function getGroupTypeColor()
+ {
+ $group_type = $this->getGroupType();
+ $group_details = $this->SQL->getGroupTypeDetails($group_type);
+ return $group_details["color"];
+ }
+
+ public function getGroupTypeName()
+ {
+ $group_type = $this->getGroupType();
+ $group_details = $this->SQL->getGroupTypeDetails($group_type);
+ return $group_details["name"];
+ }
+
+ public function getAvailableRoles()
+ {
+ $group_type = $this->getGroupType();
+ $group_details = $this->SQL->getGroupTypeDetails($group_type);
+ $av_roles = $group_details["av_roles"];
+
+ $out = array();
+ foreach ($av_roles as $role) {
+ $role_obj = array();
+ $role_obj["slug"] = $role;
+ $role_obj["display_name"] = $this->SQL->getRoleName($role);
+ $role_obj["priority"] = $this->SQL->getPriority($role);
+ array_push($out, $role_obj);
+ }
+
+ return $out;
+ }
+
+ public function getUsersWithRole($role)
+ {
+ $gid = $this->getLDAPUnityGroup()->getAttribute("cn")[0];
+ $users = $this->SQL->getUsersWithRoles($role, $gid);
+
+ $out = array();
+ foreach ($users as $user) {
+ $user_obj = new UnityUser(
+ $user,
+ $this->LDAP,
+ $this->SQL,
+ $this->MAILER,
+ $this->REDIS,
+ $this->WEBHOOK
+ );
+ array_push($out, $user_obj);
+ }
+
+ return $out;
+ }
+
+ public function getUsersWithoutRole()
+ {
+ $gid = $this->getLDAPUnityGroup()->getAttribute("cn")[0];
+ $current_users_uids = $this->getGroupMemberUIDs();
+ $users = $this->SQL->getUsersWithoutRoles($gid, $current_users_uids);
+
+ $out = array();
+ foreach ($users as $user) {
+ $user_obj = new UnityUser(
+ $user,
+ $this->LDAP,
+ $this->SQL,
+ $this->MAILER,
+ $this->REDIS,
+ $this->WEBHOOK
+ );
+ array_push($out, $user_obj);
+ }
+
+ return $out;
+ }
+
+ public function assignRole($user, $role)
+ {
+ $gid = $this->getLDAPUnityGroup()->getAttribute("cn")[0];
+ $this->SQL->assignRole($role, $user->getUID(), $gid);
+ }
+
+ public function revokeRole($user, $role)
+ {
+ $gid = $this->getLDAPUnityGroup()->getAttribute("cn")[0];
+ $this->SQL->revokeRole($role, $user, $gid);
+ }
+
+ public function getPrefix()
+ {
+ return "pi_";
+ }
+
+ public function getGroupName()
+ {
+ // get the group uid, then get the group prefix, and remove the prefix from the group uid
+ $group_uid = $this->getGroupUID();
+ $group_prefix = $this->getPrefix();
+ $group_name = substr($group_uid, strlen($group_prefix));
+ return $group_name;
+ }
+
+ public function getGroupType()
+ {
+ $group_uid = $this->getGroupUID();
+ $group_prefix = substr($group_uid, 0, strpos($group_uid, "_"));
+ $type = $this->SQL->getGroupType($group_prefix . "_");
+ return $type;
+ }
+
+ public function getGroupAdmins()
+ {
+ $current_users_uids = $this->getGroupMemberUIDs();
+
+ $admins = $this->SQL->getGroupAdmins($this->getGroupUID(), $current_users_uids);
+
+ $admins = array_map(function ($admin) {
+ return new UnityUser(
+ $admin,
+ $this->LDAP,
+ $this->SQL,
+ $this->MAILER,
+ $this->REDIS,
+ $this->WEBHOOK
+ );
+ }, $admins);
+
+ return $admins;
+ }
+
+ public function getRolePriority($user)
+ {
+ $user_role = $this->SQL->getRole($user, $this->getGroupUID());
+ return $this->SQL->getPriority($user_role);
+ }
+
+ public function getMemberRole($user)
+ {
+ $user_role = $this->SQL->getRole($user, $this->getGroupUID());
+ return $user_role;
+ }
}
diff --git a/resources/lib/UnityLDAP.php b/resources/lib/UnityLDAP.php
index fc44cd4f..8d3c8506 100644
--- a/resources/lib/UnityLDAP.php
+++ b/resources/lib/UnityLDAP.php
@@ -32,14 +32,14 @@ class UnityLDAP extends ldapConn
// string vars for OUs
private $STR_USEROU;
private $STR_GROUPOU;
- private $STR_PIGROUPOU;
+ private $STR_UNITYGROUPOU;
private $STR_ORGGROUPOU;
private $STR_ADMINGROUP;
// Instance vars for various ldapEntry objects
private $userOU;
private $groupOU;
- private $pi_groupOU;
+ private $unity_groupOU;
private $org_groupOU;
private $adminGroup;
@@ -54,7 +54,7 @@ public function __construct(
$custom_user_mappings,
$user_ou,
$group_ou,
- $pigroup_ou,
+ $unitygroup_ou,
$orggroup_ou,
$admin_group,
$def_user_shell
@@ -63,14 +63,14 @@ public function __construct(
$this->STR_USEROU = $user_ou;
$this->STR_GROUPOU = $group_ou;
- $this->STR_PIGROUPOU = $pigroup_ou;
+ $this->STR_UNITYGROUPOU = $unitygroup_ou;
$this->STR_ORGGROUPOU = $orggroup_ou;
$this->STR_ADMINGROUP = $admin_group;
// Get Global Entries
$this->userOU = $this->getEntry($user_ou);
$this->groupOU = $this->getEntry($group_ou);
- $this->pi_groupOU = $this->getEntry($pigroup_ou);
+ $this->unity_groupOU = $this->getEntry($unitygroup_ou);
$this->org_groupOU = $this->getEntry($orggroup_ou);
$this->adminGroup = $this->getEntry($admin_group);
@@ -92,9 +92,9 @@ public function getGroupOU()
return $this->groupOU;
}
- public function getPIGroupOU()
+ public function getUnityGroupOU()
{
- return $this->pi_groupOU;
+ return $this->unity_groupOU;
}
public function getOrgGroupOU()
@@ -129,18 +129,18 @@ public function getNextUIDNumber($UnitySQL)
return $new_uid;
}
- public function getNextPiGIDNumber($UnitySQL)
+ public function getNextGIDNumber($UnitySQL)
{
- $max_pigid = $UnitySQL->getSiteVar('MAX_PIGID');
- $new_pigid = $max_pigid + 1;
+ $max_gid = $UnitySQL->getSiteVar('MAX_GID');
+ $new_gid = $max_gid + 1;
- while ($this->PIGIDNumInUse($new_pigid)) {
- $new_pigid++;
+ while ($this->GIDNumInUse($new_gid)) {
+ $new_gid++;
}
- $UnitySQL->updateSiteVar('MAX_PIGID', $new_pigid);
+ $UnitySQL->updateSiteVar('MAX_GID', $new_gid);
- return $new_pigid;
+ return $new_gid;
}
public function getNextOrgGIDNumber($UnitySQL)
@@ -169,23 +169,11 @@ private function UIDNumInUse($id)
return false;
}
- private function PIGIDNumInUse($id)
- {
- $pi_groups = $this->pi_groupOU->getChildrenArray(true);
- foreach ($pi_groups as $pi_group) {
- if ($pi_group["gidnumber"][0] == $id) {
- return true;
- }
- }
-
- return false;
- }
-
private function GIDNumInUse($id)
{
- $groups = $this->groupOU->getChildrenArray(true);
- foreach ($groups as $group) {
- if ($group["gidnumber"][0] == $id) {
+ $unity_groups = $this->unity_groupOU->getChildrenArray(true);
+ foreach ($unity_groups as $unity_group) {
+ if ($unity_group["gidnumber"][0] == $id) {
return true;
}
}
@@ -250,7 +238,7 @@ public function getAllUsers($UnitySQL, $UnityMailer, $UnityRedis, $UnityWebhook,
return $out;
}
- public function getAllPIGroups($UnitySQL, $UnityMailer, $UnityRedis, $UnityWebhook, $ignorecache = false)
+ public function getAllUnityGroups($UnitySQL, $UnityMailer, $UnityRedis, $UnityWebhook, $ignorecache = true)
{
$out = array();
@@ -266,11 +254,11 @@ public function getAllPIGroups($UnitySQL, $UnityMailer, $UnityRedis, $UnityWebho
}
}
- $pi_groups = $this->pi_groupOU->getChildren(true);
+ $unity_groups = $this->unity_groupOU->getChildren(true);
- foreach ($pi_groups as $pi_group) {
+ foreach ($unity_groups as $unity_group) {
array_push($out, new UnityGroup(
- $pi_group->getAttribute("cn")[0],
+ $unity_group->getAttribute("cn")[0],
$this,
$UnitySQL,
$UnityMailer,
@@ -325,9 +313,9 @@ public function getGroupEntry($gid)
return $ldap_entry;
}
- public function getPIGroupEntry($gid)
+ public function getUnityGroupEntry($gid)
{
- $ldap_entry = new LDAPEntry($this->getConn(), unityLDAP::RDN . "=$gid," . $this->STR_PIGROUPOU);
+ $ldap_entry = new LDAPEntry($this->getConn(), unityLDAP::RDN . "=$gid," . $this->STR_UNITYGROUPOU);
return $ldap_entry;
}
@@ -336,4 +324,12 @@ public function getOrgGroupEntry($gid)
$ldap_entry = new LDAPEntry($this->getConn(), unityLDAP::RDN . "=$gid," . $this->STR_ORGGROUPOU);
return $ldap_entry;
}
+
+ public function getGroupType($gid)
+ {
+ // $group_entry = $this->getGroupEntry($gid);
+ // $type = $group_entry->getAttribute("type");
+ // return $type[0];
+ return "pi";
+ }
}
diff --git a/resources/lib/UnityPerms.php b/resources/lib/UnityPerms.php
index e16a66de..ac2951f1 100644
--- a/resources/lib/UnityPerms.php
+++ b/resources/lib/UnityPerms.php
@@ -13,7 +13,7 @@ public function __construct($SQL, $USER)
$this->USER = $USER;
}
- public function checkApproveUser($uid, $operated_on, $group)
+ public function checkApproveUser($uid, $group)
{
if (!$this->USER->isInGroup($uid, $group)) {
return false;
@@ -29,16 +29,10 @@ public function checkApproveUser($uid, $operated_on, $group)
return false;
}
- $operated_on_role = $this->SQL->getRole($operated_on, $group);
-
- if ($this->SQL->getPriority($operated_on_role) >= $this->SQL->getPriority($role)) {
- return false;
- }
-
return true;
}
- public function checkDenyUser($uid, $operated_on, $group)
+ public function checkDenyUser($uid, $group)
{
if (!$this->USER->isInGroup($uid, $group)) {
return false;
@@ -54,12 +48,6 @@ public function checkDenyUser($uid, $operated_on, $group)
return false;
}
- $operated_on_role = $this->SQL->getRole($operated_on, $group);
-
- if ($this->SQL->getPriority($operated_on_role) >= $this->SQL->getPriority($role)) {
- return false;
- }
-
return true;
}
@@ -75,7 +63,7 @@ public function checkGrantRole($uid, $group, $role)
$user_role = $this->SQL->getRole($uid, $group);
- if ($this->SQL->hasPerm($user_role, 'unity.admin_no_grant') && $role == 'unity.admin') {
+ if ($this->SQL->hasPerm($user_role, 'unity.admin_no_grant') && $this->SQL->hasPerm($role, 'unity.admin')) {
return false;
}
@@ -87,9 +75,7 @@ public function checkGrantRole($uid, $group, $role)
return false;
}
- $role_to_grant = $this->SQL->getRole($role, $group);
-
- if ($this->SQL->getPriority($role_to_grant) >= $this->SQL->getPriority($user_role)) {
+ if ($this->SQL->getPriority($role) >= $this->SQL->getPriority($user_role)) {
return false;
}
@@ -108,7 +94,7 @@ public function checkRevokeRole($uid, $group, $role)
$user_role = $this->SQL->getRole($uid, $group);
- if ($this->SQL->hasPerm($user_role, 'unity.admin_no_grant') && $role == 'unity.admin') {
+ if ($this->SQL->hasPerm($user_role, 'unity.admin_no_grant') && $this->SQL->hasPerm($role, 'unity.admin')) {
return false;
}
@@ -120,9 +106,7 @@ public function checkRevokeRole($uid, $group, $role)
return false;
}
- $role_to_revoke = $this->SQL->getRole($role, $group);
-
- if ($this->SQL->getPriority($role_to_revoke) >= $this->SQL->getPriority($user_role)) {
+ if ($this->SQL->getPriority($role) >= $this->SQL->getPriority($user_role)) {
return false;
}
diff --git a/resources/lib/UnitySQL.php b/resources/lib/UnitySQL.php
index 904ea2fd..eee568ec 100644
--- a/resources/lib/UnitySQL.php
+++ b/resources/lib/UnitySQL.php
@@ -19,6 +19,7 @@ class UnitySQL
private const TABLE_GROUP_ROLE_ASSIGNMENTS = "groupRoleAssignments";
private const TABLE_GROUP_REQUESTS = "groupRequests";
private const TABLE_GROUP_JOIN_REQUESTS = "groupJoinRequests";
+ private const TABLE_GROUP_ATTRIBUTES = "groupAttributes";
private const REQUEST_ADMIN = "admin";
@@ -309,14 +310,20 @@ public function updateSiteVar($name, $value)
public function getRole($uid, $group)
{
$stmt = $this->conn->prepare(
- "SELECT * FROM " . self::TABLE_GROUP_ROLE_ASSIGNMENTS . " WHERE user=:uid AND `group`=:group"
+ "SELECT * FROM " . self::TABLE_GROUP_ROLE_ASSIGNMENTS . " WHERE user=:uid AND `group`=:group_uid"
);
$stmt->bindParam(":uid", $uid);
- $stmt->bindParam(":group", $group);
+ $stmt->bindParam(":group_uid", $group);
$stmt->execute();
+ $roles = array();
+ foreach ($stmt->fetchAll() as $row) {
+ $roles[] = $row['role'];
+ }
- return $stmt->fetchAll()[0]['role'];
+ foreach ($roles as $role) {
+ return $role;
+ }
}
public function hasPerm($role, $perm)
@@ -328,9 +335,18 @@ public function hasPerm($role, $perm)
$stmt->execute();
- $row = $stmt->fetchAll()[0];
- $perms = explode(",", $row['perms']);
- return in_array($perm, $perms);
+ $perms = array();
+ foreach ($stmt->fetchAll() as $row) {
+ $perms[] = $row['perms'];
+ }
+
+ foreach ($perms as $p) {
+ $perms = explode(",", $p);
+ if (in_array($perm, $perms)) {
+ return true;
+ }
+ }
+ return false;
}
public function getPriority($role)
@@ -357,7 +373,7 @@ public function roleAvailableInGroup($uid, $group, $role)
$stmt->execute();
$row = $stmt->fetchAll()[0];
- $group_slug = $row['group'];
+ $group_slug = substr($row['group'], 0, strpos($row['group'], "_"));
$stmt = $this->conn->prepare(
"SELECT * FROM " . self::TABLE_GROUP_TYPES . " WHERE slug=:slug"
@@ -367,8 +383,497 @@ public function roleAvailableInGroup($uid, $group, $role)
$stmt->execute();
$row = $stmt->fetchAll()[0];
- $roles = explode(",", $row['roles']);
+ $roles = explode(",", $row['av_roles']);
return in_array($role, $roles);
}
+
+ public function getGroupRoleAssignments($uid, $group_uid)
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_ROLE_ASSIGNMENTS . " WHERE user=:uid AND `group`=:group"
+ );
+ $stmt->bindParam(":uid", $uid);
+ $stmt->bindParam(":group", $group_uid);
+
+ $stmt->execute();
+
+ $roles = array();
+ foreach ($stmt->fetchAll() as $row) {
+ $roles[] = $row['role'];
+ }
+
+ return $roles;
+ }
+
+ public function getDefaultRole($group_type)
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_TYPES . " WHERE slug=:slug"
+ );
+ $stmt->bindParam(":slug", $group_type);
+
+ $stmt->execute();
+
+ $row = $stmt->fetchAll()[0];
+ return $row['def_role'];
+ }
+
+ public function getGroupTypeDetails($group_type)
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_TYPES . " WHERE slug=:slug"
+ );
+ $stmt->bindParam(":slug", $group_type);
+
+ $stmt->execute();
+
+ $row = $stmt->fetchAll()[0];
+
+ $out = array();
+ $out['name'] = $row['name'];
+ $out['color'] = $row['color'];
+
+ $av_roles = explode(",", $row['av_roles']);
+ $out['av_roles'] = $av_roles;
+
+ return $out;
+ }
+
+ public function getRoleName($role)
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_ROLES . " WHERE slug=:slug"
+ );
+ $stmt->bindParam(":slug", $role);
+
+ $stmt->execute();
+
+ $row = $stmt->fetchAll()[0];
+ return $row['name'];
+ }
+
+ public function getPermissions($roles)
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_ROLES . " WHERE slug=:slug"
+ );
+
+ $perms = array();
+ foreach ($roles as $role) {
+ $stmt->bindParam(":slug", $role);
+
+ $stmt->execute();
+
+ $row = $stmt->fetchAll()[0];
+ $perms = array_merge($perms, explode(",", $row['perms']));
+ }
+
+ return $perms;
+ }
+
+ public function getUsersWithRoles($role, $group_uid)
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_ROLE_ASSIGNMENTS . " WHERE `group`=:group AND role=:role"
+ );
+
+ $stmt->bindParam(":group", $group_uid);
+ $stmt->bindParam(":role", $role);
+
+ $stmt->execute();
+
+ $users = array();
+ foreach ($stmt->fetchAll() as $row) {
+ $users[] = $row['user'];
+ }
+
+ return $users;
+ }
+
+ public function getUsersWithoutRoles($group_uid, $curr_users_uids)
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_ROLE_ASSIGNMENTS . " WHERE `group`=:group"
+ );
+
+ $stmt->bindParam(":group", $group_uid);
+
+ $stmt->execute();
+
+ $users = array();
+ foreach ($stmt->fetchAll() as $row) {
+ $users[] = $row['user'];
+ }
+
+ $users = array_diff($curr_users_uids, $users);
+
+ return $users;
+ }
+
+ public function assignRole($role, $uid, $gid)
+ {
+ $stmt = $this->conn->prepare(
+ "INSERT INTO " . self::TABLE_GROUP_ROLE_ASSIGNMENTS . " (user, `group`, role) VALUES (:user, :group, :role)"
+ );
+
+ $stmt->bindParam(":user", $uid);
+ $stmt->bindParam(":group", $gid);
+ $stmt->bindParam(":role", $role);
+
+ $stmt->execute();
+ }
+
+ public function revokeRole($role, $uid, $gid)
+ {
+ $stmt = $this->conn->prepare(
+ "DELETE FROM " . self::TABLE_GROUP_ROLE_ASSIGNMENTS . " WHERE user=:user AND `group`=:group AND role=:role"
+ );
+
+ $stmt->bindParam(":user", $uid);
+ $stmt->bindParam(":group", $gid);
+ $stmt->bindParam(":role", $role);
+
+ $stmt->execute();
+ }
+
+ public function getGroupTypes()
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_TYPES . " WHERE can_request=1"
+ );
+
+ $stmt->execute();
+
+ $types = array();
+ foreach ($stmt->fetchAll() as $row) {
+ $types[] = array(
+ "slug" => $row['slug'],
+ "name" => $row['name'],
+ "time_limited" => $row['time_limited'],
+ "prefix" => $row['prefix'],
+ "isNameable" => $row['isNameable'],
+ "exclusiveOwner" => $row['exclusiveOwner']
+ );
+ }
+
+ return $types;
+ }
+
+ public function addGroupRequest($requestor, $group_type, $group_name, $start_date, $end_date)
+ {
+ $stmt = $this->conn->prepare(
+ "INSERT INTO " . self::TABLE_GROUP_REQUESTS . " (requestor, group_type, group_name, start_date, end_date)
+ VALUES (:requestor, :group_type, :group_name, :start_date, :end_date)"
+ );
+
+ $stmt->bindParam(":requestor", $requestor);
+ $stmt->bindParam(":group_type", $group_type);
+ $stmt->bindParam(":group_name", $group_name);
+ $stmt->bindParam(":start_date", $start_date);
+ $stmt->bindParam(":end_date", $end_date);
+
+ $stmt->execute();
+ }
+
+ public function getPendingGroupRequests($user)
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_REQUESTS . " WHERE requestor=:requestor"
+ );
+
+ $stmt->bindParam(":requestor", $user);
+
+ $stmt->execute();
+
+ $requests = array();
+ foreach ($stmt->fetchAll() as $row) {
+ $requests[] = array(
+ "id" => $row['id'],
+ "group_type" => $row['group_type'],
+ "group_name" => $row['group_name'],
+ "requested_on" => $row['requested_on']
+ );
+ }
+
+ return $requests;
+ }
+
+ public function getGroupRequests()
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_REQUESTS
+ );
+
+ $stmt->execute();
+
+ $requests = array();
+ foreach ($stmt->fetchAll() as $row) {
+ $requests[] = array(
+ "id" => $row['id'],
+ "requestor" => $row['requestor'],
+ "group_type" => $row['group_type'],
+ "group_name" => $row['group_name'],
+ "requested_on" => $row['requested_on'],
+ "start_date" => $row['start_date'],
+ "end_date" => $row['end_date']
+ );
+ }
+
+ return $requests;
+ }
+
+ public function removeGroupRequest($user)
+ {
+ $stmt = $this->conn->prepare(
+ "DELETE FROM " . self::TABLE_GROUP_REQUESTS . " WHERE requestor=:requestor"
+ );
+
+ $stmt->bindParam(":requestor", $user);
+
+ $stmt->execute();
+ }
+
+ public function getRequestor($group)
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_REQUESTS . " WHERE group_name=:group_name"
+ );
+
+ $stmt->bindParam(":group_name", $group);
+
+ $stmt->execute();
+
+ $row = $stmt->fetch();
+
+ return $row['requestor'];
+ }
+
+ public function groupRequestExists($user)
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_REQUESTS . " WHERE requestor=:requestor"
+ );
+
+ $stmt->bindParam(":requestor", $user);
+
+ $stmt->execute();
+
+ return count($stmt->fetchAll()) > 0;
+ }
+
+ public function addJoinRequest($requestor, $group_uid)
+ {
+ $stmt = $this->conn->prepare(
+ "INSERT INTO " . self::TABLE_GROUP_JOIN_REQUESTS . " (requestor, group_name) VALUES (:requestor, :group)"
+ );
+
+ $stmt->bindParam(":requestor", $requestor);
+ $stmt->bindParam(":group", $group_uid);
+
+ $stmt->execute();
+ }
+
+ public function removeJoinRequest($requestor, $group_uid)
+ {
+ $stmt = $this->conn->prepare(
+ "DELETE FROM " . self::TABLE_GROUP_JOIN_REQUESTS . " WHERE requestor=:requestor AND group_name=:group_name"
+ );
+
+ $stmt->bindParam(":requestor", $requestor);
+ $stmt->bindParam(":group_name", $group_uid);
+
+ $stmt->execute();
+ }
+
+ public function removeJoinRequests($group_uid)
+ {
+ $stmt = $this->conn->prepare(
+ "DELETE FROM " . self::TABLE_GROUP_JOIN_REQUESTS . " WHERE group_name=:group_name"
+ );
+
+ $stmt->bindParam(":group_name", $group_uid);
+
+ $stmt->execute();
+ }
+
+ public function getJoinRequests($group_uid)
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_JOIN_REQUESTS . " WHERE group_name=:group_name"
+ );
+
+ $stmt->bindParam(":group_name", $group_uid);
+
+ $stmt->execute();
+
+ $requests = array();
+ foreach ($stmt->fetchAll() as $row) {
+ $requests[] = array(
+ "requestor" => $row['requestor'],
+ "requested_on" => $row['requested_on']
+ );
+ }
+
+ return $requests;
+ }
+
+ public function getJoinRequestsByUser($user)
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_JOIN_REQUESTS . " WHERE requestor=:requestor"
+ );
+
+ $stmt->bindParam(":requestor", $user);
+
+ $stmt->execute();
+
+ $requests = array();
+ foreach ($stmt->fetchAll() as $row) {
+ $requests[] = array(
+ "group_name" => $row['group_name'],
+ "requested_on" => $row['requested_on']
+ );
+ }
+
+ return $requests;
+ }
+
+ public function cancelJoinRequest($user, $group_uid)
+ {
+ $stmt = $this->conn->prepare(
+ "DELETE FROM " . self::TABLE_GROUP_JOIN_REQUESTS . " WHERE requestor=:requestor AND group_name=:group_name"
+ );
+
+ $stmt->bindParam(":requestor", $user);
+ $stmt->bindParam(":group_name", $group_uid);
+
+ $stmt->execute();
+ }
+
+ public function assignSuperRole($user, $group_type, $group_uid)
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT defSuperRole FROM " . self::TABLE_GROUP_TYPES . " WHERE slug=:slug"
+ );
+
+ $stmt->bindParam(":slug", $group_type);
+
+ $stmt->execute();
+
+ $row = $stmt->fetch();
+
+ $this->assignRole($row['defSuperRole'], $user, $group_uid);
+ }
+
+ public function getGroupAdmins($group_uid, $users)
+ {
+ $admins = array();
+ foreach ($users as $user) {
+ $role = $this->getRole($user, $group_uid);
+ if ($this->hasPerm($role, "unity.admin")) {
+ $admins[] = $user;
+ }
+ }
+ return $admins;
+ }
+
+ public function assignDefRole($user, $group_type, $group_uid)
+ {
+ // get the defRole property from the group types table using the $group as slug. then assign the user that role.
+ $stmt = $this->conn->prepare(
+ "SELECT def_role FROM " . self::TABLE_GROUP_TYPES . " WHERE slug=:slug"
+ );
+
+ $stmt->bindParam(":slug", $group_type);
+
+ $stmt->execute();
+
+ $row = $stmt->fetch();
+
+ $this->assignRole($row['def_role'], $user, $group_uid);
+ }
+
+ public function PIRequestExists($user)
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_REQUESTS . " WHERE requestor=:requestor AND group_type='pi'"
+ );
+
+ $stmt->bindParam(":requestor", $user);
+
+ $stmt->execute();
+
+ return count($stmt->fetchAll()) > 0;
+ }
+
+ public function getGroupType($prefix)
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_TYPES . " WHERE prefix=:prefix"
+ );
+
+ $stmt->bindParam(":prefix", $prefix);
+
+ $stmt->execute();
+
+ $row = $stmt->fetch();
+
+ return $row['slug'] ?? null;
+ }
+
+ public function setGroupAttributes($group_id, $user)
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_REQUESTS . " WHERE requestor=:requestor"
+ );
+
+ $stmt->bindParam(":requestor", $user);
+
+ $stmt->execute();
+
+ $row = $stmt->fetch();
+ $group_type = $row['group_type'];
+ $start_date = $row['start_date'];
+ $end_date = $row['end_date'];
+
+ $stmt = $this->conn->prepare(
+ "INSERT INTO " . self::TABLE_GROUP_ATTRIBUTES . " (group_id, group_type, start_date, end_date)
+ VALUES (:group_id, :group_type, :start_date, :end_date)"
+ );
+
+ $stmt->bindParam(":group_id", $group_id);
+ $stmt->bindParam(":group_type", $group_type);
+ $stmt->bindParam(":start_date", $start_date);
+ $stmt->bindParam(":end_date", $end_date);
+
+ $stmt->execute();
+ }
+
+ public function modifyGroupAttribute($group_id, $attribute, $value)
+ {
+ $stmt = $this->conn->prepare(
+ "UPDATE " . self::TABLE_GROUP_ATTRIBUTES . " SET " . $attribute . "=:value WHERE group_id=:group_id"
+ );
+
+ $stmt->bindParam(":group_id", $group_id);
+ $stmt->bindParam(":value", $value);
+
+ $stmt->execute();
+ }
+
+ public function getGroupAttribute($group_id, $attribute)
+ {
+ $stmt = $this->conn->prepare(
+ "SELECT * FROM " . self::TABLE_GROUP_ATTRIBUTES . " WHERE `group_id`=:group_id"
+ );
+
+ $stmt->bindParam(":group_id", $group_id);
+
+ $stmt->execute();
+
+ $row = $stmt->fetch();
+
+ return $row[$attribute] ?? null;
+ }
}
diff --git a/resources/lib/UnityUser.php b/resources/lib/UnityUser.php
index 4f88eac6..d0f90e97 100644
--- a/resources/lib/UnityUser.php
+++ b/resources/lib/UnityUser.php
@@ -572,13 +572,24 @@ public function isAdmin()
*/
public function isPI()
{
- return $this->getPIGroup()->exists();
+ $groups = $this->getGroups();
+ foreach ($groups as $group) {
+ if ($group->getGroupType() == "pi") {
+ $admins = $group->getGroupAdmins();
+ foreach ($admins as $admin) {
+ if ($admin->getUID() == $this->getUID()) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
}
- public function getPIGroup()
+ public function getGroup()
{
return new UnityGroup(
- UnityGroup::getPIUIDfromUID($this->uid),
+ UnityGroup::getGroupUIDfromUID($this->uid),
$this->LDAP,
$this->SQL,
$this->MAILER,
@@ -627,14 +638,14 @@ public function getGroups($ignorecache = false)
}
}
- $all_pi_groups = $this->LDAP->getAllPIGroups($this->SQL, $this->MAILER, $this->REDIS, $ignorecache);
+ $all_unity_groups = $this->LDAP->getAllUnityGroups($this->SQL, $this->MAILER, $this->REDIS, $ignorecache);
$cache_arr = array();
- foreach ($all_pi_groups as $pi_group) {
- if (in_array($this->getUID(), $pi_group->getGroupMemberUIDs())) {
- array_push($out, $pi_group);
- array_push($cache_arr, $pi_group->getPIUID());
+ foreach ($all_unity_groups as $unity_group) {
+ if (in_array($this->getUID(), $unity_group->getGroupMemberUIDs())) {
+ array_push($out, $unity_group);
+ array_push($cache_arr, $unity_group->getGroupUID());
}
}
@@ -696,4 +707,73 @@ public function isInGroup($uid, $group)
return in_array($uid, $group_checked->getGroupMemberUIDs());
}
+
+ public function getGroupRoles($group_uid)
+ {
+ $uid = $this->getUID();
+ $roles = $this->SQL->getGroupRoleAssignments($uid, $group_uid);
+ if (count($roles) == 0) {
+ $group_type = $this->LDAP->getGroupType($group_uid);
+ $def_role = $this->SQL->getDefaultRole($group_type);
+ $roles = array($def_role);
+ }
+
+ $role_names = array();
+ foreach ($roles as $role) {
+ $role_names[] = $this->SQL->getRoleName($role);
+ }
+
+ return $role_names;
+ }
+
+ public function hasPermission($group_uid, $permission)
+ {
+ $uid = $this->getUID();
+ $roles = $this->SQL->getGroupRoleAssignments($uid, $group_uid);
+ if (count($roles) == 0) {
+ $group_type = $this->LDAP->getGroupType($group_uid);
+ $def_role = $this->SQL->getDefaultRole($group_type);
+ $roles = array($def_role);
+ }
+
+ $permissions = $this->SQL->getPermissions($roles);
+ $bool = in_array($permission, $permissions);
+
+ if (in_array("unity.admin", $permissions) || in_array("unity.admin_no_grant", $permissions)) {
+ $bool = true;
+ }
+
+ return $bool;
+ }
+
+ public function getRequestableGroupTypes()
+ {
+ return $this->SQL->getGroupTypes();
+ }
+
+ public function checkGroupName($group_name)
+ {
+ $groups = $this->LDAP->getAllUnityGroups($this->SQL, $this->MAILER, $this->REDIS, $this->WEBHOOK);
+ foreach ($groups as $group) {
+ if ($group->getGroupName() == $group_name) {
+ return "not available";
+ }
+ }
+ return "available";
+ }
+
+ public function getPendingGroupRequests()
+ {
+ return $this->SQL->getPendingGroupRequests($this->getUID());
+ }
+
+ public function getTypeNameFromSlug($types, $slug)
+ {
+ foreach ($types as $type) {
+ if ($type['slug'] == $slug) {
+ return $type['name'];
+ }
+ }
+ return null;
+ }
}
diff --git a/resources/mail/group_request_admin.php b/resources/mail/group_request_admin.php
index ab987a03..90a71cf8 100644
--- a/resources/mail/group_request_admin.php
+++ b/resources/mail/group_request_admin.php
@@ -18,4 +18,4 @@
Email
-You can approve this account here .
\ No newline at end of file
+You can approve this account here .
\ No newline at end of file
diff --git a/resources/mail/group_user_request_owner.php b/resources/mail/group_user_request_owner.php
index a6bc53b8..5b14ea72 100644
--- a/resources/mail/group_user_request_owner.php
+++ b/resources/mail/group_user_request_owner.php
@@ -6,7 +6,7 @@
Hello,
-A user has requested to join your PI group, . The details of the user are below:
+A user has requested to join your group, . The details of the user are below:
Username
@@ -19,4 +19,7 @@
You can approve or deny this user on the
- my users page
\ No newline at end of file
+ ">
+ group details
+ page
+
\ No newline at end of file
diff --git a/resources/templates/header.php b/resources/templates/header.php
index ac765663..2b0d49fb 100644
--- a/resources/templates/header.php
+++ b/resources/templates/header.php
@@ -64,12 +64,14 @@
// Menu Items for Present Users
echo "Support ";
echo "Account Settings ";
- echo "My PIs ";
+ echo "My Groups ";
+ echo "Request New Group ";
- if (isset($_SESSION["is_pi"]) && $_SESSION["is_pi"]) {
- // PI only pages
- echo "My Users ";
- }
+
+ // if (isset($_SESSION["is_pi"]) && $_SESSION["is_pi"]) {
+ // // PI only pages
+ // echo "My Users ";
+ // }
// additional branding items
$num_additional_items = count($CONFIG["menuitems_secure"]["labels"]);
@@ -83,7 +85,7 @@
echo " ";
// Admin only pages
echo "User Management ";
- echo "PI Management ";
+ echo "Group Management ";
echo "Cluster Notices ";
echo "Content Management ";
}
diff --git a/tools/docker-dev/identity/bootstrap.ldif b/tools/docker-dev/identity/bootstrap.ldif
index 962fc9e7..56c65bac 100644
--- a/tools/docker-dev/identity/bootstrap.ldif
+++ b/tools/docker-dev/identity/bootstrap.ldif
@@ -9262,12 +9262,12 @@ memberuid: user494_org8_test
objectclass: posixGroup
objectclass: top
-dn: ou=pi_groups,dc=unityhpc,dc=test
+dn: ou=unity_groups,dc=unityhpc,dc=test
objectclass: organizationalUnit
objectclass: top
-ou: pi_groups
+ou: unity_groups
-dn: cn=pi_user36_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user36_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user36_org2_test
gidnumber: 10206
memberuid: user36_org2_test
@@ -9275,7 +9275,7 @@ memberuid: user912_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user42_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user42_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user42_org1_test
gidnumber: 10264
memberuid: user42_org1_test
@@ -9347,14 +9347,14 @@ memberuid: user1177_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user45_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user45_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user45_org1_test
gidnumber: 10243
memberuid: user45_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user51_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user51_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user51_org3_test
gidnumber: 10222
memberuid: user51_org3_test
@@ -9362,7 +9362,7 @@ memberuid: user934_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user52_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user52_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user52_org1_test
gidnumber: 10151
memberuid: user52_org1_test
@@ -9380,7 +9380,7 @@ memberuid: user348_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user57_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user57_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user57_org2_test
gidnumber: 10132
memberuid: user57_org2_test
@@ -9388,14 +9388,14 @@ memberuid: user67_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user66_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user66_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user66_org2_test
gidnumber: 10199
memberuid: user66_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user70_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user70_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user70_org1_test
gidnumber: 10082
memberuid: user70_org1_test
@@ -9409,7 +9409,7 @@ memberuid: user41_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user72_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user72_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user72_org3_test
gidnumber: 10223
memberuid: user72_org3_test
@@ -9417,7 +9417,7 @@ memberuid: user1223_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user78_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user78_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user78_org1_test
gidnumber: 10157
memberuid: user78_org1_test
@@ -9425,14 +9425,14 @@ memberuid: user526_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user93_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user93_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user93_org1_test
gidnumber: 10101
memberuid: user93_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user94_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user94_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user94_org1_test
gidnumber: 10088
memberuid: user94_org1_test
@@ -9447,7 +9447,7 @@ memberuid: user1196_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user113_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user113_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user113_org1_test
gidnumber: 10099
memberuid: user113_org1_test
@@ -9455,7 +9455,7 @@ memberuid: user272_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user126_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user126_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user126_org2_test
gidnumber: 10077
memberuid: user126_org2_test
@@ -9467,7 +9467,7 @@ memberuid: user839_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user130_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user130_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user130_org1_test
gidnumber: 10008
memberuid: user130_org1_test
@@ -9479,7 +9479,7 @@ memberuid: user734_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user135_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user135_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user135_org1_test
gidnumber: 10063
memberuid: user135_org1_test
@@ -9488,7 +9488,7 @@ memberuid: user574_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user138_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user138_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user138_org3_test
gidnumber: 10116
memberuid: user138_org3_test
@@ -9499,7 +9499,7 @@ memberuid: user850_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user149_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user149_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user149_org1_test
gidnumber: 10071
memberuid: user149_org1_test
@@ -9507,7 +9507,7 @@ memberuid: user263_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user150_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user150_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user150_org1_test
gidnumber: 10254
memberuid: user150_org1_test
@@ -9516,14 +9516,14 @@ memberuid: user208_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user162_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user162_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user162_org1_test
gidnumber: 10228
memberuid: user162_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user163_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user163_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user163_org1_test
gidnumber: 10179
memberuid: user163_org1_test
@@ -9532,14 +9532,14 @@ memberuid: user749_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user166_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user166_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user166_org2_test
gidnumber: 10165
memberuid: user166_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user167_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user167_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user167_org1_test
gidnumber: 10009
memberuid: user167_org1_test
@@ -9548,14 +9548,14 @@ memberuid: user690_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user176_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user176_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user176_org2_test
gidnumber: 10216
memberuid: user176_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user181_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user181_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user181_org1_test
gidnumber: 10245
memberuid: user181_org1_test
@@ -9563,7 +9563,7 @@ memberuid: user909_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user182_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user182_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user182_org1_test
gidnumber: 10150
memberuid: user182_org1_test
@@ -9572,7 +9572,7 @@ memberuid: user529_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user187_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user187_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user187_org1_test
gidnumber: 10103
memberuid: user187_org1_test
@@ -9583,14 +9583,14 @@ memberuid: user757_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user188_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user188_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user188_org1_test
gidnumber: 10143
memberuid: user188_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user190_org7_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user190_org7_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user190_org7_test
gidnumber: 10260
memberuid: user190_org7_test
@@ -9599,7 +9599,7 @@ memberuid: user1164_org7_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user191_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user191_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user191_org2_test
gidnumber: 10181
memberuid: user191_org2_test
@@ -9607,7 +9607,7 @@ memberuid: user1113_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user194_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user194_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user194_org1_test
gidnumber: 10079
memberuid: user194_org1_test
@@ -9625,14 +9625,14 @@ memberuid: user508_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user5_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user5_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user5_org2_test
gidnumber: 10135
memberuid: user5_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user197_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user197_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user197_org3_test
gidnumber: 10230
memberuid: user197_org3_test
@@ -9641,7 +9641,7 @@ memberuid: user748_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user198_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user198_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user198_org1_test
gidnumber: 10154
memberuid: user198_org1_test
@@ -9653,7 +9653,7 @@ memberuid: user317_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user200_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user200_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user200_org2_test
gidnumber: 10275
memberuid: user200_org2_test
@@ -9661,21 +9661,21 @@ memberuid: user662_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user201_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user201_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user201_org1_test
gidnumber: 10010
memberuid: user201_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user205_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user205_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user205_org1_test
gidnumber: 10274
memberuid: user205_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user206_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user206_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user206_org1_test
gidnumber: 10048
memberuid: user206_org1_test
@@ -9687,14 +9687,14 @@ memberuid: user772_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user207_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user207_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user207_org1_test
gidnumber: 10220
memberuid: user207_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user212_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user212_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user212_org1_test
gidnumber: 10074
memberuid: user212_org1_test
@@ -9708,14 +9708,14 @@ memberuid: user894_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user214_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user214_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user214_org1_test
gidnumber: 10145
memberuid: user214_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user216_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user216_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user216_org1_test
gidnumber: 10005
memberuid: user216_org1_test
@@ -9730,7 +9730,7 @@ memberuid: user472_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user219_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user219_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user219_org1_test
gidnumber: 10012
memberuid: user219_org1_test
@@ -9741,14 +9741,14 @@ memberuid: user364_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user226_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user226_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user226_org3_test
gidnumber: 10164
memberuid: user226_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user9_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user9_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user9_org3_test
gidnumber: 10094
memberuid: user9_org3_test
@@ -9756,14 +9756,14 @@ memberuid: user33_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user242_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user242_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user242_org1_test
gidnumber: 10052
memberuid: user242_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user247_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user247_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user247_org1_test
gidnumber: 10126
memberuid: user247_org1_test
@@ -9771,7 +9771,7 @@ memberuid: user178_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user252_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user252_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user252_org1_test
gidnumber: 10261
memberuid: user252_org1_test
@@ -9782,14 +9782,14 @@ memberuid: user918_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user253_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user253_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user253_org1_test
gidnumber: 10013
memberuid: user253_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user256_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user256_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user256_org1_test
gidnumber: 10006
memberuid: user256_org1_test
@@ -9813,14 +9813,14 @@ memberuid: user280_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user264_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user264_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user264_org1_test
gidnumber: 10073
memberuid: user264_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user266_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user266_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user266_org1_test
gidnumber: 10162
memberuid: user266_org1_test
@@ -9828,21 +9828,21 @@ memberuid: user111_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user268_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user268_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user268_org1_test
gidnumber: 10239
memberuid: user268_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user274_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user274_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user274_org2_test
gidnumber: 10283
memberuid: user274_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user277_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user277_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user277_org1_test
gidnumber: 10014
memberuid: user277_org1_test
@@ -9853,7 +9853,7 @@ memberuid: user217_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user278_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user278_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user278_org3_test
gidnumber: 10180
memberuid: user278_org3_test
@@ -9861,14 +9861,14 @@ memberuid: user20_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user288_org7_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user288_org7_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user288_org7_test
gidnumber: 10234
memberuid: user288_org7_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user291_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user291_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user291_org1_test
gidnumber: 10201
memberuid: user291_org1_test
@@ -9878,21 +9878,21 @@ memberuid: user441_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user292_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user292_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user292_org2_test
gidnumber: 10229
memberuid: user292_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user295_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user295_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user295_org3_test
gidnumber: 10277
memberuid: user295_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user303_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user303_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user303_org1_test
gidnumber: 10209
memberuid: user303_org1_test
@@ -9901,14 +9901,14 @@ memberuid: user389_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user304_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user304_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user304_org1_test
gidnumber: 10248
memberuid: user304_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user309_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user309_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user309_org1_test
gidnumber: 10015
memberuid: user309_org1_test
@@ -9919,7 +9919,7 @@ memberuid: user447_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user312_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user312_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user312_org1_test
gidnumber: 10155
memberuid: user312_org1_test
@@ -9929,7 +9929,7 @@ memberuid: user556_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user315_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user315_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user315_org2_test
gidnumber: 10112
memberuid: user315_org2_test
@@ -9938,7 +9938,7 @@ memberuid: user866_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user326_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user326_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user326_org3_test
gidnumber: 10173
memberuid: user326_org3_test
@@ -9946,7 +9946,7 @@ memberuid: user883_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user329_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user329_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user329_org1_test
gidnumber: 10136
memberuid: user329_org1_test
@@ -9955,14 +9955,14 @@ memberuid: user148_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user331_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user331_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user331_org1_test
gidnumber: 10227
memberuid: user331_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user336_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user336_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user336_org1_test
gidnumber: 10137
memberuid: user336_org1_test
@@ -9970,7 +9970,7 @@ memberuid: user478_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user338_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user338_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user338_org1_test
gidnumber: 10267
memberuid: user338_org1_test
@@ -9978,7 +9978,7 @@ memberuid: user1149_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user342_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user342_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user342_org1_test
gidnumber: 10090
memberuid: user342_org1_test
@@ -9992,7 +9992,7 @@ memberuid: user535_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user345_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user345_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user345_org1_test
gidnumber: 10186
memberuid: user345_org1_test
@@ -10000,14 +10000,14 @@ memberuid: user1084_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user346_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user346_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user346_org2_test
gidnumber: 10246
memberuid: user346_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user347_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user347_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user347_org2_test
gidnumber: 10081
memberuid: user347_org2_test
@@ -10015,14 +10015,14 @@ memberuid: user24_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user354_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user354_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user354_org1_test
gidnumber: 10016
memberuid: user354_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user371_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user371_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user371_org1_test
gidnumber: 10066
memberuid: user371_org1_test
@@ -10036,14 +10036,14 @@ memberuid: user1024_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user372_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user372_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user372_org1_test
gidnumber: 10053
memberuid: user372_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user373_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user373_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user373_org1_test
gidnumber: 10065
memberuid: user373_org1_test
@@ -10056,7 +10056,7 @@ memberuid: user1286_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user382_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user382_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user382_org1_test
gidnumber: 10219
memberuid: user382_org1_test
@@ -10064,14 +10064,14 @@ memberuid: user590_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user386_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user386_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user386_org1_test
gidnumber: 10197
memberuid: user386_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user391_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user391_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user391_org1_test
gidnumber: 10098
memberuid: user391_org1_test
@@ -10080,14 +10080,14 @@ memberuid: user874_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user393_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user393_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user393_org1_test
gidnumber: 10017
memberuid: user393_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user395_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user395_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user395_org1_test
gidnumber: 10122
memberuid: user395_org1_test
@@ -10095,7 +10095,7 @@ memberuid: user993_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user398_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user398_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user398_org1_test
gidnumber: 10169
memberuid: user398_org1_test
@@ -10103,7 +10103,7 @@ memberuid: user394_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user400_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user400_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user400_org1_test
gidnumber: 10170
memberuid: user400_org1_test
@@ -10113,7 +10113,7 @@ memberuid: user653_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user404_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user404_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user404_org3_test
gidnumber: 10152
memberuid: user404_org3_test
@@ -10121,14 +10121,14 @@ memberuid: user145_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user407_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user407_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user407_org1_test
gidnumber: 10238
memberuid: user407_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user415_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user415_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user415_org3_test
gidnumber: 10002
memberuid: user415_org3_test
@@ -10138,7 +10138,7 @@ memberuid: user333_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user416_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user416_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user416_org1_test
gidnumber: 10279
memberuid: user416_org1_test
@@ -10146,7 +10146,7 @@ memberuid: user952_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user420_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user420_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user420_org1_test
gidnumber: 10147
memberuid: user420_org1_test
@@ -10154,7 +10154,7 @@ memberuid: user977_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user423_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user423_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user423_org1_test
gidnumber: 10252
memberuid: user423_org1_test
@@ -10162,14 +10162,14 @@ memberuid: user1211_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user424_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user424_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user424_org3_test
gidnumber: 10011
memberuid: user424_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user424_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user424_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user424_org2_test
gidnumber: 10040
memberuid: user424_org2_test
@@ -10184,7 +10184,7 @@ memberuid: user1002_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user426_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user426_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user426_org3_test
gidnumber: 10177
memberuid: user426_org3_test
@@ -10194,7 +10194,7 @@ memberuid: user202_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user432_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user432_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user432_org2_test
gidnumber: 10212
memberuid: user432_org2_test
@@ -10202,7 +10202,7 @@ memberuid: user595_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user433_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user433_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user433_org1_test
gidnumber: 10156
memberuid: user433_org1_test
@@ -10210,14 +10210,14 @@ memberuid: user209_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user436_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user436_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user436_org2_test
gidnumber: 10236
memberuid: user436_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user438_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user438_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user438_org1_test
gidnumber: 10001
memberuid: user341_org1_test
@@ -10232,7 +10232,7 @@ memberuid: user661_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user439_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user439_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user439_org2_test
gidnumber: 10205
memberuid: user439_org2_test
@@ -10242,7 +10242,7 @@ memberuid: user1133_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user440_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user440_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user440_org1_test
gidnumber: 10060
memberuid: user440_org1_test
@@ -10252,7 +10252,7 @@ memberuid: user146_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user442_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user442_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user442_org1_test
gidnumber: 10263
memberuid: user442_org1_test
@@ -10261,7 +10261,7 @@ memberuid: user1053_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user446_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user446_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user446_org1_test
gidnumber: 10047
memberuid: user446_org1_test
@@ -10282,7 +10282,7 @@ memberuid: user240_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user452_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user452_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user452_org1_test
gidnumber: 10003
memberuid: user452_org1_test
@@ -10291,7 +10291,7 @@ memberuid: user746_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user453_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user453_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user453_org1_test
gidnumber: 10118
memberuid: user453_org1_test
@@ -10300,7 +10300,7 @@ memberuid: user555_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user458_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user458_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user458_org1_test
gidnumber: 10089
memberuid: user458_org1_test
@@ -10315,7 +10315,7 @@ memberuid: user910_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user460_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user460_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user460_org1_test
gidnumber: 10172
memberuid: user460_org1_test
@@ -10323,14 +10323,14 @@ memberuid: user172_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user466_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user466_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user466_org2_test
gidnumber: 10166
memberuid: user466_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user467_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user467_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user467_org2_test
gidnumber: 10129
memberuid: user467_org2_test
@@ -10339,7 +10339,7 @@ memberuid: user259_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user480_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user480_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user480_org1_test
gidnumber: 10168
memberuid: user480_org1_test
@@ -10347,7 +10347,7 @@ memberuid: user900_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user483_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user483_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user483_org1_test
gidnumber: 10141
memberuid: user483_org1_test
@@ -10385,7 +10385,7 @@ memberuid: user1061_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user487_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user487_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user487_org2_test
gidnumber: 10194
memberuid: user487_org2_test
@@ -10401,7 +10401,7 @@ memberuid: user648_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user496_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user496_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user496_org1_test
gidnumber: 10087
memberuid: user496_org1_test
@@ -10432,7 +10432,7 @@ memberuid: user557_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user500_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user500_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user500_org1_test
gidnumber: 10093
memberuid: user500_org1_test
@@ -10455,7 +10455,7 @@ memberuid: user953_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user502_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user502_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user502_org1_test
gidnumber: 10203
memberuid: user502_org1_test
@@ -10465,7 +10465,7 @@ memberuid: user82_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user507_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user507_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user507_org2_test
gidnumber: 10110
memberuid: user507_org2_test
@@ -10479,14 +10479,14 @@ memberuid: user5_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user513_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user513_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user513_org1_test
gidnumber: 10108
memberuid: user513_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user517_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user517_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user517_org1_test
gidnumber: 10251
memberuid: user517_org1_test
@@ -10495,14 +10495,14 @@ memberuid: user616_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user519_org7_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user519_org7_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user519_org7_test
gidnumber: 10259
memberuid: user519_org7_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user528_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user528_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user528_org1_test
gidnumber: 10104
memberuid: user528_org1_test
@@ -10510,7 +10510,7 @@ memberuid: user799_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user530_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user530_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user530_org1_test
gidnumber: 10095
memberuid: user530_org1_test
@@ -10521,14 +10521,14 @@ memberuid: user402_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user532_org7_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user532_org7_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user532_org7_test
gidnumber: 10174
memberuid: user532_org7_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user534_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user534_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user534_org1_test
gidnumber: 10085
memberuid: user534_org1_test
@@ -10540,7 +10540,7 @@ memberuid: user896_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user543_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user543_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user543_org1_test
gidnumber: 10111
memberuid: user543_org1_test
@@ -10601,7 +10601,7 @@ memberuid: user960_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1_org1_test
gidnumber: 10000
memberuid: user4_org1_test
@@ -10622,7 +10622,7 @@ memberuid: user697_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user546_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user546_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user546_org1_test
gidnumber: 10193
memberuid: user546_org1_test
@@ -10630,7 +10630,7 @@ memberuid: user103_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user550_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user550_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user550_org1_test
gidnumber: 10187
memberuid: user550_org1_test
@@ -10638,7 +10638,7 @@ memberuid: user1107_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user551_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user551_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user551_org1_test
gidnumber: 10019
memberuid: user551_org1_test
@@ -10651,14 +10651,14 @@ memberuid: user1023_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user554_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user554_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user554_org2_test
gidnumber: 10241
memberuid: user554_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user559_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user559_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user559_org1_test
gidnumber: 10004
memberuid: user559_org1_test
@@ -10666,7 +10666,7 @@ memberuid: user509_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user560_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user560_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user560_org1_test
gidnumber: 10057
memberuid: user560_org1_test
@@ -10675,7 +10675,7 @@ memberuid: user589_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user561_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user561_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user561_org1_test
gidnumber: 10054
memberuid: user561_org1_test
@@ -10684,14 +10684,14 @@ memberuid: user25_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user564_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user564_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user564_org1_test
gidnumber: 10123
memberuid: user564_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user565_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user565_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user565_org1_test
gidnumber: 10018
memberuid: user565_org1_test
@@ -10724,7 +10724,7 @@ memberuid: user1167_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user569_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user569_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user569_org1_test
gidnumber: 10106
memberuid: user569_org1_test
@@ -10740,7 +10740,7 @@ memberuid: user143_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user575_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user575_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user575_org1_test
gidnumber: 10092
memberuid: user575_org1_test
@@ -10748,28 +10748,28 @@ memberuid: user863_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user580_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user580_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user580_org1_test
gidnumber: 10119
memberuid: user580_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user582_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user582_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user582_org1_test
gidnumber: 10051
memberuid: user582_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user586_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user586_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user586_org1_test
gidnumber: 10020
memberuid: user586_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user591_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user591_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user591_org1_test
gidnumber: 10139
memberuid: user591_org1_test
@@ -10780,7 +10780,7 @@ memberuid: user281_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user592_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user592_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user592_org2_test
gidnumber: 10235
memberuid: user592_org2_test
@@ -10788,7 +10788,7 @@ memberuid: user410_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user601_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user601_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user601_org1_test
gidnumber: 10080
memberuid: user601_org1_test
@@ -10810,14 +10810,14 @@ memberuid: user1147_org9_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user608_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user608_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user608_org1_test
gidnumber: 10070
memberuid: user608_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user615_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user615_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user615_org1_test
gidnumber: 10021
memberuid: user615_org1_test
@@ -10829,21 +10829,21 @@ memberuid: user838_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user626_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user626_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user626_org1_test
gidnumber: 10107
memberuid: user626_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user635_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user635_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user635_org1_test
gidnumber: 10175
memberuid: user635_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user636_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user636_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user636_org2_test
gidnumber: 10195
memberuid: user636_org2_test
@@ -10851,7 +10851,7 @@ memberuid: user694_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user641_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user641_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user641_org1_test
gidnumber: 10084
memberuid: user641_org1_test
@@ -10861,7 +10861,7 @@ memberuid: user409_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user647_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user647_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user647_org1_test
gidnumber: 10115
memberuid: user647_org1_test
@@ -10870,7 +10870,7 @@ memberuid: user800_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user656_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user656_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user656_org1_test
gidnumber: 10064
memberuid: user656_org1_test
@@ -10878,7 +10878,7 @@ memberuid: user80_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user659_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user659_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user659_org1_test
gidnumber: 10144
memberuid: user659_org1_test
@@ -10886,14 +10886,14 @@ memberuid: user265_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user663_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user663_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user663_org2_test
gidnumber: 10202
memberuid: user663_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user666_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user666_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user666_org1_test
gidnumber: 10125
memberuid: user666_org1_test
@@ -10904,7 +10904,7 @@ memberuid: user379_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user670_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user670_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user670_org1_test
gidnumber: 10062
memberuid: user670_org1_test
@@ -10912,7 +10912,7 @@ memberuid: user195_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user674_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user674_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user674_org1_test
gidnumber: 10217
memberuid: user674_org1_test
@@ -10920,7 +10920,7 @@ memberuid: user680_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user676_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user676_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user676_org1_test
gidnumber: 10058
memberuid: user676_org1_test
@@ -10932,7 +10932,7 @@ memberuid: user1085_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user677_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user677_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user677_org1_test
gidnumber: 10127
memberuid: user677_org1_test
@@ -10942,7 +10942,7 @@ memberuid: user484_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user681_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user681_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user681_org1_test
gidnumber: 10042
memberuid: user681_org1_test
@@ -10967,7 +10967,7 @@ memberuid: user267_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user688_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user688_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user688_org1_test
gidnumber: 10113
memberuid: user688_org1_test
@@ -10982,7 +10982,7 @@ memberuid: user618_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user695_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user695_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user695_org2_test
gidnumber: 10211
memberuid: user695_org2_test
@@ -10991,7 +10991,7 @@ memberuid: user541_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user699_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user699_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user699_org1_test
gidnumber: 10075
memberuid: user699_org1_test
@@ -11000,14 +11000,14 @@ memberuid: user44_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user703_org11_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user703_org11_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user703_org11_test
gidnumber: 10207
memberuid: user703_org11_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user714_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user714_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user714_org2_test
gidnumber: 10044
memberuid: user714_org2_test
@@ -11016,7 +11016,7 @@ memberuid: user538_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user717_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user717_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user717_org2_test
gidnumber: 10200
memberuid: user717_org2_test
@@ -11025,7 +11025,7 @@ memberuid: user929_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user720_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user720_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user720_org1_test
gidnumber: 10161
memberuid: user720_org1_test
@@ -11034,7 +11034,7 @@ memberuid: user470_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user722_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user722_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user722_org1_test
gidnumber: 10091
memberuid: user722_org1_test
@@ -11045,7 +11045,7 @@ memberuid: user88_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user724_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user724_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user724_org1_test
gidnumber: 10045
memberuid: user724_org1_test
@@ -11053,7 +11053,7 @@ memberuid: user864_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user725_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user725_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user725_org2_test
gidnumber: 10198
memberuid: user725_org2_test
@@ -11061,7 +11061,7 @@ memberuid: user876_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user727_org7_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user727_org7_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user727_org7_test
gidnumber: 10266
memberuid: user727_org7_test
@@ -11069,7 +11069,7 @@ memberuid: user1192_org7_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user730_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user730_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user730_org1_test
gidnumber: 10072
memberuid: user730_org1_test
@@ -11082,7 +11082,7 @@ memberuid: user451_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user733_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user733_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user733_org1_test
gidnumber: 10036
memberuid: user733_org1_test
@@ -11093,7 +11093,7 @@ memberuid: user951_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user736_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user736_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user736_org1_test
gidnumber: 10083
memberuid: user736_org1_test
@@ -11146,14 +11146,14 @@ memberuid: user109_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user737_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user737_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user737_org1_test
gidnumber: 10039
memberuid: user737_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user743_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user743_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user743_org1_test
gidnumber: 10069
memberuid: user743_org1_test
@@ -11162,7 +11162,7 @@ memberuid: user1098_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user744_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user744_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user744_org1_test
gidnumber: 10022
memberuid: user744_org1_test
@@ -11171,7 +11171,7 @@ memberuid: user787_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user751_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user751_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user751_org1_test
gidnumber: 10130
memberuid: user751_org1_test
@@ -11189,21 +11189,21 @@ memberuid: user1034_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user758_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user758_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user758_org1_test
gidnumber: 10278
memberuid: user758_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user764_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user764_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user764_org1_test
gidnumber: 10237
memberuid: user764_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user765_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user765_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user765_org1_test
gidnumber: 10067
memberuid: user765_org1_test
@@ -11224,7 +11224,7 @@ memberuid: user1157_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user777_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user777_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user777_org3_test
gidnumber: 10102
memberuid: user777_org3_test
@@ -11236,7 +11236,7 @@ memberuid: user766_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user782_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user782_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user782_org1_test
gidnumber: 10059
memberuid: user782_org1_test
@@ -11244,7 +11244,7 @@ memberuid: user1162_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user783_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user783_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user783_org1_test
gidnumber: 10167
memberuid: user783_org1_test
@@ -11253,7 +11253,7 @@ memberuid: user991_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user784_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user784_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user784_org1_test
gidnumber: 10281
memberuid: user784_org1_test
@@ -11261,7 +11261,7 @@ memberuid: user228_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user785_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user785_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user785_org1_test
gidnumber: 10023
memberuid: user785_org1_test
@@ -11273,7 +11273,7 @@ memberuid: user1256_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user786_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user786_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user786_org1_test
gidnumber: 10024
memberuid: user786_org1_test
@@ -11283,14 +11283,14 @@ memberuid: user942_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user788_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user788_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user788_org2_test
gidnumber: 10191
memberuid: user788_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user789_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user789_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user789_org3_test
gidnumber: 10007
memberuid: user789_org3_test
@@ -11303,14 +11303,14 @@ memberuid: user630_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user795_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user795_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user795_org1_test
gidnumber: 10178
memberuid: user795_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user796_org11_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user796_org11_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user796_org11_test
gidnumber: 10133
memberuid: user796_org11_test
@@ -11318,7 +11318,7 @@ memberuid: user710_org11_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user798_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user798_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user798_org1_test
gidnumber: 10035
memberuid: user798_org1_test
@@ -11326,14 +11326,14 @@ memberuid: user756_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user801_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user801_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user801_org1_test
gidnumber: 10271
memberuid: user801_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user803_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user803_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user803_org1_test
gidnumber: 10025
memberuid: user803_org1_test
@@ -11341,7 +11341,7 @@ memberuid: user1058_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user805_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user805_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user805_org3_test
gidnumber: 10242
memberuid: user805_org3_test
@@ -11351,14 +11351,14 @@ memberuid: user673_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user809_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user809_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user809_org2_test
gidnumber: 10190
memberuid: user809_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user817_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user817_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user817_org1_test
gidnumber: 10026
memberuid: user817_org1_test
@@ -11370,21 +11370,21 @@ memberuid: user504_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user830_org11_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user830_org11_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user830_org11_test
gidnumber: 10100
memberuid: user830_org11_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user832_org14_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user832_org14_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user832_org14_test
gidnumber: 10268
memberuid: user832_org14_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user833_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user833_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user833_org1_test
gidnumber: 10218
memberuid: user833_org1_test
@@ -11395,14 +11395,14 @@ memberuid: user763_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user834_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user834_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user834_org2_test
gidnumber: 10224
memberuid: user834_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user848_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user848_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user848_org1_test
gidnumber: 10225
memberuid: user848_org1_test
@@ -11410,14 +11410,14 @@ memberuid: user284_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user849_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user849_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user849_org1_test
gidnumber: 10160
memberuid: user849_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user857_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user857_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user857_org1_test
gidnumber: 10027
memberuid: user857_org1_test
@@ -11426,7 +11426,7 @@ memberuid: user708_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user859_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user859_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user859_org1_test
gidnumber: 10158
memberuid: user859_org1_test
@@ -11434,49 +11434,49 @@ memberuid: user96_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user865_org7_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user865_org7_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user865_org7_test
gidnumber: 10221
memberuid: user865_org7_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user868_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user868_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user868_org1_test
gidnumber: 10076
memberuid: user868_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user870_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user870_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user870_org3_test
gidnumber: 10233
memberuid: user870_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user872_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user872_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user872_org1_test
gidnumber: 10038
memberuid: user872_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user873_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user873_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user873_org2_test
gidnumber: 10142
memberuid: user873_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user875_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user875_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user875_org1_test
gidnumber: 10185
memberuid: user875_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user877_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user877_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user877_org1_test
gidnumber: 10028
memberuid: user877_org1_test
@@ -11496,21 +11496,21 @@ memberuid: user562_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user878_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user878_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user878_org2_test
gidnumber: 10214
memberuid: user878_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user879_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user879_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user879_org1_test
gidnumber: 10037
memberuid: user879_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user881_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user881_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user881_org1_test
gidnumber: 10086
memberuid: user881_org1_test
@@ -11519,7 +11519,7 @@ memberuid: user220_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user882_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user882_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user882_org1_test
gidnumber: 10215
memberuid: user882_org1_test
@@ -11528,7 +11528,7 @@ memberuid: user238_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user885_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user885_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user885_org1_test
gidnumber: 10029
memberuid: user885_org1_test
@@ -11537,28 +11537,28 @@ memberuid: user490_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user886_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user886_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user886_org1_test
gidnumber: 10121
memberuid: user886_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user890_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user890_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user890_org3_test
gidnumber: 10182
memberuid: user890_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user905_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user905_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user905_org1_test
gidnumber: 10272
memberuid: user905_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user915_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user915_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user915_org1_test
gidnumber: 10184
memberuid: user915_org1_test
@@ -11566,28 +11566,28 @@ memberuid: user431_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user917_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user917_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user917_org1_test
gidnumber: 10280
memberuid: user917_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user928_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user928_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user928_org1_test
gidnumber: 10050
memberuid: user928_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user931_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user931_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user931_org1_test
gidnumber: 10253
memberuid: user931_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user933_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user933_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user933_org2_test
gidnumber: 10153
memberuid: user933_org2_test
@@ -11597,7 +11597,7 @@ memberuid: user1050_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user935_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user935_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user935_org1_test
gidnumber: 10114
memberuid: user935_org1_test
@@ -11606,7 +11606,7 @@ memberuid: user115_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user936_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user936_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user936_org1_test
gidnumber: 10061
memberuid: user936_org1_test
@@ -11614,7 +11614,7 @@ memberuid: user831_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user937_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user937_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user937_org1_test
gidnumber: 10171
memberuid: user937_org1_test
@@ -11623,7 +11623,7 @@ memberuid: user356_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user938_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user938_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user938_org1_test
gidnumber: 10068
memberuid: user938_org1_test
@@ -11632,7 +11632,7 @@ memberuid: user1153_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user940_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user940_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user940_org3_test
gidnumber: 10183
memberuid: user940_org3_test
@@ -11641,7 +11641,7 @@ memberuid: user945_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user955_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user955_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user955_org2_test
gidnumber: 10105
memberuid: user955_org2_test
@@ -11651,7 +11651,7 @@ memberuid: user140_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user957_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user957_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user957_org1_test
gidnumber: 10247
memberuid: user957_org1_test
@@ -11662,7 +11662,7 @@ memberuid: user1174_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user962_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user962_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user962_org1_test
gidnumber: 10204
memberuid: user962_org1_test
@@ -11672,7 +11672,7 @@ memberuid: user624_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user967_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user967_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user967_org1_test
gidnumber: 10096
memberuid: user967_org1_test
@@ -11683,14 +11683,14 @@ memberuid: user1159_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user968_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user968_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user968_org2_test
gidnumber: 10120
memberuid: user968_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user975_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user975_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user975_org1_test
gidnumber: 10176
memberuid: user975_org1_test
@@ -11702,7 +11702,7 @@ memberuid: user218_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user979_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user979_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user979_org2_test
gidnumber: 10232
memberuid: user979_org2_test
@@ -11714,7 +11714,7 @@ memberuid: user985_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1005_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1005_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1005_org3_test
gidnumber: 10262
memberuid: user1005_org3_test
@@ -11722,7 +11722,7 @@ memberuid: user203_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1009_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1009_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1009_org1_test
gidnumber: 10034
memberuid: user1009_org1_test
@@ -11730,14 +11730,14 @@ memberuid: user474_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1018_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1018_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1018_org2_test
gidnumber: 10255
memberuid: user1018_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1019_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1019_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1019_org3_test
gidnumber: 10149
memberuid: user1019_org3_test
@@ -11747,7 +11747,7 @@ memberuid: user646_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1022_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1022_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1022_org3_test
gidnumber: 10163
memberuid: user1022_org3_test
@@ -11755,7 +11755,7 @@ memberuid: user159_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1028_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1028_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1028_org1_test
gidnumber: 10134
memberuid: user1028_org1_test
@@ -11766,7 +11766,7 @@ memberuid: user447_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1029_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1029_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1029_org1_test
gidnumber: 10148
memberuid: user1029_org1_test
@@ -11774,7 +11774,7 @@ memberuid: user903_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1033_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1033_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1033_org1_test
gidnumber: 10196
memberuid: user1033_org1_test
@@ -11785,14 +11785,14 @@ memberuid: user79_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1039_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1039_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1039_org1_test
gidnumber: 10256
memberuid: user1039_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1045_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1045_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1045_org1_test
gidnumber: 10030
memberuid: user1045_org1_test
@@ -11801,21 +11801,21 @@ memberuid: user1154_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1053_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1053_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1053_org1_test
gidnumber: 10258
memberuid: user1053_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1056_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1056_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1056_org2_test
gidnumber: 10270
memberuid: user1056_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1062_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1062_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1062_org1_test
gidnumber: 10097
memberuid: user1062_org1_test
@@ -11830,7 +11830,7 @@ memberuid: user1090_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1076_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1076_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1076_org1_test
gidnumber: 10276
memberuid: user1076_org1_test
@@ -11840,7 +11840,7 @@ memberuid: user494_org8_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1077_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1077_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1077_org2_test
gidnumber: 10131
memberuid: user1077_org2_test
@@ -11851,35 +11851,35 @@ memberuid: user525_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1079_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1079_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1079_org1_test
gidnumber: 10159
memberuid: user1079_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1082_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1082_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1082_org1_test
gidnumber: 10056
memberuid: user1082_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1101_org14_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1101_org14_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1101_org14_test
gidnumber: 10269
memberuid: user1101_org14_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1103_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1103_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1103_org2_test
gidnumber: 10240
memberuid: user1103_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1109_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1109_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1109_org2_test
gidnumber: 10192
memberuid: user1109_org2_test
@@ -11887,7 +11887,7 @@ memberuid: user520_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1110_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1110_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1110_org2_test
gidnumber: 10257
memberuid: user1110_org2_test
@@ -11895,7 +11895,7 @@ memberuid: user183_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1111_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1111_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1111_org1_test
gidnumber: 10138
memberuid: user1111_org1_test
@@ -11907,14 +11907,14 @@ memberuid: user671_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1118_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1118_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1118_org1_test
gidnumber: 10033
memberuid: user1118_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1123_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1123_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1123_org1_test
gidnumber: 10140
memberuid: user1123_org1_test
@@ -11928,7 +11928,7 @@ memberuid: user806_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user11_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user11_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user11_org1_test
gidnumber: 10031
memberuid: user11_org1_test
@@ -11942,14 +11942,14 @@ memberuid: user804_org12_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1128_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1128_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1128_org1_test
gidnumber: 10284
memberuid: user1128_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1129_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1129_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1129_org1_test
gidnumber: 10189
memberuid: user1129_org1_test
@@ -11957,14 +11957,14 @@ memberuid: user861_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1130_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1130_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1130_org1_test
gidnumber: 10117
memberuid: user1130_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1140_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1140_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1140_org1_test
gidnumber: 10078
memberuid: user1140_org1_test
@@ -11975,14 +11975,14 @@ memberuid: user76_org5_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user7_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user7_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user7_org1_test
gidnumber: 10124
memberuid: user7_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1165_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1165_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1165_org1_test
gidnumber: 10055
memberuid: user1165_org1_test
@@ -11991,14 +11991,14 @@ memberuid: user1299_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1171_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1171_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1171_org1_test
gidnumber: 10250
memberuid: user1171_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1175_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1175_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1175_org1_test
gidnumber: 10046
memberuid: user1175_org1_test
@@ -12009,7 +12009,7 @@ memberuid: user956_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1176_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1176_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1176_org1_test
gidnumber: 10188
memberuid: user1176_org1_test
@@ -12018,7 +12018,7 @@ memberuid: user314_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1182_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1182_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1182_org2_test
gidnumber: 10128
memberuid: user1182_org2_test
@@ -12026,28 +12026,28 @@ memberuid: user1189_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1185_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1185_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1185_org1_test
gidnumber: 10213
memberuid: user1185_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1187_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1187_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1187_org1_test
gidnumber: 10208
memberuid: user1187_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user13_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user13_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user13_org1_test
gidnumber: 10226
memberuid: user13_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1191_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1191_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1191_org2_test
gidnumber: 10231
memberuid: user1191_org2_test
@@ -12055,14 +12055,14 @@ memberuid: user594_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1201_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1201_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1201_org1_test
gidnumber: 10249
memberuid: user1201_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1227_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1227_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1227_org1_test
gidnumber: 10244
memberuid: user1227_org1_test
@@ -12070,7 +12070,7 @@ memberuid: user260_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1233_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1233_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1233_org1_test
gidnumber: 10273
memberuid: user1233_org1_test
@@ -12078,14 +12078,14 @@ memberuid: user465_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1234_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1234_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1234_org1_test
gidnumber: 10282
memberuid: user1234_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1235_org3_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1235_org3_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1235_org3_test
gidnumber: 10041
memberuid: user1235_org3_test
@@ -12094,7 +12094,7 @@ memberuid: user313_org3_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1246_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1246_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1246_org2_test
gidnumber: 10049
memberuid: user1246_org2_test
@@ -12111,14 +12111,14 @@ memberuid: user69_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1255_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1255_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1255_org1_test
gidnumber: 10146
memberuid: user1255_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1260_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1260_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1260_org2_test
gidnumber: 10043
memberuid: user1260_org2_test
@@ -12126,7 +12126,7 @@ memberuid: user1215_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1280_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1280_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1280_org1_test
gidnumber: 10109
memberuid: user1280_org1_test
@@ -12136,7 +12136,7 @@ memberuid: user1012_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1292_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1292_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1292_org1_test
gidnumber: 10032
memberuid: user1292_org1_test
@@ -12161,7 +12161,7 @@ memberuid: user255_org1_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1293_org2_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1293_org2_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1293_org2_test
gidnumber: 10265
memberuid: user1293_org2_test
@@ -12169,7 +12169,7 @@ memberuid: user537_org2_test
objectclass: posixGroup
objectclass: top
-dn: cn=pi_user1298_org1_test,ou=pi_groups,dc=unityhpc,dc=test
+dn: cn=pi_user1298_org1_test,ou=unity_groups,dc=unityhpc,dc=test
cn: pi_user1298_org1_test
gidnumber: 10210
memberuid: user1298_org1_test
diff --git a/tools/docker-dev/sql/bootstrap.sql b/tools/docker-dev/sql/bootstrap.sql
index 96f8ad77..5ce37559 100644
--- a/tools/docker-dev/sql/bootstrap.sql
+++ b/tools/docker-dev/sql/bootstrap.sql
@@ -3,7 +3,7 @@
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
--- Generation Time: Jul 13, 2023 at 02:29 AM
+-- Generation Time: Aug 15, 2023 at 04:28 PM
-- Server version: 10.3.38-MariaDB-0ubuntu0.20.04.1
-- PHP Version: 7.4.3-4ubuntu2.19
@@ -88,8 +88,8 @@ CREATE TABLE `groupRequests` (
`group_name` varchar(1000) NOT NULL,
`requestor` varchar(1000) NOT NULL,
`requested_on` timestamp NOT NULL DEFAULT current_timestamp(),
- `start_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
- `end_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
+ `start_date` timestamp NULL DEFAULT NULL,
+ `end_date` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
-- --------------------------------------------------------
@@ -120,6 +120,16 @@ CREATE TABLE `groupRoles` (
`perms` varchar(1000) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+--
+-- Dumping data for table `groupRoles`
+--
+
+INSERT INTO `groupRoles` (`id`, `name`, `slug`, `priority`, `color`, `perms`) VALUES
+(1, 'Member Approve', 'member_approve', 50, '', 'unity.approve_user,unity.deny_user'),
+(2, 'Member', 'member', 20, '', ''),
+(3, 'Owner', 'owner', 100, '', 'unity.admin'),
+(4, 'TA', 'ta', 60, '', 'unity.grant_role,unity.revoke_role');
+
-- --------------------------------------------------------
--
@@ -134,9 +144,22 @@ CREATE TABLE `groupTypes` (
`time_limited` tinyint(1) NOT NULL,
`def_role` varchar(1000) NOT NULL,
`av_roles` varchar(1000) NOT NULL,
- `can_request` tinyint(1) NOT NULL
+ `can_request` tinyint(1) NOT NULL,
+ `prefix` varchar(1000) NOT NULL,
+ `defSuperRole` varchar(1000) NOT NULL,
+ `isNameable` tinyint(1) NOT NULL,
+ `exclusiveOwner` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+--
+-- Dumping data for table `groupTypes`
+--
+
+INSERT INTO `groupTypes` (`id`, `name`, `slug`, `color`, `time_limited`, `def_role`, `av_roles`, `can_request`, `prefix`, `defSuperRole`, `isNameable`, `exclusiveOwner`) VALUES
+(1, 'PI', 'pi', '#800000', 0, 'member', 'member,owner,member_approve,ta', 1, 'pi_', 'owner', 0, 1),
+(2, 'Class', 'class', '#800000', 1, 'member', 'member,owner,member_approve,ta', 1, 'class_', 'owner', 1, 0),
+(3, 'Center', 'center', '#800000', 0, 'member', 'member,owner,member_approve,ta', 1, 'center_', 'owner', 1, 0);
+
-- --------------------------------------------------------
--
@@ -203,6 +226,12 @@ CREATE TABLE `sitevars` (
`value` varchar(1000) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+--
+-- Dumping data for table `sitevars`
+--
+INSERT INTO `sitevars` (`id`, `name`, `value`) VALUES
+(1, 'MAX_GID', 50000);
+
-- --------------------------------------------------------
--
@@ -218,6 +247,20 @@ CREATE TABLE `sso_log` (
`org` varchar(300) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+-- ------------------------------------------------------
+
+--
+-- Table structure for table `groupAttributes`
+--
+
+CREATE TABLE `groupAttributes` (
+ `id` int(11) NOT NULL,
+ `group_type` varchar(1000) NOT NULL,
+ `group_id` varchar(1000) NOT NULL,
+ `start_date` timestamp NULL DEFAULT NULL,
+ `end_date` timestamp NULL DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+
--
-- Indexes for dumped tables
--
@@ -300,6 +343,12 @@ ALTER TABLE `sitevars`
ALTER TABLE `sso_log`
ADD PRIMARY KEY (`id`);
+--
+-- Indexes for table `groupAttributes`
+--
+ALTER TABLE `groupAttributes`
+ ADD PRIMARY KEY (`id`);
+
--
-- AUTO_INCREMENT for dumped tables
--
@@ -381,6 +430,12 @@ ALTER TABLE `sitevars`
--
ALTER TABLE `sso_log`
MODIFY `id` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;
+
+--
+-- AUTO_INCREMENT for table `groupAttributes`
+--
+ALTER TABLE `groupAttributes`
+ MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
diff --git a/webroot/admin/ajax/get_group_members.php b/webroot/admin/ajax/get_group_members.php
index ebf6e25f..073f643b 100644
--- a/webroot/admin/ajax/get_group_members.php
+++ b/webroot/admin/ajax/get_group_members.php
@@ -8,11 +8,11 @@
die();
}
-if (!isset($_GET["pi_uid"])) {
- die("PI UID not set");
+if (!isset($_GET["group_uid"])) {
+ die("Group UID not set");
}
-$group = new UnityGroup($_GET["pi_uid"], $LDAP, $SQL, $MAILER, $REDIS, $WEBHOOK);
+$group = new UnityGroup($_GET["group_uid"], $LDAP, $SQL, $MAILER, $REDIS, $WEBHOOK);
$members = $group->getGroupMembers();
$requests = $group->getRequests();
@@ -38,7 +38,7 @@
$member->getUID() . " from this group?\");'>
-
+
";
echo "";
@@ -63,7 +63,7 @@
onsubmit='return confirm(\"Are you sure you want to approve " . $request->getUID() . "?\");'>
-
+
";
echo "";
diff --git a/webroot/admin/pi-mgmt.php b/webroot/admin/group-mgmt.php
similarity index 56%
rename from webroot/admin/pi-mgmt.php
rename to webroot/admin/group-mgmt.php
index 1b145656..82b52ede 100644
--- a/webroot/admin/pi-mgmt.php
+++ b/webroot/admin/group-mgmt.php
@@ -18,12 +18,18 @@
case "req":
if ($_POST["action"] == "Approve") {
// approve group
- $group = $form_user->getPIGroup();
- $group->approveGroup($OPERATOR);
+ $group_type = $_POST["group_type"];
+ $group_name = $_POST["group_name"];
+ $group_uid = $group_type . "_" . $group_name;
+ $group = new UnityGroup($group_uid, $LDAP, $SQL, $MAILER, $REDIS, $WEBHOOK);
+ $group->approveGroup($_POST["uid"], $OPERATOR);
} elseif ($_POST["action"] == "Deny") {
// deny group
- $group = $form_user->getPIGroup();
- $group->denyGroup($OPERATOR);
+ $group_type = $_POST["group_type"];
+ $group_name = $_POST["group_name"];
+ $group_uid = $group_type . "_" . $group_name;
+ $group = new UnityGroup($group_uid, $LDAP, $SQL, $MAILER, $REDIS, $WEBHOOK);
+ $group->denyGroup($_POST["uid"], $OPERATOR);
}
break;
@@ -59,37 +65,53 @@
include $LOC_HEADER;
?>
-PI Management
+Group Management
-Pending PI Requests
+Pending Group Requests
- Name
- Unity ID
+ Group Name
+ Group Type
+ Requestor
+ Requestor UID
+ Start/End Dates
Mail
Requested On
Actions
getRequests();
+ $requests = $SQL->getGroupRequests();
+ $types = $USER->getRequestableGroupTypes();
foreach ($requests as $request) {
- $request_user = new UnityUser($request["uid"], $LDAP, $SQL, $MAILER, $REDIS, $WEBHOOK);
+ $request_user = new UnityUser($request["requestor"], $LDAP, $SQL, $MAILER, $REDIS, $WEBHOOK);
echo "";
+ echo "" . $request['group_name'] . " ";
+ echo " " .
+ $USER->getTypeNameFromSlug($types, $request['group_type']) . "
";
echo "" . $request_user->getFirstname() . " " . $request_user->getLastname() . " ";
echo "" . $request_user->getUID() . " ";
+ if ($request['start_date'] == null || $request['end_date'] == null) {
+ echo " ";
+ } else {
+ echo "" . date("jS F, Y", strtotime($request['start_date'])) . " - "
+ . date("jS F, Y", strtotime($request['end_date'])) . " ";
+ }
echo "" . $request_user->getMail() . " ";
- echo "" . date("jS F, Y", strtotime($request['timestamp'])) . " ";
+ echo "" . date("jS F, Y", strtotime($request['requested_on'])) . " ";
echo "";
echo
"