From 974cebd49133e34511cbf7339eff4890da3e85ef Mon Sep 17 00:00:00 2001 From: Ioannis Igoumenos Date: Fri, 1 Mar 2024 10:40:16 +0200 Subject: [PATCH 1/2] Remove obsolete code --- PlantUML/1.puml | 75 ---- PlantUML/2.puml | 25 -- PlantUML/3.puml | 46 --- PlantUML/4.puml | 64 ---- PlantUML/5.puml | 121 ------ PlantUML/6.puml | 27 -- PlantUML/7.puml | 63 ---- PlantUML/GroupsBelongTo.puml | 219 ----------- PlantUML/MyMemberProcess.puml | 219 ----------- View/Elements/Components/groupattributes.ctp | 29 -- View/Elements/Components/groupproperties.ctp | 42 --- .../Components/navigation-emaillists.ctp | 78 ---- .../Elements/Components/navigation-groups.ctp | 110 ------ View/Elements/Components/optAction.ctp | 12 - View/Elements/Components/search.ctp | 38 -- View/Elements/Components/subscriberList.ctp | 300 --------------- View/Elements/Components/vue-table.ctp | 137 ------- View/Elements/pagination.ctp | 141 ------- View/GrouperGroups/groupinfo.ctp | 46 --- View/GrouperGroups/groupmember.ctp | 33 -- View/GrouperGroups/groupoptin.ctp | 29 -- View/GrouperGroups/groupowner.ctp | 37 -- View/GrouperGroups/joingroup.ctp | 2 - View/GrouperGroups/leavegroup.ctp | 2 - View/GrouperGroups/templatefields.inc | 234 ------------ View/GrouperGroups/users.json | 344 ------------------ View/Layouts/Emails/html/default.ctp | 27 -- View/Layouts/Emails/text/default.ctp | 19 - View/Layouts/rss/default.ctp | 13 - View/Layouts/xml/default.ctp | 1 - 30 files changed, 2533 deletions(-) delete mode 100644 PlantUML/1.puml delete mode 100644 PlantUML/2.puml delete mode 100644 PlantUML/3.puml delete mode 100644 PlantUML/4.puml delete mode 100644 PlantUML/5.puml delete mode 100644 PlantUML/6.puml delete mode 100644 PlantUML/7.puml delete mode 100644 PlantUML/GroupsBelongTo.puml delete mode 100644 PlantUML/MyMemberProcess.puml delete mode 100644 View/Elements/Components/groupattributes.ctp delete mode 100644 View/Elements/Components/groupproperties.ctp delete mode 100644 View/Elements/Components/navigation-emaillists.ctp delete mode 100644 View/Elements/Components/navigation-groups.ctp delete mode 100644 View/Elements/Components/optAction.ctp delete mode 100644 View/Elements/Components/search.ctp delete mode 100644 View/Elements/Components/subscriberList.ctp delete mode 100644 View/Elements/Components/vue-table.ctp delete mode 100644 View/Elements/pagination.ctp delete mode 100644 View/GrouperGroups/groupinfo.ctp delete mode 100644 View/GrouperGroups/groupmember.ctp delete mode 100644 View/GrouperGroups/groupoptin.ctp delete mode 100644 View/GrouperGroups/groupowner.ctp delete mode 100644 View/GrouperGroups/joingroup.ctp delete mode 100644 View/GrouperGroups/leavegroup.ctp delete mode 100644 View/GrouperGroups/templatefields.inc delete mode 100644 View/GrouperGroups/users.json delete mode 100644 View/Layouts/Emails/html/default.ctp delete mode 100644 View/Layouts/Emails/text/default.ctp delete mode 100644 View/Layouts/rss/default.ctp delete mode 100644 View/Layouts/xml/default.ctp 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) : ?> - - - - - - - - - - - - - - - - - -
- - - -
- - -
-

