diff --git a/Controller/GrouperGroupsController.php b/Controller/GrouperGroupsController.php index d7bb129..68b8ed5 100644 --- a/Controller/GrouperGroupsController.php +++ b/Controller/GrouperGroupsController.php @@ -106,18 +106,7 @@ public function beforeFilter() HttpStatusCodesEnum::HTTP_BAD_REQUEST); } - $this->Security->unlockedActions = array( - 'removeSubscriber', - 'addSubscriber', - 'joinGroup', - 'leaveGroup', - 'groupMember', - 'groupOptin', - 'groupOwner' - ); - if ($this->request->is('ajax')) { - $this->response->disableCache(); $this->RequestHandler->addInputType('json', array('json_decode', true)); } diff --git a/Lib/GrouperApiAccess.php b/Lib/GrouperApiAccess.php index c1750fd..3eb5c40 100644 --- a/Lib/GrouperApiAccess.php +++ b/Lib/GrouperApiAccess.php @@ -371,6 +371,8 @@ public function getGroupInfo(string $groupName): array /** * Returns all the groups the active user is a member of, that they are allowed to see. * + * THIS REQUEST TARGETS THE GROUPS ENDPOINT + * * Note: Params added at end make sure that the groups returned can only be viewed by the member logged into * Grouper Lite * @@ -381,7 +383,7 @@ public function getGroupInfo(string $groupName): array * * @throws GrouperLiteWidgetException */ - public function getUserGroupMemberships(string $actorUserId, string $userId): array + public function getUserGroups(string $actorUserId, string $userId): array { if(empty($userId)) { return []; @@ -404,6 +406,8 @@ public function getUserGroupMemberships(string $actorUserId, string $userId): ar * Returns either the groups the user is able to Opt into or can manage the memberships of. * Used for requests made to Membership endpoint in Grouper WS * + * THIS REQUEST TARGETS THE MEMBERSHIP ENDPOINT + * * @param string $userId * @param string $actAsUserId * @param string $groupType @@ -439,7 +443,7 @@ public function getUserGroupMemberships(string $actorUserId, string $userId): ar * } * } */ - public function getGrouperUserMemberships(string $userId, string $actAsUserId, string $groupType): array + public function getUserMemberships(string $userId, string $actAsUserId, string $groupType): array { if(!in_array($groupType, [ GrouperGroupTypeEnum::OPTINS, diff --git a/Model/GrouperGroup.php b/Model/GrouperGroup.php index 97c22de..5420743 100644 --- a/Model/GrouperGroup.php +++ b/Model/GrouperGroup.php @@ -79,8 +79,8 @@ public function isUserGroupOwner(string $userId, array $cfg): bool } try { - $resultsAdmin = $this->grouperAPI->getGrouperUserMemberships($userId, $userId, GrouperGroupTypeEnum::ADMIN); - $resultsUpdate = $this->grouperAPI->getGrouperUserMemberships($userId, $userId, GrouperGroupTypeEnum::UPDATE); + $resultsAdmin = $this->grouperAPI->getUserMemberships($userId, $userId, GrouperGroupTypeEnum::ADMIN); + $resultsUpdate = $this->grouperAPI->getUserMemberships($userId, $userId, GrouperGroupTypeEnum::UPDATE); } catch (Exception $e) { CakeLog::write('error', __METHOD__ . ': An error occurred'); throw $e; @@ -144,7 +144,7 @@ public function filteredMemberOfGroups(string $userId, array $cfg): array try { $memberOfGroups = $this->memberOfGroups($userId, $userId, $cfg); // Determine which groups can be left by user, if wanted. - $optOutGroups = $this->grouperAPI->getGrouperUserMemberships($userId, $userId, GrouperGroupTypeEnum::OPTOUTS); + $optOutGroups = $this->grouperAPI->getUserMemberships($userId, $userId, GrouperGroupTypeEnum::OPTOUTS); $optOutGroupsNames = Hash::combine($optOutGroups, '{n}.name', '{n}.displayExtension'); foreach ($memberOfGroups as &$memberOfGroup) { @@ -282,7 +282,7 @@ private function memberOfGroups(string $actorUserId, string $userId, array $cfg) $this->initApi($cfg); try { - return $this->grouperAPI->getUserGroupMemberships($actorUserId, $userId); + return $this->grouperAPI->getUserGroups($actorUserId, $userId); } catch (Exception $e) { CakeLog::write('error', __METHOD__ . ': An error occurred'); throw $e; @@ -308,8 +308,8 @@ public function getOwnedGroups(string $userId, array $cfg): array $this->initApi($cfg); try { - $resultsAdmin = $this->grouperAPI->getGrouperUserMemberships($userId, $userId, GrouperGroupTypeEnum::ADMIN); - $resultsUpdate = $this->grouperAPI->getGrouperUserMemberships($userId, $userId, GrouperGroupTypeEnum::UPDATE); + $resultsAdmin = $this->grouperAPI->getUserMemberships($userId, $userId, GrouperGroupTypeEnum::ADMIN); + $resultsUpdate = $this->grouperAPI->getUserMemberships($userId, $userId, GrouperGroupTypeEnum::UPDATE); } catch (Exception $e) { CakeLog::write('error', __METHOD__ . ': An error occurred'); throw $e; @@ -331,7 +331,7 @@ public function getOwnedGroups(string $userId, array $cfg): array public function getOwnedStems(string $userId): array { try { - return $this->grouperAPI->getGrouperUserMemberships($userId, $userId, GrouperGroupTypeEnum::ADMIN); + return $this->grouperAPI->getUserMemberships($userId, $userId, GrouperGroupTypeEnum::ADMIN); } catch (Exception $e) { CakeLog::write('error', __METHOD__ . ': An error occurred'); throw $e; @@ -439,9 +439,9 @@ public function optinGroups(string $userId, array $cfg): array try { // Groups the user can join or leave - $joinOrLeave = $this->grouperAPI->getGrouperUserMemberships($userId, - $userId, - GrouperGroupTypeEnum::OPTINS); + $joinOrLeave = $this->grouperAPI->getUserMemberships($userId, + $userId, + GrouperGroupTypeEnum::OPTINS); } catch (Exception $e) { CakeLog::write('error', __METHOD__ . ': An error occurred'); throw $e; @@ -449,7 +449,7 @@ public function optinGroups(string $userId, array $cfg): array try { // Groups the user is a member of - $userGroups = $this->grouperAPI->getUserGroupMemberships($userId, $userId); + $userGroups = $this->grouperAPI->getUserGroups($userId, $userId); } catch (Exception $e) { CakeLog::write('error', __METHOD__ . ': An error occurred'); throw $e; diff --git a/PlantUML/1.puml b/PlantUML/1.puml deleted file mode 100644 index 86c136e..0000000 --- a/PlantUML/1.puml +++ /dev/null @@ -1,75 +0,0 @@ -# Data from API call to get all Groups belong to -@startjson -#highlight "WsGetGroupsLiteResult" / "wsGroups" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "0" / "name" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "0" / "displayName" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "0" / "description" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "1" / "name" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "1" / "displayName" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "1" / "description" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "2" / "name" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "2" / "displayName" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "2" / "description" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "3" / "name" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "3" / "displayName" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "3" / "description" -{ - "WsGetGroupsLiteResult": { - "resultMetadata": { - "success": "T", - "resultCode": "SUCCESS" - }, - "wsSubject": { - "...": "..." - }, - "responseMetadata": { - "...": "..." - }, - "wsGroups": [ - { - "extension": "CO_members_active", - "displayName": "app:comanage-provision:CO_members_active", - "description": "Internet2 Collaborations Active Members", - "uuid": "f5dae468b9d9429993992781712c2f83", - "enabled": "T", - "displayExtension": "CO_members_active", - "name": "app:comanage-provision:CO_members_active", - "typeOfGroup": "group", - "idIndex": "11104" - }, - { - "extension": "grouperUiUserData", - "displayName": "etc:grouperUi:grouperUiUserData", - "description": "Internal group for grouper which has ...", - "uuid": "2748e23e51174145a4dc4d9e115c59da", - "enabled": "T", - "displayExtension": "grouperUiUserData", - "name": "etc:grouperUi:grouperUiUserData", - "typeOfGroup": "group", - "idIndex": "10015" - }, - { - "extension": "AdministeredByUniconFolks", - "displayName": "sandbox:UniconTest:Administered By Unicon Folks", - "description": "Description goes here", - "uuid": "0b26aa411a99405b9440be3d0b18dafa", - "enabled": "T", - "displayExtension": "Administered By Unicon Folks", - "name": "sandbox:UniconTest:AdministeredByUniconFolks", - "typeOfGroup": "group", - "idIndex": "18451" - }, - { - "extension": "MembersFromUniconAZ", - "displayName": "sandbox:UniconTest:Members At Unicon in AZ", - "uuid": "7a9f3b9837024a56b12a2a6259d520e0", - "enabled": "T", - "displayExtension": "Members At Unicon in AZ", - "name": "sandbox:UniconTest:MembersFromUniconAZ", - "typeOfGroup": "group", - "idIndex": "18447" - } - ] - } -} -@endjson \ No newline at end of file diff --git a/PlantUML/2.puml b/PlantUML/2.puml deleted file mode 100644 index 2cfc608..0000000 --- a/PlantUML/2.puml +++ /dev/null @@ -1,25 +0,0 @@ -@startuml -skinparam titleBorderRoundCorner 15 -skinparam titleBorderThickness 2 -skinparam titleBorderColor red -skinparam titleBackgroundColor Aqua-CadetBlue - -title Mapping of //My Membership// page to API results - -map "** API Grouper (with example data) => My Membership Page **" as CC { - extension = CO_members_active => NA - displayName = app:comanage-provision:CO_members_active => Name - description = Internet2 Collaborations Active Members => Description - uuid = f5dae468b9d9429993992781712c2f83 => NA - enabled = T => NA - displayExtension = CO_members_active => NA - name = app:comanage-provision:CO_members_active => Name - typeOfGroup = group => NA - idIndex = 11104 => NA -} - -note right of CC - Name Fields are used to determine Friendly Name -end note - -@enduml \ No newline at end of file diff --git a/PlantUML/3.puml b/PlantUML/3.puml deleted file mode 100644 index 16c8503..0000000 --- a/PlantUML/3.puml +++ /dev/null @@ -1,46 +0,0 @@ -@startuml -skinparam titleBorderRoundCorner 15 -skinparam titleBorderThickness 2 -skinparam titleBorderColor red -skinparam titleBackgroundColor Aqua-CadetBlue - -title Current Friendly name process for\nNon Working Groups - -start -:GET "Groups Member Of"; -:Group 1 -{ - "extension": "UniconMemberGroup", - "displayName": "sandbox:UniconTest:Unicon Members Group", - "uuid": "35c1ae4d9529492aac8cb2acb970279b", - "enabled": "T", - "displayExtension": "Unicon Members Group", - "name": "sandbox:UniconTest:UniconMemberGroup", - "typeOfGroup": "group", - "idIndex": "18446" -}; -partition "Compare Displayname and Name Params for Group 1" { -:Data: -**displayName** = "sandbox:UniconTest:Unicon Members Group" -**name** = "sandbox:UniconTest:UniconMemberGroup"; -:**Logic: Compare each Stem section**; - -if (Does "sandbox" == "sandbox"?) then (yes) - if (Does "UniconTest" == "UniconTest"?) then (yes) - if (Does "Unicon Members Group" == "UniconMemberGroup"?) then (yes) - :**FriendlyName** = "sandbox:UniconTest:UniconMemberGroup" - (No variance between **name** and **displayName**); - else (no) - :**FriendlyName** = "Unicon Members Group"; - endif - else (no) - #red:**FriendlyName** = "Unicon Members Group"; - note right: Not possible - endif -else (no) - #red:**FriendlyName** = "UniconTest:Unicon Members Group"; - note: Not possible -endif -stop -} -@enduml \ No newline at end of file diff --git a/PlantUML/4.puml b/PlantUML/4.puml deleted file mode 100644 index 37a5912..0000000 --- a/PlantUML/4.puml +++ /dev/null @@ -1,64 +0,0 @@ -# Current Friendly name process for Working Groups that is broken -@startuml -skinparam titleBorderRoundCorner 15 -skinparam titleBorderThickness 2 -skinparam titleBorderColor red -skinparam titleBackgroundColor Aqua-CadetBlue - -title Current Friendly name process for\na Working Groups that is broken - -start -:GET "Groups Member Of"; -fork -:Group 1 -{ - "extension": "admins", - "displayName": "app:confluence:Axel Working Group:admins", - "description": "Admins of confluence space for working group. Axel's working group for testing", - "uuid": "35eaa34fd2d443e5a66a0a355505f69e", - "enabled": "T", - "displayExtension": "admins", - "name": "app:confluence:AxelWorkingGroup:admins", - "typeOfGroup": "group", - "idIndex": "19010" -}; -fork again -:Group 2 -{ - "extension": "users", - "displayName": "app:confluence:Axel Working Group:users", - "description": "Users of confluence space for working group. Axel's working group for testing", - "uuid": "163dc892fa8e484a9262e6e9fa619791", - "enabled": "T", - "displayExtension": "users", - "name": "app:confluence:AxelWorkingGroup:users", - "typeOfGroup": "group", - "idIndex": "19011" -}; -end fork -partition "Compare Displayname and Name Params from Group 2" { -:Group 2 Data: -**displayName** = "app:confluence:Axel Working Group:users" -**name** = "app:confluence:AxelWorkingGroup:users"; -:**Logic: Compare each Stem section**; - -if (Does "app" == "app"?) then (yes) - if (Does "confluence" == "confluence"?) then (yes) - if (Does "Axel Working Group" == "AxelWorkingGroup"?) then (yes) - :**FriendlyName** = "app:confluence:AxelWorkingGroup:users" - (No variance between **name** and **displayName**); - else (no) - #red:**FriendlyName** = "Axel Working Group"; - note right: Missing **:users** - endif - else (no) - #red:**FriendlyName** = "Axel Working Group:users"; - note right: Not possible - endif -else (no) - #red:**FriendlyName** = "confluence:Axel Working Group:users"; - note: Not possible -endif -stop -} -@enduml \ No newline at end of file diff --git a/PlantUML/5.puml b/PlantUML/5.puml deleted file mode 100644 index 3856ac4..0000000 --- a/PlantUML/5.puml +++ /dev/null @@ -1,121 +0,0 @@ -# Removed "enabled"", "typeOfGroup", ""uuid"" and "idIndex" from returned records for brevity -@startjson -{ -"wsGroups": [ - { - "extension": "CO_members_active", - "displayName": "app:comanage-provision:CO_members_active", - "description": "Internet2 Collaborations Active Members", - "displayExtension": "CO_members_active", - "name": "app:comanage-provision:CO_members_active", - "typeOfGroup": "group", - "idIndex": "11104" - }, - { - "extension": "admins", - "displayName": "app:confluence:Axel Working Group:admins", - "description": "Admins of confluence space for working group. Axel's working group for testing", - "displayExtension": "admins", - "name": "app:confluence:AxelWorkingGroup:admins" - }, - { - "extension": "users", - "displayName": "app:confluence:Axel Working Group:users", - "description": "Users of confluence space for working group. Axel's working group for testing", - "displayExtension": "users", - "name": "app:confluence:AxelWorkingGroup:users" - }, - { - "extension": "admins", - "displayName": "app:confluence:NewWorkingGroupTest1155:admins", - "description": "Admins of confluence space for working group. NewWorkingGroupTest1155", - "displayExtension": "admins", - "name": "app:confluence:NewWorkingGroupTest1155:admins" - }, - { - "extension": "admins", - "displayName": "app:jira:AxelWorkingGroup:admins", - "description": "Users of jira project for working group. Axel's working group for testing", - "displayExtension": "admins", - "name": "app:jira:AxelWorkingGroup:admins" - }, - { - "extension": "users", - "displayName": "app:jira:AxelWorkingGroup:users", - "description": "Subscribers list receives working group emails. Axel's working group for testing", - "displayExtension": "users", - "name": "app:jira:AxelWorkingGroup:users" - }, - { - "extension": "admins", - "displayName": "app:jira:NewWorkingGroupTest1155:admins", - "description": "Users of jira project for working group. NewWorkingGroupTest1155", - "displayExtension": "admins", - "name": "app:jira:NewWorkingGroupTest1155:admins" - }, - { - "extension": "owners", - "displayName": "app:sympa:internet2:AxelWorkingGroup:owners", - "description": "Owners list manages the email list for the working group. Axel's working group for testing", - "displayExtension": "owners", - "name": "app:sympa:internet2:AxelWorkingGroup:owners" - }, - { - "extension": "subscribers", - "displayName": "app:sympa:internet2:AxelWorkingGroup:subscribers", - "description": "Subscribers list receives working group emails. Axel's working group for testing", - "displayExtension": "subscribers", - "name": "app:sympa:internet2:AxelWorkingGroup:subscribers" - }, - { - "extension": "owners", - "displayName": "app:sympa:internet2:NewWorkingGroupTest1155:owners", - "description": "Owners list manages the email list for the working group. NewWorkingGroupTest1155", - "displayExtension": "owners", - "name": "app:sympa:internet2:NewWorkingGroupTest1155:owners" - }, - { - "extension": "grouperUiUserData", - "displayName": "etc:grouperUi:grouperUiUserData", - "description": "Internal group for grouper which has user data stored ...", - "displayExtension": "grouperUiUserData", - "name": "etc:grouperUi:grouperUiUserData" - }, - { - "extension": "sysadmingroup", - "displayName": "etc:sysadmingroup", - "description": "system administrators with all privileges", - "displayExtension": "sysadmingroup", - "name": "etc:sysadmingroup" - }, - { - "extension": "admins", - "displayName": "ref:InCommon-collab:AxelWorkingGroup:AxelWorkingGroup admins", - "description": "Admins role means can manage / attest the working group. Axel's working group for testing", - "displayExtension": "AxelWorkingGroup admins", - "name": "ref:incommon-collab:AxelWorkingGroup:admins" - }, - { - "extension": "users", - "displayName": "ref:InCommon-collab:AxelWorkingGroup:AxelWorkingGroup users", - "description": "Users role means members of the working group with access to collaboration tools. Axel's working group for testing", - "displayExtension": "AxelWorkingGroup users", - "name": "ref:incommon-collab:AxelWorkingGroup:users" - }, - { - "extension": "admins", - "displayName": "ref:InCommon-collab:NewWorkingGroupTest1155:NewWorkingGroupTest1155 admins", - "description": "Admins role means can manage / attest the working group. NewWorkingGroupTest1155", - "displayExtension": "NewWorkingGroupTest1155 admins", - "name": "ref:incommon-collab:NewWorkingGroupTest1155:admins" - }, - { - "extension": "workinggroupadmins", - "displayName": "ref:workinggroupadmins", - "description": "Being a member of this group enables you to create collaboration groups under ...", - "displayExtension": "workinggroupadmins", - "name": "ref:workinggroupadmins" - } - ] -} -@endjson \ No newline at end of file diff --git a/PlantUML/6.puml b/PlantUML/6.puml deleted file mode 100644 index 0999820..0000000 --- a/PlantUML/6.puml +++ /dev/null @@ -1,27 +0,0 @@ -# Info taken from https://spaces.at.internet2.edu/display/Grouper/Grouper+custom+template+via+GSH+Internet2+example -@startuml -skinparam titleBorderRoundCorner 15 -skinparam titleBorderThickness 2 -skinparam titleBorderColor red -skinparam titleBackgroundColor Aqua-CadetBlue - -title Process groups to verify if part of\na Working Group - -start -:Working Group Stems: ----- -* "app:jira" -* "app:confluence" -* "app:sympa:internet2" -* "app:sympa:incommon" -* "ref:InCommon-collab"; - -partition "For Each Group" { -if (Does "app:jira:AxelWorkingGroup:users" start with any **Working Group Stem**?) then (yes) - :Hold as part of a Working Group; -else (no) - :Next record"; -endif -} -stop -@enduml \ No newline at end of file diff --git a/PlantUML/7.puml b/PlantUML/7.puml deleted file mode 100644 index 24616f8..0000000 --- a/PlantUML/7.puml +++ /dev/null @@ -1,63 +0,0 @@ -@startuml -skinparam titleBorderRoundCorner 15 -skinparam titleBorderThickness 2 -skinparam titleBorderColor red -skinparam titleBackgroundColor Aqua-CadetBlue - -title With records held as part of\na Working Group - -start -:GET "Groups Member Of"; -fork -:Group 1 -{ - "extension": "admins", - "displayName": "app:confluence:Bill Working Group:admins", - "description": "Admins of confluence space for working group." - "displayExtension": "admins", - "name": "app:confluence:BillWorkingGroup:admins" -}; -fork again -:Group 2 -{ - "extension": "users", - "displayName": "app:confluence:Axel Working Group:users", - "description": "Users of confluence space for working group." - "displayExtension": "users", - "name": "app:confluence:AxelWorkingGroup:users" -}; -fork again -:Group 3 -{ - "extension": "admins", - "displayName": "app:jira:AxelWorkingGroup:admins", - "description": "Users of jira project for working group." - "displayExtension": "admins", - "name": "app:jira:AxelWorkingGroup:admins" -}; -end fork -partition "Compare Each Group to see if same Working Group" { -:Compare Group 1 and Group 2 -**Group 1 name** = "app:confluence:BillWorkingGroup:admins" -**Group 2 name** = "app:confluence:AxelWorkingGroup:users"; -:Assumption = Last section of name value is **ALWAYS** Members (users, admins) , therefore second to last section is Working Group Name; -if (Does "BillWorkingGroup" == "AxelWorkingGroup"?) then (yes) - :Save to BillWorkingGroup; -endif -:Compare Group 2 and Group 3; -if (Does "AxelWorkingGroup" == "AxelWorkingGroup"?) then (yes) - :Save to AxelWorkingGroup; -endif -} -stop - -:=//My Membership:// ----- -**BillWorkingGroup:** -* Confluence Admins ----- -**Axel Working Group:** -* Confluence Users -* Jira Admins; - -@enduml \ No newline at end of file diff --git a/PlantUML/GroupsBelongTo.puml b/PlantUML/GroupsBelongTo.puml deleted file mode 100644 index b8c4fc9..0000000 --- a/PlantUML/GroupsBelongTo.puml +++ /dev/null @@ -1,219 +0,0 @@ - -# Removed "enabled"", "typeOfGroup", ""uuid"" and "idIndex" from returned records for brevity -@startjson -{ -"wsGroups": [ - { - "extension": "CO_members_active", - "displayName": "app:comanage-provision:CO_members_active", - "description": "Internet2 Collaborations Active Members", - "displayExtension": "CO_members_active", - "name": "app:comanage-provision:CO_members_active", - "typeOfGroup": "group", - "idIndex": "11104" - }, - { - "extension": "admins", - "displayName": "app:confluence:Axel Working Group:admins", - "description": "Admins of confluence space for working group. Axel's working group for testing", - "displayExtension": "admins", - "name": "app:confluence:ExampleWGName:admins" - }, - { - "extension": "users", - "displayName": "app:confluence:Axel Working Group:users", - "description": "Users of confluence space for working group. Axel's working group for testing", - "displayExtension": "users", - "name": "app:confluence:ExampleWGName:users" - }, - { - "extension": "admins", - "displayName": "app:confluence:NewWorkingGroupTest1155:admins", - "description": "Admins of confluence space for working group. NewWorkingGroupTest1155", - "displayExtension": "admins", - "name": "app:confluence:NewWorkingGroupTest1155:admins" - }, - { - "extension": "admins", - "displayName": "app:jira:ExampleWGName:admins", - "description": "Users of jira project for working group. Axel's working group for testing", - "displayExtension": "admins", - "name": "app:jira:ExampleWGName:admins" - }, - { - "extension": "users", - "displayName": "app:jira:ExampleWGName:users", - "description": "Subscribers list receives working group emails. Axel's working group for testing", - "displayExtension": "users", - "name": "app:jira:ExampleWGName:users" - }, - { - "extension": "admins", - "displayName": "app:jira:NewWorkingGroupTest1155:admins", - "description": "Users of jira project for working group. NewWorkingGroupTest1155", - "displayExtension": "admins", - "name": "app:jira:NewWorkingGroupTest1155:admins" - }, - { - "extension": "owners", - "displayName": "app:sympa:internet2:ExampleWGName:owners", - "description": "Owners list manages the email list for the working group. Axel's working group for testing", - "displayExtension": "owners", - "name": "app:sympa:internet2:ExampleWGName:owners" - }, - { - "extension": "subscribers", - "displayName": "app:sympa:internet2:ExampleWGName:subscribers", - "description": "Subscribers list receives working group emails. Axel's working group for testing", - "displayExtension": "subscribers", - "name": "app:sympa:internet2:ExampleWGName:subscribers" - }, - { - "extension": "owners", - "displayName": "app:sympa:internet2:NewWorkingGroupTest1155:owners", - "description": "Owners list manages the email list for the working group. NewWorkingGroupTest1155", - "displayExtension": "owners", - "name": "app:sympa:internet2:NewWorkingGroupTest1155:owners" - }, - { - "extension": "grouperUiUserData", - "displayName": "etc:grouperUi:grouperUiUserData", - "description": "Internal group for grouper which has user data stored ...", - "displayExtension": "grouperUiUserData", - "name": "etc:grouperUi:grouperUiUserData" - }, - { - "extension": "sysadmingroup", - "displayName": "etc:sysadmingroup", - "description": "system administrators with all privileges", - "displayExtension": "sysadmingroup", - "name": "etc:sysadmingroup" - }, - { - "extension": "admins", - "displayName": "ref:InCommon-collab:ExampleWGName:ExampleWGName admins", - "description": "Admins role means can manage / attest the working group. Axel's working group for testing", - "displayExtension": "ExampleWGName admins", - "name": "ref:incommon-collab:ExampleWGName:admins" - }, - { - "extension": "users", - "displayName": "ref:InCommon-collab:ExampleWGName:ExampleWGName users", - "description": "Users role means members of the working group with access to collaboration tools. Axel's working group for testing", - "displayExtension": "ExampleWGName users", - "name": "ref:incommon-collab:ExampleWGName:users" - }, - { - "extension": "admins", - "displayName": "ref:InCommon-collab:NewWorkingGroupTest1155:NewWorkingGroupTest1155 admins", - "description": "Admins role means can manage / attest the working group. NewWorkingGroupTest1155", - "displayExtension": "NewWorkingGroupTest1155 admins", - "name": "ref:incommon-collab:NewWorkingGroupTest1155:admins" - }, - { - "extension": "workinggroupadmins", - "displayName": "ref:workinggroupadmins", - "description": "Being a member of this group enables you to create collaboration groups under ...", - "displayExtension": "workinggroupadmins", - "name": "ref:workinggroupadmins" - } - ] -} -@endjson - - -============================================================= - -# Info taken from https://spaces.at.internet2.edu/display/Grouper/Grouper+custom+template+via+GSH+Internet2+example -@startuml -skinparam titleBorderRoundCorner 15 -skinparam titleBorderThickness 2 -skinparam titleBorderColor red -skinparam titleBackgroundColor Aqua-CadetBlue - -title Process groups to verify if part of\na Working Group - -start -:Working Group Stems: ----- -* "app:jira" -* "app:confluence" -* "app:sympa:internet2" -* "app:sympa:incommon" -* "ref:InCommon-collab"; - -partition "For Each Group" { -if (Does "app:jira:ExampleWGName:users" start with any **Working Group Stem**?) then (yes) - :Hold as part of a Working Group; -else (no) - :Next record"; -endif -} -stop -@enduml - -============================================================= - -@startuml -skinparam titleBorderRoundCorner 15 -skinparam titleBorderThickness 2 -skinparam titleBorderColor red -skinparam titleBackgroundColor Aqua-CadetBlue - -title With records held as part of\na Working Group - -start -:GET "Groups Member Of"; -fork -:Group 1 -{ - "extension": "admins", - "displayName": "app:confluence:Bill Working Group:admins", - "description": "Admins of confluence space for working group." - "displayExtension": "admins", - "name": "app:confluence:BillWorkingGroup:admins" -}; -fork again -:Group 2 -{ - "extension": "users", - "displayName": "app:confluence:Axel Working Group:users", - "description": "Users of confluence space for working group." - "displayExtension": "users", - "name": "app:confluence:ExampleWGName:users" -}; -fork again -:Group 3 -{ - "extension": "admins", - "displayName": "app:jira:ExampleWGName:admins", - "description": "Users of jira project for working group." - "displayExtension": "admins", - "name": "app:jira:ExampleWGName:admins" -}; -end fork -partition "Compare Each Group to see if same Working Group" { -:Compare Group 1 and Group 2 -**Group 1 name** = "app:confluence:BillWorkingGroup:admins" -**Group 2 name** = "app:confluence:ExampleWGName:users"; -:Assumption = Last section of name value is **ALWAYS** Members (users, admins) , therefore second to last section is Working Group Name; -if (Does "BillWorkingGroup" == "ExampleWGName"?) then (yes) - :Save to BillWorkingGroup; -endif -:Compare Group 2 and Group 3; -if (Does "ExampleWGName" == "ExampleWGName"?) then (yes) - :Save to ExampleWGName; -endif -} -stop - -:=//My Membership:// ----- -**BillWorkingGroup:** -* Confluence Admins ----- -**Axel Working Group:** -* Confluence Users -* Jira Admins; - -@enduml \ No newline at end of file diff --git a/PlantUML/MyMemberProcess.puml b/PlantUML/MyMemberProcess.puml deleted file mode 100644 index 211ce24..0000000 --- a/PlantUML/MyMemberProcess.puml +++ /dev/null @@ -1,219 +0,0 @@ -# Data from API call to get all Groups belong to -@startjson -#highlight "WsGetGroupsLiteResult" / "wsGroups" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "0" / "name" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "0" / "displayName" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "0" / "description" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "1" / "name" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "1" / "displayName" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "1" / "description" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "2" / "name" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "2" / "displayName" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "2" / "description" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "3" / "name" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "3" / "displayName" -#highlight "WsGetGroupsLiteResult" / "wsGroups" / "3" / "description" -{ - "WsGetGroupsLiteResult": { - "resultMetadata": { - "success": "T", - "resultCode": "SUCCESS" - }, - "wsSubject": { - "...": "..." - }, - "responseMetadata": { - "...": "..." - }, - "wsGroups": [ - { - "extension": "CO_members_active", - "displayName": "app:comanage-provision:CO_members_active", - "description": "Internet2 Collaborations Active Members", - "uuid": "f5dae468b9d9429993992781712c2f83", - "enabled": "T", - "displayExtension": "CO_members_active", - "name": "app:comanage-provision:CO_members_active", - "typeOfGroup": "group", - "idIndex": "11104" - }, - { - "extension": "grouperUiUserData", - "displayName": "etc:grouperUi:grouperUiUserData", - "description": "Internal group for grouper which has ...", - "uuid": "2748e23e51174145a4dc4d9e115c59da", - "enabled": "T", - "displayExtension": "grouperUiUserData", - "name": "etc:grouperUi:grouperUiUserData", - "typeOfGroup": "group", - "idIndex": "10015" - }, - { - "extension": "AdministeredByUniconFolks", - "displayName": "sandbox:UniconTest:Administered By Unicon Folks", - "description": "Description goes here", - "uuid": "0b26aa411a99405b9440be3d0b18dafa", - "enabled": "T", - "displayExtension": "Administered By Unicon Folks", - "name": "sandbox:UniconTest:AdministeredByUniconFolks", - "typeOfGroup": "group", - "idIndex": "18451" - }, - { - "extension": "MembersFromUniconAZ", - "displayName": "sandbox:UniconTest:Members At Unicon in AZ", - "uuid": "7a9f3b9837024a56b12a2a6259d520e0", - "enabled": "T", - "displayExtension": "Members At Unicon in AZ", - "name": "sandbox:UniconTest:MembersFromUniconAZ", - "typeOfGroup": "group", - "idIndex": "18447" - } - ] - } -} -@endjson - -============================================================= - -@startuml -skinparam titleBorderRoundCorner 15 -skinparam titleBorderThickness 2 -skinparam titleBorderColor red -skinparam titleBackgroundColor Aqua-CadetBlue - -title Mapping of //My Membership// page to API results - -map "** API Grouper (with example data) => My Membership Page **" as CC { - extension = CO_members_active => NA - displayName = app:comanage-provision:CO_members_active => Name - description = Internet2 Collaborations Active Members => Description - uuid = f5dae468b9d9429993992781712c2f83 => NA - enabled = T => NA - displayExtension = CO_members_active => NA - name = app:comanage-provision:CO_members_active => Name - typeOfGroup = group => NA - idIndex = 11104 => NA -} - -note right of CC - Name Fields are used to determine Friendly Name -end note - -@enduml - -============================================================= - -@startuml -skinparam titleBorderRoundCorner 15 -skinparam titleBorderThickness 2 -skinparam titleBorderColor red -skinparam titleBackgroundColor Aqua-CadetBlue - -title Current Friendly name process for\nNon Working Groups - -start -:GET "Groups Member Of"; -:Group 1 -{ - "extension": "UniconMemberGroup", - "displayName": "sandbox:UniconTest:Unicon Members Group", - "uuid": "35c1ae4d9529492aac8cb2acb970279b", - "enabled": "T", - "displayExtension": "Unicon Members Group", - "name": "sandbox:UniconTest:UniconMemberGroup", - "typeOfGroup": "group", - "idIndex": "18446" -}; -partition "Compare Displayname and Name Params for Group 1" { -:Data: -**displayName** = "sandbox:UniconTest:Unicon Members Group" -**name** = "sandbox:UniconTest:UniconMemberGroup"; -:**Logic: Compare each Stem section**; - -if (Does "sandbox" == "sandbox"?) then (yes) - if (Does "UniconTest" == "UniconTest"?) then (yes) - if (Does "Unicon Members Group" == "UniconMemberGroup"?) then (yes) - :**FriendlyName** = "sandbox:UniconTest:UniconMemberGroup" - (No variance between **name** and **displayName**); - else (no) - :**FriendlyName** = "Unicon Members Group"; - endif - else (no) - #red:**FriendlyName** = "Unicon Members Group"; - note right: Not possible - endif -else (no) - #red:**FriendlyName** = "UniconTest:Unicon Members Group"; - note: Not possible -endif -stop -} -@enduml - -============================================================= - -# Current Friendly name process for Working Groups that is broken -@startuml -skinparam titleBorderRoundCorner 15 -skinparam titleBorderThickness 2 -skinparam titleBorderColor red -skinparam titleBackgroundColor Aqua-CadetBlue - -title Current Friendly name process for\na Working Groups that is broken - -start -:GET "Groups Member Of"; -fork -:Group 1 -{ - "extension": "admins", - "displayName": "app:confluence:Axel Working Group:admins", - "description": "Admins of confluence space for working group. Axel's working group for testing", - "uuid": "35eaa34fd2d443e5a66a0a355505f69e", - "enabled": "T", - "displayExtension": "admins", - "name": "app:confluence:AxelWorkingGroup:admins", - "typeOfGroup": "group", - "idIndex": "19010" -}; -fork again -:Group 2 -{ - "extension": "users", - "displayName": "app:confluence:Axel Working Group:users", - "description": "Users of confluence space for working group. Axel's working group for testing", - "uuid": "163dc892fa8e484a9262e6e9fa619791", - "enabled": "T", - "displayExtension": "users", - "name": "app:confluence:AxelWorkingGroup:users", - "typeOfGroup": "group", - "idIndex": "19011" -}; -end fork -partition "Compare Displayname and Name Params from Group 2" { -:Group 2 Data: -**displayName** = "app:confluence:Axel Working Group:users" -**name** = "app:confluence:AxelWorkingGroup:users"; -:**Logic: Compare each Stem section**; - -if (Does "app" == "app"?) then (yes) - if (Does "confluence" == "confluence"?) then (yes) - if (Does "Axel Working Group" == "AxelWorkingGroup"?) then (yes) - :**FriendlyName** = "app:confluence:AxelWorkingGroup:users" - (No variance between **name** and **displayName**); - else (no) - #red:**FriendlyName** = "Axel Working Group"; - note right: Missing **:users** - endif - else (no) - #red:**FriendlyName** = "Axel Working Group:users"; - note right: Not possible - endif -else (no) - #red:**FriendlyName** = "confluence:Axel Working Group:users"; - note: Not possible -endif -stop -} -@enduml diff --git a/View/Elements/Components/groupattributes.ctp b/View/Elements/Components/groupattributes.ctp deleted file mode 100644 index 787ad81..0000000 --- a/View/Elements/Components/groupattributes.ctp +++ /dev/null @@ -1,29 +0,0 @@ - 0) : ?> -
- | - | - |
---|---|---|
- | - | - - link - - | -
This email was sent using the CakePHP Framework
- - \ No newline at end of file diff --git a/View/Layouts/Emails/text/default.ctp b/View/Layouts/Emails/text/default.ctp deleted file mode 100644 index 82a1e19..0000000 --- a/View/Layouts/Emails/text/default.ctp +++ /dev/null @@ -1,19 +0,0 @@ - -fetch('content'); ?> - -This email was sent using the CakePHP Framework, https://cakephp.org. diff --git a/View/Layouts/rss/default.ctp b/View/Layouts/rss/default.ctp deleted file mode 100644 index 60a5365..0000000 --- a/View/Layouts/rss/default.ctp +++ /dev/null @@ -1,13 +0,0 @@ -fetch('title'); -endif; - -echo $this->Rss->document( - $this->Rss->channel( - array(), $channel, $this->fetch('content') - ) -); diff --git a/View/Layouts/xml/default.ctp b/View/Layouts/xml/default.ctp deleted file mode 100644 index fbd5ee0..0000000 --- a/View/Layouts/xml/default.ctp +++ /dev/null @@ -1 +0,0 @@ -fetch('content'); ?>