diff --git a/docker/prod-values.yml b/docker/prod-values.yml index 80f54f87..cff6e80a 100644 --- a/docker/prod-values.yml +++ b/docker/prod-values.yml @@ -318,6 +318,17 @@ daemon: requests: cpu: 25m memory: 64Mi + - name: import-users-immediate + replicaCount: 1 + command: ["/scripts/management_daemon.sh"] + args: ["--delay", "30", "import_users", "3"] + resources: + limits: + cpu: 500m + memory: 256Mi + requests: + cpu: 25m + memory: 64Mi - name: process-enrollment-events replicaCount: 1 command: ["/scripts/management_daemon.sh"] diff --git a/sis_provisioner/apps.py b/sis_provisioner/apps.py index 5318810c..16016884 100644 --- a/sis_provisioner/apps.py +++ b/sis_provisioner/apps.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/builders/__init__.py b/sis_provisioner/builders/__init__.py index c7081b4b..47138854 100644 --- a/sis_provisioner/builders/__init__.py +++ b/sis_provisioner/builders/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/builders/accounts.py b/sis_provisioner/builders/accounts.py index bcd0d8f2..74246914 100644 --- a/sis_provisioner/builders/accounts.py +++ b/sis_provisioner/builders/accounts.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/builders/admins.py b/sis_provisioner/builders/admins.py index fffc3b2f..fd29ee59 100644 --- a/sis_provisioner/builders/admins.py +++ b/sis_provisioner/builders/admins.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/builders/courses.py b/sis_provisioner/builders/courses.py index d0ca108f..2b192ed2 100644 --- a/sis_provisioner/builders/courses.py +++ b/sis_provisioner/builders/courses.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/builders/enrollments.py b/sis_provisioner/builders/enrollments.py index 8c26b322..4f6d79e3 100644 --- a/sis_provisioner/builders/enrollments.py +++ b/sis_provisioner/builders/enrollments.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/builders/groups.py b/sis_provisioner/builders/groups.py index 59c9aa75..b3192001 100644 --- a/sis_provisioner/builders/groups.py +++ b/sis_provisioner/builders/groups.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/builders/users.py b/sis_provisioner/builders/users.py index 1e5c66e1..6cfad459 100644 --- a/sis_provisioner/builders/users.py +++ b/sis_provisioner/builders/users.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/cache.py b/sis_provisioner/cache.py index f0ea2fc1..c5b65606 100644 --- a/sis_provisioner/cache.py +++ b/sis_provisioner/cache.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/csv/data.py b/sis_provisioner/csv/data.py index 6b74566f..ffd2b0d5 100644 --- a/sis_provisioner/csv/data.py +++ b/sis_provisioner/csv/data.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/csv/format.py b/sis_provisioner/csv/format.py index edb8bb5f..3c8fd462 100644 --- a/sis_provisioner/csv/format.py +++ b/sis_provisioner/csv/format.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/dao/__init__.py b/sis_provisioner/dao/__init__.py index 481b804a..47975931 100644 --- a/sis_provisioner/dao/__init__.py +++ b/sis_provisioner/dao/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/dao/account.py b/sis_provisioner/dao/account.py index 9c99bd1a..4620e280 100644 --- a/sis_provisioner/dao/account.py +++ b/sis_provisioner/dao/account.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/dao/astra.py b/sis_provisioner/dao/astra.py index d3c905a9..761b2e14 100644 --- a/sis_provisioner/dao/astra.py +++ b/sis_provisioner/dao/astra.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/dao/canvas.py b/sis_provisioner/dao/canvas.py index 06b5c3da..ffd0cbc0 100644 --- a/sis_provisioner/dao/canvas.py +++ b/sis_provisioner/dao/canvas.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/dao/course.py b/sis_provisioner/dao/course.py index 9733a217..eec976d1 100644 --- a/sis_provisioner/dao/course.py +++ b/sis_provisioner/dao/course.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/dao/group.py b/sis_provisioner/dao/group.py index a393fdf4..ff7fccab 100644 --- a/sis_provisioner/dao/group.py +++ b/sis_provisioner/dao/group.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/dao/term.py b/sis_provisioner/dao/term.py index bb3e5f2a..6b9e2202 100644 --- a/sis_provisioner/dao/term.py +++ b/sis_provisioner/dao/term.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/dao/user.py b/sis_provisioner/dao/user.py index 59336689..7ac71276 100644 --- a/sis_provisioner/dao/user.py +++ b/sis_provisioner/dao/user.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/events/__init__.py b/sis_provisioner/events/__init__.py index 8ff8df29..d74341e1 100644 --- a/sis_provisioner/events/__init__.py +++ b/sis_provisioner/events/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/events/enrollment.py b/sis_provisioner/events/enrollment.py index 022b595f..d850120a 100644 --- a/sis_provisioner/events/enrollment.py +++ b/sis_provisioner/events/enrollment.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/events/group/__init__.py b/sis_provisioner/events/group/__init__.py index 0536cd0d..dedfa453 100644 --- a/sis_provisioner/events/group/__init__.py +++ b/sis_provisioner/events/group/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/events/group/dispatch.py b/sis_provisioner/events/group/dispatch.py index 3d105eac..643429a1 100644 --- a/sis_provisioner/events/group/dispatch.py +++ b/sis_provisioner/events/group/dispatch.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/events/instructor.py b/sis_provisioner/events/instructor.py index 37664a8d..cddcbe21 100644 --- a/sis_provisioner/events/instructor.py +++ b/sis_provisioner/events/instructor.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/events/person.py b/sis_provisioner/events/person.py index 1bdcde6d..3430a05a 100644 --- a/sis_provisioner/events/person.py +++ b/sis_provisioner/events/person.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/exceptions.py b/sis_provisioner/exceptions.py index af95cc73..1ab1669d 100644 --- a/sis_provisioner/exceptions.py +++ b/sis_provisioner/exceptions.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/__init__.py b/sis_provisioner/management/commands/__init__.py index a7c7c776..e0010bbf 100644 --- a/sis_provisioner/management/commands/__init__.py +++ b/sis_provisioner/management/commands/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/backfill_courses.py b/sis_provisioner/management/commands/backfill_courses.py index 243ff856..98db1af2 100644 --- a/sis_provisioner/management/commands/backfill_courses.py +++ b/sis_provisioner/management/commands/backfill_courses.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/check_role_permissions.py b/sis_provisioner/management/commands/check_role_permissions.py index 95926c0a..48dd5606 100644 --- a/sis_provisioner/management/commands/check_role_permissions.py +++ b/sis_provisioner/management/commands/check_role_permissions.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/cleanup_sis_errors.py b/sis_provisioner/management/commands/cleanup_sis_errors.py index 056b6453..90c0a7c0 100644 --- a/sis_provisioner/management/commands/cleanup_sis_errors.py +++ b/sis_provisioner/management/commands/cleanup_sis_errors.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/create_auth_token.py b/sis_provisioner/management/commands/create_auth_token.py index 4b43fed6..6e28aeda 100644 --- a/sis_provisioner/management/commands/create_auth_token.py +++ b/sis_provisioner/management/commands/create_auth_token.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/create_workshop_courses.py b/sis_provisioner/management/commands/create_workshop_courses.py index 081c2f51..35d561d7 100644 --- a/sis_provisioner/management/commands/create_workshop_courses.py +++ b/sis_provisioner/management/commands/create_workshop_courses.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/delete_expired_courses.py b/sis_provisioner/management/commands/delete_expired_courses.py index 659c9af2..b0465c2c 100755 --- a/sis_provisioner/management/commands/delete_expired_courses.py +++ b/sis_provisioner/management/commands/delete_expired_courses.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/delete_unused_courses.py b/sis_provisioner/management/commands/delete_unused_courses.py index 27b5ca46..457ffbd5 100755 --- a/sis_provisioner/management/commands/delete_unused_courses.py +++ b/sis_provisioner/management/commands/delete_unused_courses.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/find_active_courses.py b/sis_provisioner/management/commands/find_active_courses.py index 1b1e577b..519b133c 100644 --- a/sis_provisioner/management/commands/find_active_courses.py +++ b/sis_provisioner/management/commands/find_active_courses.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/find_active_instructors.py b/sis_provisioner/management/commands/find_active_instructors.py index fd6e5f32..926e904c 100644 --- a/sis_provisioner/management/commands/find_active_instructors.py +++ b/sis_provisioner/management/commands/find_active_instructors.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/find_course_collaborations.py b/sis_provisioner/management/commands/find_course_collaborations.py index a235932f..1aa70ea0 100644 --- a/sis_provisioner/management/commands/find_course_collaborations.py +++ b/sis_provisioner/management/commands/find_course_collaborations.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/find_invalid_enrollments.py b/sis_provisioner/management/commands/find_invalid_enrollments.py index 66b09a32..cadd74ba 100644 --- a/sis_provisioner/management/commands/find_invalid_enrollments.py +++ b/sis_provisioner/management/commands/find_invalid_enrollments.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/find_media_objects.py b/sis_provisioner/management/commands/find_media_objects.py index a406963e..f5e1e5f7 100644 --- a/sis_provisioner/management/commands/find_media_objects.py +++ b/sis_provisioner/management/commands/find_media_objects.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/find_syllabus_courses.py b/sis_provisioner/management/commands/find_syllabus_courses.py index 2fb0b938..0ffa8a50 100644 --- a/sis_provisioner/management/commands/find_syllabus_courses.py +++ b/sis_provisioner/management/commands/find_syllabus_courses.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/find_test_entities.py b/sis_provisioner/management/commands/find_test_entities.py index a7b870cd..d8a57209 100644 --- a/sis_provisioner/management/commands/find_test_entities.py +++ b/sis_provisioner/management/commands/find_test_entities.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/find_unused_courses.py b/sis_provisioner/management/commands/find_unused_courses.py index b0d8013f..1e42d0e0 100644 --- a/sis_provisioner/management/commands/find_unused_courses.py +++ b/sis_provisioner/management/commands/find_unused_courses.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/generate_user_report.py b/sis_provisioner/management/commands/generate_user_report.py index 9833b6d8..20e3731c 100644 --- a/sis_provisioner/management/commands/generate_user_report.py +++ b/sis_provisioner/management/commands/generate_user_report.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/get_external_tools.py b/sis_provisioner/management/commands/get_external_tools.py index 3eb8962d..2b0f2de5 100644 --- a/sis_provisioner/management/commands/get_external_tools.py +++ b/sis_provisioner/management/commands/get_external_tools.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/get_page_views.py b/sis_provisioner/management/commands/get_page_views.py index c0b3031a..c3440184 100644 --- a/sis_provisioner/management/commands/get_page_views.py +++ b/sis_provisioner/management/commands/get_page_views.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/gmail_enrollments.py b/sis_provisioner/management/commands/gmail_enrollments.py index bcf44b4b..0f71df43 100644 --- a/sis_provisioner/management/commands/gmail_enrollments.py +++ b/sis_provisioner/management/commands/gmail_enrollments.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/harvest_instructors.py b/sis_provisioner/management/commands/harvest_instructors.py index c2a52735..8a858475 100644 --- a/sis_provisioner/management/commands/harvest_instructors.py +++ b/sis_provisioner/management/commands/harvest_instructors.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/import_accounts.py b/sis_provisioner/management/commands/import_accounts.py index 44fa624c..583e4526 100755 --- a/sis_provisioner/management/commands/import_accounts.py +++ b/sis_provisioner/management/commands/import_accounts.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/import_admins.py b/sis_provisioner/management/commands/import_admins.py index 8a0f5fda..418e5cf8 100644 --- a/sis_provisioner/management/commands/import_admins.py +++ b/sis_provisioner/management/commands/import_admins.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/import_courses.py b/sis_provisioner/management/commands/import_courses.py index 10b238d5..ada2bb43 100755 --- a/sis_provisioner/management/commands/import_courses.py +++ b/sis_provisioner/management/commands/import_courses.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 from sis_provisioner.management.commands import SISProvisionerCommand diff --git a/sis_provisioner/management/commands/import_enrollments.py b/sis_provisioner/management/commands/import_enrollments.py index b322e8bd..c513f6bf 100644 --- a/sis_provisioner/management/commands/import_enrollments.py +++ b/sis_provisioner/management/commands/import_enrollments.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/import_groups.py b/sis_provisioner/management/commands/import_groups.py index 71392a82..a43c0ec3 100755 --- a/sis_provisioner/management/commands/import_groups.py +++ b/sis_provisioner/management/commands/import_groups.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/import_invalid_enrollments.py b/sis_provisioner/management/commands/import_invalid_enrollments.py index 79e97678..b9e4bc93 100644 --- a/sis_provisioner/management/commands/import_invalid_enrollments.py +++ b/sis_provisioner/management/commands/import_invalid_enrollments.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/import_users.py b/sis_provisioner/management/commands/import_users.py index d1013b97..b36e9120 100755 --- a/sis_provisioner/management/commands/import_users.py +++ b/sis_provisioner/management/commands/import_users.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/insert_external_tools.py b/sis_provisioner/management/commands/insert_external_tools.py index 3a2c77ea..69e7e0bf 100644 --- a/sis_provisioner/management/commands/insert_external_tools.py +++ b/sis_provisioner/management/commands/insert_external_tools.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/load_accounts.py b/sis_provisioner/management/commands/load_accounts.py index 4d1fc795..835aad73 100644 --- a/sis_provisioner/management/commands/load_accounts.py +++ b/sis_provisioner/management/commands/load_accounts.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/load_courses.py b/sis_provisioner/management/commands/load_courses.py index 55a4085a..64d5837e 100755 --- a/sis_provisioner/management/commands/load_courses.py +++ b/sis_provisioner/management/commands/load_courses.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/load_enrollments.py b/sis_provisioner/management/commands/load_enrollments.py index 33afc3d3..43885b64 100755 --- a/sis_provisioner/management/commands/load_enrollments.py +++ b/sis_provisioner/management/commands/load_enrollments.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/load_groups.py b/sis_provisioner/management/commands/load_groups.py index b66f4f2d..4ad5753e 100644 --- a/sis_provisioner/management/commands/load_groups.py +++ b/sis_provisioner/management/commands/load_groups.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/load_instructors.py b/sis_provisioner/management/commands/load_instructors.py index 4fcaab78..35a1a248 100644 --- a/sis_provisioner/management/commands/load_instructors.py +++ b/sis_provisioner/management/commands/load_instructors.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/load_person.py b/sis_provisioner/management/commands/load_person.py index 27d9c828..7a108b04 100644 --- a/sis_provisioner/management/commands/load_person.py +++ b/sis_provisioner/management/commands/load_person.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/load_users.py b/sis_provisioner/management/commands/load_users.py index 1facade3..13bf4c30 100755 --- a/sis_provisioner/management/commands/load_users.py +++ b/sis_provisioner/management/commands/load_users.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/lti_instructors.py b/sis_provisioner/management/commands/lti_instructors.py index 90ab9830..2cba0c46 100644 --- a/sis_provisioner/management/commands/lti_instructors.py +++ b/sis_provisioner/management/commands/lti_instructors.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/merge_users.py b/sis_provisioner/management/commands/merge_users.py index bd157a5e..030c3542 100644 --- a/sis_provisioner/management/commands/merge_users.py +++ b/sis_provisioner/management/commands/merge_users.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/migrate_courses.py b/sis_provisioner/management/commands/migrate_courses.py index 17b0eca1..0f485b65 100644 --- a/sis_provisioner/management/commands/migrate_courses.py +++ b/sis_provisioner/management/commands/migrate_courses.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/migrate_submissions.py b/sis_provisioner/management/commands/migrate_submissions.py index f7282958..f4244a84 100644 --- a/sis_provisioner/management/commands/migrate_submissions.py +++ b/sis_provisioner/management/commands/migrate_submissions.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/monitor_imports.py b/sis_provisioner/management/commands/monitor_imports.py index 0b13734c..f9f23baa 100644 --- a/sis_provisioner/management/commands/monitor_imports.py +++ b/sis_provisioner/management/commands/monitor_imports.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/process_group_events.py b/sis_provisioner/management/commands/process_group_events.py index 3eb45d02..a963d0b5 100644 --- a/sis_provisioner/management/commands/process_group_events.py +++ b/sis_provisioner/management/commands/process_group_events.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/remove_unauthorized_admins.py b/sis_provisioner/management/commands/remove_unauthorized_admins.py index e1ff4819..81249d73 100644 --- a/sis_provisioner/management/commands/remove_unauthorized_admins.py +++ b/sis_provisioner/management/commands/remove_unauthorized_admins.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/sync_external_tools.py b/sis_provisioner/management/commands/sync_external_tools.py index 1aec6794..881d0c1d 100644 --- a/sis_provisioner/management/commands/sync_external_tools.py +++ b/sis_provisioner/management/commands/sync_external_tools.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/update_term_overrides.py b/sis_provisioner/management/commands/update_term_overrides.py index 0d9bebc6..c912470c 100644 --- a/sis_provisioner/management/commands/update_term_overrides.py +++ b/sis_provisioner/management/commands/update_term_overrides.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/management/commands/update_test_urls.py b/sis_provisioner/management/commands/update_test_urls.py index 953abfbc..da5dce88 100644 --- a/sis_provisioner/management/commands/update_test_urls.py +++ b/sis_provisioner/management/commands/update_test_urls.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/models/__init__.py b/sis_provisioner/models/__init__.py index 029197b1..200832fa 100644 --- a/sis_provisioner/models/__init__.py +++ b/sis_provisioner/models/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/models/account.py b/sis_provisioner/models/account.py index ce688136..6efd72f3 100644 --- a/sis_provisioner/models/account.py +++ b/sis_provisioner/models/account.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/models/admin.py b/sis_provisioner/models/admin.py index 36041eac..989309b1 100644 --- a/sis_provisioner/models/admin.py +++ b/sis_provisioner/models/admin.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/models/course.py b/sis_provisioner/models/course.py index 00cdab2e..0b2b2087 100644 --- a/sis_provisioner/models/course.py +++ b/sis_provisioner/models/course.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/models/enrollment.py b/sis_provisioner/models/enrollment.py index 6a8be5be..a2d274ff 100644 --- a/sis_provisioner/models/enrollment.py +++ b/sis_provisioner/models/enrollment.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/models/events.py b/sis_provisioner/models/events.py index 6faf1064..fd59225a 100644 --- a/sis_provisioner/models/events.py +++ b/sis_provisioner/models/events.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/models/external_tools.py b/sis_provisioner/models/external_tools.py index dd8cf4a2..32fc2718 100644 --- a/sis_provisioner/models/external_tools.py +++ b/sis_provisioner/models/external_tools.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/models/group.py b/sis_provisioner/models/group.py index da805979..aa903cb6 100644 --- a/sis_provisioner/models/group.py +++ b/sis_provisioner/models/group.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/models/term.py b/sis_provisioner/models/term.py index 9ca86b1c..8a93af7f 100644 --- a/sis_provisioner/models/term.py +++ b/sis_provisioner/models/term.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/models/user.py b/sis_provisioner/models/user.py index d16ccc46..f2807277 100644 --- a/sis_provisioner/models/user.py +++ b/sis_provisioner/models/user.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/pidfile.py b/sis_provisioner/pidfile.py index 0652d982..5fdc06a2 100644 --- a/sis_provisioner/pidfile.py +++ b/sis_provisioner/pidfile.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/signals.py b/sis_provisioner/signals.py index af983281..1d9ed9cc 100644 --- a/sis_provisioner/signals.py +++ b/sis_provisioner/signals.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/static/canvas_admin/js/main.js b/sis_provisioner/static/canvas_admin/js/main.js index 9ebf3639..73b772d0 100644 --- a/sis_provisioner/static/canvas_admin/js/main.js +++ b/sis_provisioner/static/canvas_admin/js/main.js @@ -1428,6 +1428,44 @@ $(document).ready(function () { } }); + container.on('click', 'button.sync-user', function (e) { + var $button = $(this), + regid = $button.attr('data-reg-id'), + button_updating = function (b) { + b.removeClass('btn-default'); + b.removeClass('btn-success'); + b.addClass('btn-warning'); + b.html(' Updating'); + }; + + $button.attr('disabled', 'disabled'); + + $.ajax({ + url: '/api/v1/users/' + regid, + type: 'PUT', + processData: false, + data: '{ "priority": "immediate" }', + success: function () { + button_updating($button); + }, + error: function (xhr) { + var json; + try { + json = $.parseJSON(xhr.responseText); + if (json.error.match(/ being provisioned$/)) { + button_updating($button); + } else { + $button.removeAttr('disabled'); + } + console.log('Event service error:' + json.error); + } catch (e) { + console.log('Unknown course service error'); + } + } + } + }); + }); + container.on('click', 'button.merge-users', function (e) { var $button = $(this), regid = $button.attr('data-reg-id'), diff --git a/sis_provisioner/templates/handlebars/canvas_admin/user_info.html b/sis_provisioner/templates/handlebars/canvas_admin/user_info.html index 25b050c6..85ba65da 100755 --- a/sis_provisioner/templates/handlebars/canvas_admin/user_info.html +++ b/sis_provisioner/templates/handlebars/canvas_admin/user_info.html @@ -33,9 +33,6 @@
UWNetID: {{login_id}} {{#if can_access_canvas}} - {{#if can_masquerade_as_user}} -    Masquerade - {{/if}} {{else}} {{/if}} @@ -52,12 +49,19 @@ {{/each}} - {{#if can_merge_users}} -
- {{/if}} - {{#if can_create_user_course}} -
- {{/if}} +
+
+ {{#if can_merge_users}} + + {{/if}} + {{#if masquerade_url}} + + {{/if}} + {{#if can_create_user_course}} +    +    + {{/if}} +
{{else}} This user does NOT exist in Canvas, and {{net_id}} {{#if can_access_canvas}}is{{else}}is NOT{{/if}} allowed to access Canvas. {{/if}} diff --git a/sis_provisioner/test/builders/test_builder.py b/sis_provisioner/test/builders/test_builder.py index 9d7e5e0f..84597ca1 100644 --- a/sis_provisioner/test/builders/test_builder.py +++ b/sis_provisioner/test/builders/test_builder.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/builders/test_courses.py b/sis_provisioner/test/builders/test_courses.py index c03d5d30..100099d0 100644 --- a/sis_provisioner/test/builders/test_courses.py +++ b/sis_provisioner/test/builders/test_courses.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/builders/test_enrollments.py b/sis_provisioner/test/builders/test_enrollments.py index 2e5cdc78..7fdbe77c 100644 --- a/sis_provisioner/test/builders/test_enrollments.py +++ b/sis_provisioner/test/builders/test_enrollments.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/builders/test_groups.py b/sis_provisioner/test/builders/test_groups.py index e9eef0e2..153f0db9 100644 --- a/sis_provisioner/test/builders/test_groups.py +++ b/sis_provisioner/test/builders/test_groups.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/csv/test_data.py b/sis_provisioner/test/csv/test_data.py index ebc3fda6..91303206 100644 --- a/sis_provisioner/test/csv/test_data.py +++ b/sis_provisioner/test/csv/test_data.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/csv/test_format.py b/sis_provisioner/test/csv/test_format.py index c3af29aa..a4e0d9c7 100644 --- a/sis_provisioner/test/csv/test_format.py +++ b/sis_provisioner/test/csv/test_format.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/dao/test_account.py b/sis_provisioner/test/dao/test_account.py index 01a6744e..7a19f300 100644 --- a/sis_provisioner/test/dao/test_account.py +++ b/sis_provisioner/test/dao/test_account.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/dao/test_astra.py b/sis_provisioner/test/dao/test_astra.py index 9ab5c655..acb7994d 100644 --- a/sis_provisioner/test/dao/test_astra.py +++ b/sis_provisioner/test/dao/test_astra.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/dao/test_canvas.py b/sis_provisioner/test/dao/test_canvas.py index 0bdce89e..60f40929 100644 --- a/sis_provisioner/test/dao/test_canvas.py +++ b/sis_provisioner/test/dao/test_canvas.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/dao/test_course.py b/sis_provisioner/test/dao/test_course.py index 349cf829..2efaf075 100644 --- a/sis_provisioner/test/dao/test_course.py +++ b/sis_provisioner/test/dao/test_course.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/dao/test_dao.py b/sis_provisioner/test/dao/test_dao.py index 2906492f..6696692e 100644 --- a/sis_provisioner/test/dao/test_dao.py +++ b/sis_provisioner/test/dao/test_dao.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/dao/test_group.py b/sis_provisioner/test/dao/test_group.py index c92f1992..78b3c414 100644 --- a/sis_provisioner/test/dao/test_group.py +++ b/sis_provisioner/test/dao/test_group.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/dao/test_term.py b/sis_provisioner/test/dao/test_term.py index 4e0333cb..ba64b73a 100644 --- a/sis_provisioner/test/dao/test_term.py +++ b/sis_provisioner/test/dao/test_term.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/dao/test_user.py b/sis_provisioner/test/dao/test_user.py index 669f8184..269059b1 100644 --- a/sis_provisioner/test/dao/test_user.py +++ b/sis_provisioner/test/dao/test_user.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/events/test_group.py b/sis_provisioner/test/events/test_group.py index cb76b0c2..faa1ee4f 100644 --- a/sis_provisioner/test/events/test_group.py +++ b/sis_provisioner/test/events/test_group.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/models/test_account.py b/sis_provisioner/test/models/test_account.py index c81480c0..bc1f72fd 100644 --- a/sis_provisioner/test/models/test_account.py +++ b/sis_provisioner/test/models/test_account.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/models/test_admin.py b/sis_provisioner/test/models/test_admin.py index b9fcafab..67525b47 100644 --- a/sis_provisioner/test/models/test_admin.py +++ b/sis_provisioner/test/models/test_admin.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/models/test_course.py b/sis_provisioner/test/models/test_course.py index 3ec642ce..964c8a12 100644 --- a/sis_provisioner/test/models/test_course.py +++ b/sis_provisioner/test/models/test_course.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/models/test_curriculum.py b/sis_provisioner/test/models/test_curriculum.py index 361a1685..a58bf868 100644 --- a/sis_provisioner/test/models/test_curriculum.py +++ b/sis_provisioner/test/models/test_curriculum.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/models/test_enrollment.py b/sis_provisioner/test/models/test_enrollment.py index 3dc8737c..c8767f91 100644 --- a/sis_provisioner/test/models/test_enrollment.py +++ b/sis_provisioner/test/models/test_enrollment.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/models/test_external_tool.py b/sis_provisioner/test/models/test_external_tool.py index 0fe70d6c..c6c5e2da 100644 --- a/sis_provisioner/test/models/test_external_tool.py +++ b/sis_provisioner/test/models/test_external_tool.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/models/test_group.py b/sis_provisioner/test/models/test_group.py index bbb1da98..6f11fd5c 100644 --- a/sis_provisioner/test/models/test_group.py +++ b/sis_provisioner/test/models/test_group.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/models/test_role_cache.py b/sis_provisioner/test/models/test_role_cache.py index e158e0d0..9efcb6d1 100644 --- a/sis_provisioner/test/models/test_role_cache.py +++ b/sis_provisioner/test/models/test_role_cache.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/models/test_sisimport.py b/sis_provisioner/test/models/test_sisimport.py index 5b66d9b0..6a488364 100644 --- a/sis_provisioner/test/models/test_sisimport.py +++ b/sis_provisioner/test/models/test_sisimport.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/models/test_term.py b/sis_provisioner/test/models/test_term.py index bfa326fc..628b4aed 100644 --- a/sis_provisioner/test/models/test_term.py +++ b/sis_provisioner/test/models/test_term.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/models/test_user.py b/sis_provisioner/test/models/test_user.py index 78b3aa93..b137dc28 100644 --- a/sis_provisioner/test/models/test_user.py +++ b/sis_provisioner/test/models/test_user.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/test/views/test_admin.py b/sis_provisioner/test/views/test_admin.py index d7f4d2d1..b17e8e62 100644 --- a/sis_provisioner/test/views/test_admin.py +++ b/sis_provisioner/test/views/test_admin.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 from django.conf import settings diff --git a/sis_provisioner/test/views/test_course.py b/sis_provisioner/test/views/test_course.py index 2aa22342..b886b72f 100644 --- a/sis_provisioner/test/views/test_course.py +++ b/sis_provisioner/test/views/test_course.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 from django.conf import settings diff --git a/sis_provisioner/test/views/test_login.py b/sis_provisioner/test/views/test_login.py index 6f351eb8..eb8a9280 100644 --- a/sis_provisioner/test/views/test_login.py +++ b/sis_provisioner/test/views/test_login.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/urls.py b/sis_provisioner/urls.py index 0ce3b442..c0bc5cdc 100644 --- a/sis_provisioner/urls.py +++ b/sis_provisioner/urls.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 @@ -61,13 +61,13 @@ re_path(r'api/v1/course/(?P[a-zA-Z0-9\-_ &]+)/expiration$', CourseExpirationView.as_view(), name='CourseExpiration'), re_path(r'api/v1/courses/?$', CourseListView.as_view()), - re_path(r'api/v1/users/?$', UserView.as_view()), re_path(r'api/v1/users/(?P[a-fA-F0-9]{32})/merge$', UserMergeView.as_view()), re_path(r'api/v1/users/(?P[0-9]+)/sessions$', UserSessionsView.as_view()), re_path(r'api/v1/users/(?P[a-zA-Z0-9]+)/courses$', UserCourseView.as_view()), + re_path(r'api/v1/users/(?P[a-fA-F0-9]{32})?$', UserView.as_view()), re_path(r'api/v1/logins/?$', LoginValidationView.as_view()), re_path(r'api/v1/import/(?P[0-9]+)?$', ImportView.as_view()), re_path(r'api/v1/imports/?$', ImportListView.as_view()), diff --git a/sis_provisioner/views/admin.py b/sis_provisioner/views/admin.py index b6e75e81..5451b848 100644 --- a/sis_provisioner/views/admin.py +++ b/sis_provisioner/views/admin.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/views/astra.py b/sis_provisioner/views/astra.py index 52996b86..dfe0d38b 100644 --- a/sis_provisioner/views/astra.py +++ b/sis_provisioner/views/astra.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/views/canvas.py b/sis_provisioner/views/canvas.py index 2a4a1b1f..dc8b679d 100644 --- a/sis_provisioner/views/canvas.py +++ b/sis_provisioner/views/canvas.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/views/course/__init__.py b/sis_provisioner/views/course/__init__.py index 3b9757e8..e5e291be 100644 --- a/sis_provisioner/views/course/__init__.py +++ b/sis_provisioner/views/course/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/views/course/expiration.py b/sis_provisioner/views/course/expiration.py index feea8e45..cb740c0b 100644 --- a/sis_provisioner/views/course/expiration.py +++ b/sis_provisioner/views/course/expiration.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/views/enrollment.py b/sis_provisioner/views/enrollment.py index 6a7a2a06..fea8516e 100644 --- a/sis_provisioner/views/enrollment.py +++ b/sis_provisioner/views/enrollment.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/views/events.py b/sis_provisioner/views/events.py index f56e3235..15166850 100644 --- a/sis_provisioner/views/events.py +++ b/sis_provisioner/views/events.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/views/external_tools.py b/sis_provisioner/views/external_tools.py index 7c1221f4..77e81904 100644 --- a/sis_provisioner/views/external_tools.py +++ b/sis_provisioner/views/external_tools.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/views/group.py b/sis_provisioner/views/group.py index 66d3bda1..b079bf39 100644 --- a/sis_provisioner/views/group.py +++ b/sis_provisioner/views/group.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/views/groups/__init__.py b/sis_provisioner/views/groups/__init__.py index da27d138..d309b888 100644 --- a/sis_provisioner/views/groups/__init__.py +++ b/sis_provisioner/views/groups/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/views/groups/roles.py b/sis_provisioner/views/groups/roles.py index becfc675..6a935aec 100644 --- a/sis_provisioner/views/groups/roles.py +++ b/sis_provisioner/views/groups/roles.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/views/groups/validate.py b/sis_provisioner/views/groups/validate.py index b0bf538d..a567d064 100644 --- a/sis_provisioner/views/groups/validate.py +++ b/sis_provisioner/views/groups/validate.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/views/imports.py b/sis_provisioner/views/imports.py index de55387e..6cbf47c0 100644 --- a/sis_provisioner/views/imports.py +++ b/sis_provisioner/views/imports.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/views/jobs.py b/sis_provisioner/views/jobs.py index 0f4ce744..b35be748 100644 --- a/sis_provisioner/views/jobs.py +++ b/sis_provisioner/views/jobs.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/views/login.py b/sis_provisioner/views/login.py index f89358a9..694bfaf5 100644 --- a/sis_provisioner/views/login.py +++ b/sis_provisioner/views/login.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/views/terms.py b/sis_provisioner/views/terms.py index 55fddf4c..af934585 100644 --- a/sis_provisioner/views/terms.py +++ b/sis_provisioner/views/terms.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 diff --git a/sis_provisioner/views/user.py b/sis_provisioner/views/user.py index d9f8311c..c37d1b32 100644 --- a/sis_provisioner/views/user.py +++ b/sis_provisioner/views/user.py @@ -1,4 +1,4 @@ -# Copyright 2024 UW-IT, University of Washington +# Copyright 2025 UW-IT, University of Washington # SPDX-License-Identifier: Apache-2.0 @@ -51,12 +51,41 @@ def get(self, request, *args, **kwargs): return self.response_for_person(person) except DataFailureException as err: - data = json.loads(err.msg) - return self.error_response( - 400, "{} {}".format(err.status, err.msg)) + return self.error_response(400, f"{err.status} {err.msg}") except Exception as err: return self.error_response(400, err) + def put(self, request, *args, **kwargs): + reg_id = kwargs.get("reg_id") + body = request.read() + priority = None + + try: + new_values = json.loads(body) + except Exception as err: + return self.error_response(400, f"Unable to parse JSON: {err}") + + try: + # only priority PUTable right now + priority_str = new_values.get("priority", "").lower() + for key, val in User.PRIORITY_CHOICES: + if val == priority_str: + priority = key + + if priority is None: + return self.error_response( + 400, f"Invalid priority: '{priority_str}'") + + person = get_person_by_regid(reg_id) + User.objects.update_priority(person, priority) + + logger.info("{} set priority={} for user {}".format( + get_user(request), priority, reg_id)) + except DataFailureException as ex: + return self.error_response(ex.status, message=ex.msg) + + return self.response_for_person(person) + def post(self, request, *args, **kwargs): try: rep = json.loads(request.read()) @@ -89,6 +118,7 @@ def response_for_person(self, person): 'queue_id': None, 'can_merge_users': False, 'can_create_user_course': False, + 'masquerade_url': None, 'enrollment_url': None, 'canvas_users': [], } @@ -124,7 +154,6 @@ def response_for_person(self, person): ).format(api_path=PERSON_PREFIX, uwregid=user.sis_user_id) user_data['can_update_sis_id'] = False - user_data['can_masquerade_as_user'] = False user_data['can_terminate_user_sessions'] = ( user_data['can_access_canvas'] and user_data['last_login'] is not None and @@ -150,9 +179,11 @@ def response_for_person(self, person): response['can_access_canvas']): response['can_create_user_course'] = True - if (self.can_masquerade_as_user( + if (response['can_access_canvas'] and self.can_masquerade_as_user( self.request, response['canvas_users'][0]['login_id'])): - response['canvas_users'][0]['can_masquerade_as_user'] = True + user_id = response['canvas_users'][0]['id'] + response['masquerade_url'] = ( + f'https://canvas.uw.edu/users/{{user_id}}/masquerade') else: response['can_merge_users'] = self.can_merge_users(self.request)