-
- \ No newline at end of file diff --git a/View/Elements/Components/groupproperties.ctp b/View/Elements/Components/groupproperties.ctp deleted file mode 100644 index c21099a..0000000 --- a/View/Elements/Components/groupproperties.ctp +++ /dev/null @@ -1,42 +0,0 @@ -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
\ No newline at end of file diff --git a/View/Elements/Components/navigation-emaillists.ctp b/View/Elements/Components/navigation-emaillists.ctp deleted file mode 100644 index c4b796c..0000000 --- a/View/Elements/Components/navigation-emaillists.ctp +++ /dev/null @@ -1,78 +0,0 @@ - \ No newline at end of file diff --git a/View/Elements/Components/navigation-groups.ctp b/View/Elements/Components/navigation-groups.ctp deleted file mode 100644 index 4b0edd1..0000000 --- a/View/Elements/Components/navigation-groups.ctp +++ /dev/null @@ -1,110 +0,0 @@ - \ No newline at end of file diff --git a/View/Elements/Components/optAction.ctp b/View/Elements/Components/optAction.ctp deleted file mode 100644 index aa46a82..0000000 --- a/View/Elements/Components/optAction.ctp +++ /dev/null @@ -1,12 +0,0 @@ -Form->create(false, array( - 'url' => array('controller' => 'grouper_groups', 'action' => $action), - 'class' => 'd-flex justify-content-center', - 'id' => 'join-group.' . $idx -)); ?> -Form->hidden('GroupName', array('default' => $group, 'id' => 'groupName.' . $idx)); ?> -Form->hidden('GroupDisplayName', array('default' => $groupDisplay, 'id' => 'groupDisplayName.' . $idx)); ?> - -Form->end(); ?> \ No newline at end of file diff --git a/View/Elements/Components/search.ctp b/View/Elements/Components/search.ctp deleted file mode 100644 index ab982b6..0000000 --- a/View/Elements/Components/search.ctp +++ /dev/null @@ -1,38 +0,0 @@ -Form->create(false, array( - 'url' => array('controller' => 'grouper_groups', 'action' => $active), - 'class' => 'search mb-4' -)); ?> -
-
- - -
- -
-Form->end(); ?> \ No newline at end of file diff --git a/View/Elements/Components/subscriberList.ctp b/View/Elements/Components/subscriberList.ctp deleted file mode 100644 index 451f07d..0000000 --- a/View/Elements/Components/subscriberList.ctp +++ /dev/null @@ -1,300 +0,0 @@ -
- - -
\ No newline at end of file diff --git a/View/Elements/Components/vue-table.ctp b/View/Elements/Components/vue-table.ctp deleted file mode 100644 index d06c04c..0000000 --- a/View/Elements/Components/vue-table.ctp +++ /dev/null @@ -1,137 +0,0 @@ - - - - -
- element('pagination', array( - 'goto' => false, - 'limit' => false, - 'numbers' => false, - 'counter' => true, - 'class' => 'counter' - )); ?> -
- - - -
- - element("pagination", array( - 'goto' => false, - 'limit' => true, - 'numbers' => true, - 'counter' => false - )); ?> -
diff --git a/View/Elements/pagination.ctp b/View/Elements/pagination.ctp deleted file mode 100644 index a182dbd..0000000 --- a/View/Elements/pagination.ctp +++ /dev/null @@ -1,141 +0,0 @@ - - - - -
- -
- Paginator->counter(array( - 'format' => _txt(is_string($counter) ? $counter : 'pl.grouperlite.pagination.counter') - )); - ?> -
- - - Paginator->hasPage(2)) : ?> -
- - -
- Paginator->numbers(array( - 'separator' => '', - 'class' => 'pagination-numbers-item' - )); - ?> -
- - -
- - - Paginator->hasPage(2)) : ?> - -
- - - -
- - - - - -
- - -

- - -
- -
\ No newline at end of file diff --git a/View/GrouperGroups/groupinfo.ctp b/View/GrouperGroups/groupinfo.ctp deleted file mode 100644 index 7aed583..0000000 --- a/View/GrouperGroups/groupinfo.ctp +++ /dev/null @@ -1,46 +0,0 @@ - -extend('/GrouperGroups/base'); ?> -Html->addCrumb(_txt('pl.grouperlite.title.groupinfo')); ?> - - -
-
-

-
- -
-
-
-
-
-

- - - -
- element('Components/groupproperties', array( - 'group' => $groupergroupsdetail - )); ?> -
-
-
-

