From 993afa3ec7f467436097e3753c27f45565338df6 Mon Sep 17 00:00:00 2001 From: Chad Redman <chad_redman@unc.edu> Date: Wed, 23 Sep 2020 09:41:40 -0400 Subject: [PATCH] Modify class terms for 201.1 to 2019..2024; modify 201.1.end so it matches the hands-on --- .../container_files/seed-data/bootstrap.gsh | 54 +++++-------------- .../container_files/seed-data/sisData.sql | 9 +++- .../container_files/seed-data/bootstrap.gsh | 34 +++++++----- 3 files changed, 41 insertions(+), 56 deletions(-) diff --git a/ex201/ex201.1.1/container_files/seed-data/bootstrap.gsh b/ex201/ex201.1.1/container_files/seed-data/bootstrap.gsh index ca13eef..67ee0c2 100644 --- a/ex201/ex201.1.1/container_files/seed-data/bootstrap.gsh +++ b/ex201/ex201.1.1/container_files/seed-data/bootstrap.gsh @@ -21,52 +21,22 @@ setGroupAttr("etc:studentTermLoader", "grouperLoaderQuery", "select distinct id // Stub out class groups. These will be filled out by the studentTermLoader addStem("ref", "student", "student"); -class2019 = addGroup("ref:student", "class2019", "class2019"); -class2020 = addGroup("ref:student", "class2020", "class2020"); -class2021 = addGroup("ref:student", "class2021", "class2021"); -class2022 = addGroup("ref:student", "class2022", "class2022"); -class2023 = addGroup("ref:student", "class2023", "class2023"); +def classList = [:] +(2019..2024).each { term -> + classList[term] = addGroup("ref:student", "class${term}", "class${term}") +} -// Set ref object type on class reference groups -AttributeDefName typeMarker = AttributeDefNameFinder.findByName("etc:objectTypes:grouperObjectTypeMarker", true); -AttributeAssign attributeAssign = class2019.getAttributeDelegate().hasAttribute(typeMarker) ? class2019.getAttributeDelegate().retrieveAssignments(typeMarker).iterator().next() : class2019.getAttributeDelegate().addAttribute(typeMarker).getAttributeAssign(); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeDirectAssignment", "true"); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeName", "ref"); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeDataOwner", "Registrar"); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeMembersDescription", -"Class of 2019"); - -AttributeDefName typeMarker = AttributeDefNameFinder.findByName("etc:objectTypes:grouperObjectTypeMarker", true); -AttributeAssign attributeAssign = class2020.getAttributeDelegate().hasAttribute(typeMarker) ? class2020.getAttributeDelegate().retrieveAssignments(typeMarker).iterator().next() : class2020.getAttributeDelegate().addAttribute(typeMarker).getAttributeAssign(); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeDirectAssignment", "true"); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeName", "ref"); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeDataOwner", "Registrar"); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeMembersDescription", -"Class of 2020"); - -AttributeDefName typeMarker = AttributeDefNameFinder.findByName("etc:objectTypes:grouperObjectTypeMarker", true); -AttributeAssign attributeAssign = class2021.getAttributeDelegate().hasAttribute(typeMarker) ? class2021.getAttributeDelegate().retrieveAssignments(typeMarker).iterator().next() : class2021.getAttributeDelegate().addAttribute(typeMarker).getAttributeAssign(); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeDirectAssignment", "true"); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeName", "ref"); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeDataOwner", "Registrar"); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeMembersDescription", -"Class of 2021"); +// Set ref object type on class reference groups AttributeDefName typeMarker = AttributeDefNameFinder.findByName("etc:objectTypes:grouperObjectTypeMarker", true); -AttributeAssign attributeAssign = class2022.getAttributeDelegate().hasAttribute(typeMarker) ? class2022.getAttributeDelegate().retrieveAssignments(typeMarker).iterator().next() : class2022.getAttributeDelegate().addAttribute(typeMarker).getAttributeAssign(); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeDirectAssignment", "true"); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeName", "ref"); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeDataOwner", "Registrar"); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeMembersDescription", -"Class of 2022"); +classList.each { term, group -> + AttributeAssign attributeAssign = group.getAttributeDelegate().hasAttribute(typeMarker) ? group.getAttributeDelegate().retrieveAssignments(typeMarker).iterator().next() : group.getAttributeDelegate().addAttribute(typeMarker).getAttributeAssign() + attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeDirectAssignment", "true") + attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeName", "ref") + attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeDataOwner", "Registrar") + attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeMembersDescription", "Class of ${term}"); +} -AttributeDefName typeMarker = AttributeDefNameFinder.findByName("etc:objectTypes:grouperObjectTypeMarker", true); -AttributeAssign attributeAssign = class2023.getAttributeDelegate().hasAttribute(typeMarker) ? class2023.getAttributeDelegate().retrieveAssignments(typeMarker).iterator().next() : class2023.getAttributeDelegate().addAttribute(typeMarker).getAttributeAssign(); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeDirectAssignment", "true"); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeName", "ref"); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeDataOwner", "Registrar"); -attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeMembersDescription", -"Class of 2023"); // ex 201.1.2 addStem("basis", "student", "student"); diff --git a/ex201/ex201.1.1/container_files/seed-data/sisData.sql b/ex201/ex201.1.1/container_files/seed-data/sisData.sql index 9c90392..390a712 100644 --- a/ex201/ex201.1.1/container_files/seed-data/sisData.sql +++ b/ex201/ex201.1.1/container_files/seed-data/sisData.sql @@ -3738,4 +3738,11 @@ INSERT INTO HR_PEOPLE(id, surname, givenName) VALUES ('80000999','Gasper','Chris INSERT INTO HR_PEOPLE_ROLES(id, role) VALUES ('80000999','staff'); INSERT INTO HR_PEOPLE_ROLES(id, role) VALUES ('80000999','community'); INSERT INTO HR_PEOPLE(id, surname, givenName) VALUES ('80001000','Davis','Bill'); -INSERT INTO HR_PEOPLE_ROLES(id, role) VALUES ('80001000','community'); \ No newline at end of file +INSERT INTO HR_PEOPLE_ROLES(id, role) VALUES ('80001000','community'); + +/* make the original term ranges more relevant to the current year -- October 2020 should have 2019-2024 */ + +ALTER TABLE SIS_STUDENT_TERMS DROP PRIMARY KEY; +UPDATE SIS_STUDENT_TERMS SET term = CONVERT(term, UNSIGNED INTEGER) + 1; +ALTER TABLE SIS_STUDENT_TERMS ADD PRIMARY KEY (id, term); + diff --git a/ex201/ex201.1.end/container_files/seed-data/bootstrap.gsh b/ex201/ex201.1.end/container_files/seed-data/bootstrap.gsh index ed00c7b..c888b3b 100644 --- a/ex201/ex201.1.end/container_files/seed-data/bootstrap.gsh +++ b/ex201/ex201.1.end/container_files/seed-data/bootstrap.gsh @@ -4,7 +4,17 @@ addRootStem("201.1.end", "201.1.end") // ex201.1.1 // addStem("ref", "student", "student") -addGroup("ref:student", "students", "students"); +studentGroup = addGroup("ref:student", "students", "students"); +studentGroup.setDescription($/This group contains contains all students for the purpose of access control. Members automatically get access to a broad selection of student services. You can view where this group is in use by selecting "This group's memberships in other groups" under the "More" tab/$); +studentGroup.store() + +AttributeDefName typeMarker = AttributeDefNameFinder.findByName("etc:objectTypes:grouperObjectTypeMarker", true); +AttributeAssign attributeAssign = studentGroup.getAttributeDelegate().hasAttribute(typeMarker) ? studentGroup.getAttributeDelegate().retrieveAssignments(typeMarker).iterator().next() : studentGroup.getAttributeDelegate().addAttribute(typeMarker).getAttributeAssign() +attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeDirectAssignment", "true") +attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeName", "ref") +attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeDataOwner", "Registrar") +attributeAssign.getAttributeValueDelegate().assignValue("etc:objectTypes:grouperObjectTypeMembersDescription", "All student subjects for the purpose of access control"); + // added by loader job. these are not needed. // addGroup("ref:student", "class2019", "class2019"); @@ -13,20 +23,17 @@ addGroup("ref:student", "students", "students"); // addGroup("ref:student", "class2022", "class2022"); // addGroup("ref:student", "class2023", "class2023"); -addMember("ref:student:students","ref:student:class2019"); -addMember("ref:student:students","ref:student:class2020"); -addMember("ref:student:students","ref:student:class2021"); -addMember("ref:student:students","ref:student:class2022"); -addMember("ref:student:students","ref:student:class2023"); +(2021..2024).each { term -> + addMember("ref:student:students","ref:student:class${term}"); +} -//Set expiration out Dec 31, 2018 days +//Set expiration out Dec 31, 2020 days java.util.Calendar cal = Calendar.getInstance(); -cal.set(2018, 12, 31) +cal.set(2020, Calendar.DECEMBER, 31) -addGroup("ref:student", "class2018", "class2018"); -addMember("ref:student:students","ref:student:class2018"); +addMember("ref:student:students","ref:student:class2020"); group = GroupFinder.findByName(gs, "ref:student:students", true); -subject = GroupFinder.findByName(gs, "ref:student:class2018", true).toSubject(); +subject = GroupFinder.findByName(gs, "ref:student:class2020", true).toSubject(); group.addOrEditMember(subject, true, true, null, cal.getTime(), false); // ex 201.1.2 @@ -37,9 +44,10 @@ addMember("ref:student:students","basis:student:exchange_students"); // ex 201.1.4 addGroup("basis:student", "transfer_student", "transfer_student"); +addMember("basis:student:transfer_student","pmartinez921"); +addMember("basis:student:transfer_student","cthompson287"); addMember("basis:student:transfer_student","agrady901"); -addMember("basis:student:transfer_student","alee467"); -addMember("basis:student:transfer_student","ascott776"); + java.util.Calendar cal2 = Calendar.getInstance(); cal2.add(Calendar.DATE, 60);