- element('Components/groupattributes', array( - 'attributes' => $groupergroupsdetail['attributes'], - 'baseUrl' => $attrUrlBase - )); ?> -
-
-
-
- \ No newline at end of file diff --git a/View/GrouperGroups/groupmember.ctp b/View/GrouperGroups/groupmember.ctp deleted file mode 100644 index 82428f8..0000000 --- a/View/GrouperGroups/groupmember.ctp +++ /dev/null @@ -1,33 +0,0 @@ - -extend('/GrouperGroups/base'); ?> -Html->addCrumb(_txt('pl.grouperlite.nav.memberships')); ?> - -element('GrouperLiteWidget.Components/vue-table', array( - 'groupData' => json_encode(array( - 'adhoc' => $groupmemberships, - 'working' => $wgmemberships - )), - 'treatAsOwner' => $isuserowner === 'T' ? 'true' : 'false', - 'columns' => json_encode(array( - array('value' => 'name', 'label' => _txt('pl.grouperlite.table.name')), - array('value' => 'role', 'label' => _txt('pl.grouperlite.table.role')), - array('value' => 'description', 'label' => _txt('pl.grouperlite.table.description')), - array('value' => 'action', 'label' => _txt('pl.grouperlite.table.action')), - )), - 'optAction' => "leavegroup", - 'actionUrl' => $this->Html->url([ - 'controller' => 'grouper_groups', - 'action' => 'leavegroup', - 'co' => $vv_coid, - 'glid' => $vv_config['CoGrouperLiteWidget']['id'], - ]), - 'members' => true, - 'addSubscribers' => false, -)); ?> - -
-

-
- - - \ No newline at end of file diff --git a/View/GrouperGroups/groupoptin.ctp b/View/GrouperGroups/groupoptin.ctp deleted file mode 100644 index e5cfa4d..0000000 --- a/View/GrouperGroups/groupoptin.ctp +++ /dev/null @@ -1,29 +0,0 @@ - -extend('/GrouperGroups/base'); ?> -Html->addCrumb(_txt('pl.grouperlite.nav.groups-can-join')); ?> -element('GrouperLiteWidget.Components/navigation-groups', array('active' => 'groupoptin')); ?> -element('GrouperLiteWidget.Components/search', array('active' => 'groupoptin')); ?> -element('GrouperLiteWidget.Components/vue-table', array( - 'groupData' => json_encode(array( - 'adhoc' => $groupoptins, - 'working' => array() - )), - 'treatAsOwner' => false, - 'columns' => json_encode(array( - array('value' => 'name', 'label' => _txt('pl.grouperlite.table.name')), - array('value' => 'description', 'label' => _txt('pl.grouperlite.table.description')), - array('value' => 'action', 'label' => _txt('pl.grouperlite.table.action')), - )), - 'optAction' => "joingroup", - 'actionUrl' => $this->Html->url([ - 'controller' => 'grouper_groups', - 'action' => 'joingroup', - 'co' => $vv_coid, - 'glid' => $vv_config['CoGrouperLiteWidget']['id'], - ]), -)); ?> - -
-

-
- \ No newline at end of file diff --git a/View/GrouperGroups/groupowner.ctp b/View/GrouperGroups/groupowner.ctp deleted file mode 100644 index 68deeec..0000000 --- a/View/GrouperGroups/groupowner.ctp +++ /dev/null @@ -1,37 +0,0 @@ - -extend('/GrouperGroups/base'); ?> -Html->addCrumb(_txt('pl.grouperlite.nav.groups-presided')); ?> -element('Components/navigation-groups', array('active' => 'groupowner')); ?> -element('Components/search', array('active' => 'groupowner')); ?> - 'name', 'label' => _txt('pl.grouperlite.table.name')), - array('value' => 'role', 'label' => _txt('pl.grouperlite.table.role')), - array('value' => 'description', 'label' => _txt('pl.grouperlite.table.description')), - array('value' => 'status', 'label' => _txt('pl.grouperlite.table.status')), - array('value' => 'action', 'label' => _txt('pl.grouperlite.table.action')), -); - -if ($vv_is_user_owner !== 'T') { - array_splice($columns, 1, 1); -} -?> - -element('GrouperLiteWidget.Components/vue-table', array( - 'groupData' => json_encode(array( - 'adhoc' => $groupsowners, - 'working' => array() - )), - 'treatAsOwner' => $vv_is_user_owner === 'T' ? 'true' : 'false', - 'columns' => json_encode($columns), - 'addSubscribers' => true, - 'members' => true -)); ?> - - - -
-

-
- - \ No newline at end of file diff --git a/View/GrouperGroups/joingroup.ctp b/View/GrouperGroups/joingroup.ctp deleted file mode 100644 index e4d9672..0000000 --- a/View/GrouperGroups/joingroup.ctp +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/View/GrouperGroups/leavegroup.ctp b/View/GrouperGroups/leavegroup.ctp deleted file mode 100644 index 2a3df51..0000000 --- a/View/GrouperGroups/leavegroup.ctp +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/View/GrouperGroups/templatefields.inc b/View/GrouperGroups/templatefields.inc deleted file mode 100644 index 5b4d338..0000000 --- a/View/GrouperGroups/templatefields.inc +++ /dev/null @@ -1,234 +0,0 @@ -
-
- Form->label(false, _txt('pl.grouperlite.form.template.work-group-extension.label'), array( - 'for' => 'gsh_input_workingGroupExtension', - 'class' => "col-sm-3 col-form-label d-flex align-items-center" - )); ?> -
- Form->input('gsh_input_workingGroupExtension', array( - 'label' => false, - 'class' => 'form-control', - 'required' => true, - 'maxlength' => '62', - 'id' => 'gsh_input_workingGroupExtension' - )); ?> -
-
-
- Form->label(false, _txt('pl.grouperlite.form.template.work-group-disp-extension.label'), array( - 'for' => 'gsh_input_workingGroupDisplayExtension', - 'class' => "col-sm-3 col-form-label d-flex align-items-center" - )); ?> -
- Form->input('gsh_input_workingGroupDisplayExtension', array( - 'label' => false, - 'class' => 'form-control', - 'maxlength' => '62', - 'id' => 'gsh_input_workingGroupDisplayExtension' - )); ?> -
-
-
- Form->label(false, _txt('pl.grouperlite.form.template.work-group-description.label'), array( - 'for' => 'gsh_input_workingGroupDescription', - 'class' => "col-sm-3 col-form-label d-flex align-items-center" - )); ?> -
- Form->input('gsh_input_workingGroupDescription', array( - 'label' => false, - 'class' => 'form-control', - 'maxlength' => '62', - 'id' => 'gsh_input_workingGroupDescription' - )); ?> -
-
-
- -
- Form->input( - 'gsh_input_isSympa', - array( - 'label' => true, - 'class' => 'form-check-input', - 'legend' => false, - 'id' => 'gsh_input_isSympa', - 'before' => '
', - 'separator' => '
', - 'after' => '
', - 'options' => array( - true => _txt('pl.grouperlite.form.template.value.positive'), - false => _txt('pl.grouperlite.form.template.value.negative') - ), - 'type' => 'radio', - 'default' => true - ) - ); ?> -
-
-
- -
- Form->input( - 'gsh_input_sympaDomain', - array( - 'label' => true, - 'class' => 'form-check-input', - 'legend' => false, - 'id' => 'gsh_input_sympaDomain', - 'before' => '
', - 'separator' => '
', - 'after' => '
', - 'options' => array( - 'internet2' => _txt('pl.grouperlite.form.template.value.internet2'), - 'incommon' => _txt('pl.grouperlite.form.template.value.incommon') - ), - 'type' => 'radio' - ) - ); ?> -
-
-
- -
- Form->input( - 'gsh_input_isSympaModerated', - array( - 'label' => true, - 'class' => 'form-check-input', - 'legend' => false, - 'id' => 'gsh_input_isSympaModerated', - 'before' => '
', - 'separator' => '
', - 'after' => '
', - 'options' => array( - true => _txt('pl.grouperlite.form.template.value.positive'), - false => _txt('pl.grouperlite.form.template.value.negative') - ), - 'type' => 'radio', - 'default' => false - ) - ); ?> -
-
-
- -
- Form->input( - 'gsh_input_isOptin', - array( - 'label' => true, - 'class' => 'form-check-input', - 'legend' => false, - 'id' => 'gsh_input_isOptin', - 'before' => '
', - 'separator' => '
', - 'after' => '
', - 'options' => array( - true => _txt('pl.grouperlite.form.template.value.positive'), - false => _txt('pl.grouperlite.form.template.value.negative') - ), - 'type' => 'radio', - 'default' => false - ) - ); ?> -
-
- -
- -
- Form->input( - 'gsh_input_isConfluence', - array( - 'label' => true, - 'class' => 'form-check-input', - 'legend' => false, - 'id' => 'gsh_input_isConfluence', - 'before' => '
', - 'separator' => '
', - 'after' => '
', - 'options' => array( - true => _txt('pl.grouperlite.form.template.value.positive'), - false => _txt('pl.grouperlite.form.template.value.negative') - ), - 'type' => 'radio', - 'default' => false - ) - ); ?> -
-
-
- -
- Form->input( - 'gsh_input_isJira', - array( - 'label' => true, - 'class' => 'form-check-input', - 'legend' => false, - 'id' => 'gsh_input_isJira', - 'before' => '
', - 'separator' => '
', - 'after' => '
', - 'options' => array( - true => _txt('pl.grouperlite.form.template.value.positive'), - false => _txt('pl.grouperlite.form.template.value.negative') - ), - 'type' => 'radio', - 'default' => false - ) - ); ?> -
-
-
-
- Form->button(_txt('pl.grouperlite.form.group.action.save'), array( - 'type' => 'submit', - 'class' => 'btn btn-grouper btn-primary btn-lg btn-raised', - 'id' => 'submit' - )); ?> -
-
-
- \ No newline at end of file diff --git a/View/GrouperGroups/users.json b/View/GrouperGroups/users.json deleted file mode 100644 index 6e08fee..0000000 --- a/View/GrouperGroups/users.json +++ /dev/null @@ -1,344 +0,0 @@ -[ - { - "name": "Galena Munoz", - "email": "ipsum.cursus.vestibulum@urnaconvalliserat.net", - "cou": "Active, Member", - "org": "Eu Corporation" - }, - { - "name": "Doris Santos", - "email": "vitae@non.org", - "cou": "Active, Filesource, Member", - "org": "Aliquam LLC" - }, - { - "name": "Alma English", - "email": "pede.Cum.sociis@telluseu.net", - "cou": "Member, Active, Writer, Filesource", - "org": "Consectetuer Corp." - }, - { - "name": "Halee Finley", - "email": "in.consectetuer.ipsum@parturientmontes.co.uk", - "cou": "Member", - "org": "Felis Ltd" - }, - { - "name": "Austin Hardy", - "email": "iaculis@Donecegestas.co.uk", - "cou": "Writer", - "org": "Nonummy LLP" - }, - { - "name": "Victor Powell", - "email": "nisi@eget.ca", - "cou": "Member, Active", - "org": "Praesent Interdum Ligula PC" - }, - { - "name": "Baxter Estrada", - "email": "in.consequat.enim@vestibulum.co.uk", - "cou": "", - "org": "In Molestie Tortor Corporation" - }, - { - "name": "Carlos Rose", - "email": "elit.elit@non.co.uk", - "cou": "Member, Writer, Filesource, Active", - "org": "Risus Nulla Eget LLP" - }, - { - "name": "Ishmael Patton", - "email": "leo.Morbi@mollisnoncursus.co.uk", - "cou": "Writer, Filesource", - "org": "A Enim Suspendisse Consulting" - }, - { - "name": "Ryder Tanner", - "email": "varius@rutrum.org", - "cou": "Writer, Filesource", - "org": "Ornare Elit Elit Consulting" - }, - { - "name": "Dane Rollins", - "email": "Curabitur.consequat.lectus@Naminterdum.ca", - "cou": "Member", - "org": "Ut Pellentesque Consulting" - }, - { - "name": "Brian Kaufman", - "email": "aliquet.vel@orciluctuset.edu", - "cou": "Filesource, Active", - "org": "Justo Eu Arcu Inc." - }, - { - "name": "Lester Price", - "email": "Integer@idlibero.edu", - "cou": "Writer, Member, Active, Filesource", - "org": "Dapibus Rutrum Justo Incorporated" - }, - { - "name": "Helen Cardenas", - "email": "Curabitur.egestas.nunc@quisdiam.org", - "cou": "Member, Active, Filesource", - "org": "Faucibus Morbi Vehicula Associates" - }, - { - "name": "Hop Holloway", - "email": "non.arcu.Vivamus@nibhvulputate.org", - "cou": "Filesource, Active, Member", - "org": "Nunc Sed Pede Ltd" - }, - { - "name": "Madeson Hendrix", - "email": "viverra@purus.com", - "cou": "", - "org": "Neque Venenatis Consulting" - }, - { - "name": "Amity Navarro", - "email": "tincidunt.Donec@inconsequat.com", - "cou": "Writer", - "org": "Pretium Aliquet Consulting" - }, - { - "name": "Cameron Booth", - "email": "nulla.magna@Quisqueporttitor.net", - "cou": "", - "org": "Fusce Associates" - }, - { - "name": "Sybil Burgess", - "email": "Fusce.feugiat@sem.org", - "cou": "Writer, Member, Filesource, Active", - "org": "Curabitur Corporation" - }, - { - "name": "Otto Cantrell", - "email": "Ut@nonarcu.org", - "cou": "", - "org": "Cursus PC" - }, - { - "name": "Mannix Obrien", - "email": "eu.neque@egestasDuisac.ca", - "cou": "", - "org": "Amet Faucibus Corp." - }, - { - "name": "Marcia Gill", - "email": "molestie.in.tempus@posuere.edu", - "cou": "", - "org": "Et Corp." - }, - { - "name": "Tanek Figueroa", - "email": "diam@arcuSed.org", - "cou": "Active", - "org": "Bibendum Donec Ltd" - }, - { - "name": "Ira Lynn", - "email": "aliquet@consequatpurusMaecenas.edu", - "cou": "Filesource", - "org": "Massa Suspendisse Eleifend Corporation" - }, - { - "name": "Lesley Pittman", - "email": "iaculis.odio@Phasellus.edu", - "cou": "Member, Writer", - "org": "Urna Et Arcu PC" - }, - { - "name": "Len Ryan", - "email": "ut.mi.Duis@sitamet.org", - "cou": "Writer, Filesource, Active", - "org": "Vestibulum Accumsan PC" - }, - { - "name": "Sarah Morton", - "email": "dis.parturient@rhoncusProin.org", - "cou": "Active", - "org": "Amet Consectetuer PC" - }, - { - "name": "Marny Hewitt", - "email": "dapibus@orciquis.ca", - "cou": "Active, Writer", - "org": "Ultricies Consulting" - }, - { - "name": "Abel Lyons", - "email": "Proin.eget.odio@enim.org", - "cou": "Writer", - "org": "Amet Lorem Corporation" - }, - { - "name": "Slade Schneider", - "email": "ante.dictum.cursus@turpisAliquamadipiscing.co.uk", - "cou": "", - "org": "Lacinia Company" - }, - { - "name": "Ashton Arnold", - "email": "velit.justo@velitin.edu", - "cou": "", - "org": "Diam Ltd" - }, - { - "name": "Phelan Goff", - "email": "ullamcorper.viverra.Maecenas@Donecporttitortellus.ca", - "cou": "", - "org": "Faucibus Id Libero Institute" - }, - { - "name": "Graham Underwood", - "email": "Nulla.dignissim.Maecenas@Donecsollicitudin.ca", - "cou": "Filesource, Member", - "org": "Duis Gravida Praesent Ltd" - }, - { - "name": "Alisa Scott", - "email": "ipsum.primis.in@erat.co.uk", - "cou": "Writer, Active", - "org": "Vivamus Non Lorem Inc." - }, - { - "name": "Asher Mccray", - "email": "semper.auctor@nibhAliquamornare.edu", - "cou": "Writer, Member", - "org": "Orci Corporation" - }, - { - "name": "Hanna Salas", - "email": "feugiat@purusactellus.net", - "cou": "", - "org": "Lectus Convallis Industries" - }, - { - "name": "Jeremy Riley", - "email": "Ut.sagittis@necante.ca", - "cou": "Writer", - "org": "Luctus Curabitur LLP" - }, - { - "name": "Violet Trevino", - "email": "vestibulum@nec.edu", - "cou": "", - "org": "Ligula Aenean Gravida Consulting" - }, - { - "name": "Carissa Myers", - "email": "non@rhoncusDonec.co.uk", - "cou": "Member, Filesource", - "org": "Tempor Corporation" - }, - { - "name": "Kadeem Osborn", - "email": "nulla.In@aliquameros.ca", - "cou": "Filesource, Active, Member, Writer", - "org": "Tempus Risus Donec PC" - }, - { - "name": "Kiayada England", - "email": "ultrices.posuere@lectus.net", - "cou": "", - "org": "Orci Institute" - }, - { - "name": "Connor Gardner", - "email": "diam.eu@tortorIntegeraliquam.org", - "cou": "Member, Active, Writer", - "org": "Vulputate Nisi Sem LLP" - }, - { - "name": "Alfonso Casey", - "email": "montes.nascetur.ridiculus@risus.net", - "cou": "Member", - "org": "Sed Eu Nibh Consulting" - }, - { - "name": "Avye Raymond", - "email": "mauris.sapien@tempusrisusDonec.co.uk", - "cou": "Active, Writer, Filesource, Member", - "org": "Amet Ante Incorporated" - }, - { - "name": "Quamar Cross", - "email": "elit.pretium@Sedid.org", - "cou": "", - "org": "Dapibus PC" - }, - { - "name": "Justine Kemp", - "email": "diam@ornare.org", - "cou": "Writer, Filesource", - "org": "Libero At Auctor Associates" - }, - { - "name": "Blair Rush", - "email": "at.velit.Cras@pulvinar.ca", - "cou": "", - "org": "Nulla Tempor Associates" - }, - { - "name": "Jael Travis", - "email": "ut.dolor.dapibus@vestibulumneceuismod.ca", - "cou": "", - "org": "Facilisis Lorem LLC" - }, - { - "name": "Donovan Patel", - "email": "bibendum.ullamcorper@Sedeu.co.uk", - "cou": "Member, Filesource, Writer, Active", - "org": "Ipsum Sodales Incorporated" - }, - { - "name": "Sylvester Brady", - "email": "amet@consequatauctornunc.net", - "cou": "", - "org": "Semper Nam Limited" - }, - { - "name": "Yuri Eaton", - "email": "Nullam.lobortis.quam@Etiamligulatortor.com", - "cou": "", - "org": "Eu Elit Nulla LLP" - }, - { - "name": "Bree Harmon", - "email": "libero.Integer@maurisaliquam.ca", - "cou": "Filesource, Active, Member, Writer", - "org": "Dui In Sodales PC" - }, - { - "name": "Tanek Tucker", - "email": "arcu@Craslorem.org", - "cou": "Active, Member, Filesource", - "org": "Nisl Arcu Company" - }, - { - "name": "Jermaine Stevens", - "email": "luctus@Donec.org", - "cou": "Active, Writer", - "org": "Pellentesque Sed Dictum Corp." - }, - { - "name": "Ira Robinson", - "email": "malesuada.vel@lobortisClass.ca", - "cou": "Active, Member", - "org": "Ac Sem Ut Consulting" - }, - { - "name": "Jocelyn Fulton", - "email": "tristique.senectus.et@faucibusorci.co.uk", - "cou": "Active, Member, Filesource, Writer", - "org": "Ante Ipsum Institute" - }, - { - "name": "Tatyana Kelly", - "email": "a.facilisis.non@tortorat.ca", - "cou": "", - "org": "Donec Feugiat Limited" - } -] \ No newline at end of file diff --git a/View/Layouts/Emails/html/default.ctp b/View/Layouts/Emails/html/default.ctp deleted file mode 100644 index 747994a..0000000 --- a/View/Layouts/Emails/html/default.ctp +++ /dev/null @@ -1,27 +0,0 @@ - - - - - <?php echo $this->fetch('title'); ?> - - - fetch('content'); ?> - -

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'); ?> From 73cb251db7ad884edd55e98ec63e1055225d754c Mon Sep 17 00:00:00 2001 From: Ioannis Igoumenos Date: Fri, 1 Mar 2024 11:00:38 +0200 Subject: [PATCH 2/2] restore security for actions --- Controller/GrouperGroupsController.php | 11 ----------- Lib/GrouperApiAccess.php | 8 ++++++-- Model/GrouperGroup.php | 22 +++++++++++----------- 3 files changed, 17 insertions(+), 24 deletions(-) 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;