From 9ae449f94d2c3c23a272a36c486438430ca454b5 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms Date: Mon, 4 Dec 2023 15:00:58 +0000 Subject: use webp for avatars and convert current avatars, fixes #3183 Closes #3183 Merge request studip/studip!2326 --- .gitignore | 6 +- app/controllers/avatar.php | 25 +- app/controllers/privacy.php | 2 +- app/routes/User.php | 4 +- app/views/admin/licenses/edit.php | 4 +- app/views/avatar/update.php | 18 +- db/migrations/5.5.10_convert_avatars_to_webp.php | 116 +++++++ lib/bootstrap.php | 4 +- lib/classes/Assets.class.php | 99 +++--- lib/classes/Avatar.class.php | 345 ++++++++++++--------- lib/classes/CourseAvatar.class.php | 70 +---- lib/classes/InstituteAvatar.class.php | 69 +---- lib/classes/JsonApi/Schemas/User.php | 2 +- lib/classes/LicenseAvatar.php | 62 +--- lib/classes/StudygroupAvatar.class.php | 39 +-- lib/models/User.class.php | 5 +- lib/phplib/Seminar_Auth.class.php | 1 - .../images/avatars/course/nobody_medium.webp | Bin 0 -> 3354 bytes .../images/avatars/course/nobody_normal.webp | Bin 0 -> 8726 bytes .../assets/images/avatars/course/nobody_small.webp | Bin 0 -> 892 bytes .../images/avatars/course/studygroup_medium.webp | Bin 0 -> 5326 bytes .../images/avatars/course/studygroup_normal.webp | Bin 0 -> 13310 bytes .../images/avatars/course/studygroup_small.webp | Bin 0 -> 1232 bytes .../images/avatars/institute/nobody_medium.webp | Bin 0 -> 1932 bytes .../images/avatars/institute/nobody_normal.webp | Bin 0 -> 4364 bytes .../images/avatars/institute/nobody_small.webp | Bin 0 -> 734 bytes .../assets/images/avatars/user/nobody_medium.webp | Bin 0 -> 2750 bytes .../assets/images/avatars/user/nobody_normal.webp | Bin 0 -> 8196 bytes .../assets/images/avatars/user/nobody_small.webp | Bin 0 -> 752 bytes public/pictures/course/.gitkeep | 0 public/pictures/course/nobody_medium.png | Bin 2255 -> 0 bytes public/pictures/course/nobody_medium@2x.png | Bin 3950 -> 0 bytes public/pictures/course/nobody_normal.png | Bin 4666 -> 0 bytes public/pictures/course/nobody_normal@2x.png | Bin 8408 -> 0 bytes public/pictures/course/nobody_small.png | Bin 729 -> 0 bytes public/pictures/course/nobody_small@2x.png | Bin 1325 -> 0 bytes public/pictures/course/studygroup_medium.png | Bin 2734 -> 0 bytes public/pictures/course/studygroup_medium2x.png | Bin 4761 -> 0 bytes public/pictures/course/studygroup_normal.png | Bin 5733 -> 0 bytes public/pictures/course/studygroup_normal@2x.png | Bin 10774 -> 0 bytes public/pictures/course/studygroup_small.png | Bin 809 -> 0 bytes public/pictures/course/studygroup_small@2x.png | Bin 1513 -> 0 bytes public/pictures/institute/.gitkeep | 0 public/pictures/institute/nobody_medium.png | Bin 1568 -> 0 bytes public/pictures/institute/nobody_medium@2x.png | Bin 2020 -> 0 bytes public/pictures/institute/nobody_normal.png | Bin 2254 -> 0 bytes public/pictures/institute/nobody_normal@2x.png | Bin 3767 -> 0 bytes public/pictures/institute/nobody_small.png | Bin 968 -> 0 bytes public/pictures/institute/nobody_small@2x.png | Bin 568 -> 0 bytes public/pictures/licenses/CC-BY-1.0_medium.png | Bin 2223 -> 0 bytes public/pictures/licenses/CC-BY-1.0_medium.webp | Bin 0 -> 2928 bytes public/pictures/licenses/CC-BY-1.0_medium@2x.png | Bin 4098 -> 0 bytes public/pictures/licenses/CC-BY-1.0_normal.png | Bin 6548 -> 0 bytes public/pictures/licenses/CC-BY-1.0_normal.webp | Bin 0 -> 6982 bytes public/pictures/licenses/CC-BY-1.0_normal@2x.png | Bin 15596 -> 0 bytes public/pictures/licenses/CC-BY-1.0_small.png | Bin 1353 -> 0 bytes public/pictures/licenses/CC-BY-1.0_small.webp | Bin 0 -> 1406 bytes public/pictures/licenses/CC-BY-1.0_small@2x.png | Bin 2223 -> 0 bytes public/pictures/licenses/CC-BY-2.0_medium.png | Bin 2223 -> 0 bytes public/pictures/licenses/CC-BY-2.0_medium.webp | Bin 0 -> 2928 bytes public/pictures/licenses/CC-BY-2.0_medium@2x.png | Bin 4098 -> 0 bytes public/pictures/licenses/CC-BY-2.0_normal.png | Bin 6550 -> 0 bytes public/pictures/licenses/CC-BY-2.0_normal.webp | Bin 0 -> 6982 bytes public/pictures/licenses/CC-BY-2.0_normal@2x.png | Bin 15596 -> 0 bytes public/pictures/licenses/CC-BY-2.0_small.png | Bin 1352 -> 0 bytes public/pictures/licenses/CC-BY-2.0_small.webp | Bin 0 -> 1406 bytes public/pictures/licenses/CC-BY-2.0_small@2x.png | Bin 2223 -> 0 bytes public/pictures/licenses/CC-BY-2.5_medium.png | Bin 2223 -> 0 bytes public/pictures/licenses/CC-BY-2.5_medium.webp | Bin 0 -> 2928 bytes public/pictures/licenses/CC-BY-2.5_medium@2x.png | Bin 4098 -> 0 bytes public/pictures/licenses/CC-BY-2.5_normal.png | Bin 6548 -> 0 bytes public/pictures/licenses/CC-BY-2.5_normal.webp | Bin 0 -> 6982 bytes public/pictures/licenses/CC-BY-2.5_normal@2x.png | Bin 15596 -> 0 bytes public/pictures/licenses/CC-BY-2.5_small.png | Bin 1352 -> 0 bytes public/pictures/licenses/CC-BY-2.5_small.webp | Bin 0 -> 1406 bytes public/pictures/licenses/CC-BY-2.5_small@2x.png | Bin 2223 -> 0 bytes public/pictures/licenses/CC-BY-3.0_medium.png | Bin 2223 -> 0 bytes public/pictures/licenses/CC-BY-3.0_medium.webp | Bin 0 -> 2928 bytes public/pictures/licenses/CC-BY-3.0_medium@2x.png | Bin 4098 -> 0 bytes public/pictures/licenses/CC-BY-3.0_normal.png | Bin 6548 -> 0 bytes public/pictures/licenses/CC-BY-3.0_normal.webp | Bin 0 -> 6982 bytes public/pictures/licenses/CC-BY-3.0_normal@2x.png | Bin 15596 -> 0 bytes public/pictures/licenses/CC-BY-3.0_small.png | Bin 1352 -> 0 bytes public/pictures/licenses/CC-BY-3.0_small.webp | Bin 0 -> 1406 bytes public/pictures/licenses/CC-BY-3.0_small@2x.png | Bin 2223 -> 0 bytes public/pictures/licenses/CC-BY-4.0_medium.png | Bin 2223 -> 0 bytes public/pictures/licenses/CC-BY-4.0_medium.webp | Bin 0 -> 2928 bytes public/pictures/licenses/CC-BY-4.0_medium@2x.png | Bin 4098 -> 0 bytes public/pictures/licenses/CC-BY-4.0_normal.png | Bin 6550 -> 0 bytes public/pictures/licenses/CC-BY-4.0_normal.webp | Bin 0 -> 6982 bytes public/pictures/licenses/CC-BY-4.0_normal@2x.png | Bin 15596 -> 0 bytes public/pictures/licenses/CC-BY-4.0_small.png | Bin 1351 -> 0 bytes public/pictures/licenses/CC-BY-4.0_small.webp | Bin 0 -> 1406 bytes public/pictures/licenses/CC-BY-4.0_small@2x.png | Bin 2223 -> 0 bytes public/pictures/licenses/CC-BY-SA-1.0_medium.png | Bin 2650 -> 0 bytes public/pictures/licenses/CC-BY-SA-1.0_medium.webp | Bin 0 -> 4250 bytes .../pictures/licenses/CC-BY-SA-1.0_medium@2x.png | Bin 5033 -> 0 bytes public/pictures/licenses/CC-BY-SA-1.0_normal.png | Bin 6178 -> 0 bytes public/pictures/licenses/CC-BY-SA-1.0_normal.webp | Bin 0 -> 10244 bytes .../pictures/licenses/CC-BY-SA-1.0_normal@2x.png | Bin 13313 -> 0 bytes public/pictures/licenses/CC-BY-SA-1.0_small.png | Bin 1526 -> 0 bytes public/pictures/licenses/CC-BY-SA-1.0_small.webp | Bin 0 -> 1984 bytes public/pictures/licenses/CC-BY-SA-1.0_small@2x.png | Bin 2650 -> 0 bytes public/pictures/licenses/CC-BY-SA-2.0_medium.png | Bin 3504 -> 0 bytes public/pictures/licenses/CC-BY-SA-2.0_medium.webp | Bin 0 -> 5364 bytes .../pictures/licenses/CC-BY-SA-2.0_medium@2x.png | Bin 8657 -> 0 bytes public/pictures/licenses/CC-BY-SA-2.0_normal.png | Bin 11880 -> 0 bytes public/pictures/licenses/CC-BY-SA-2.0_normal.webp | Bin 0 -> 13508 bytes .../pictures/licenses/CC-BY-SA-2.0_normal@2x.png | Bin 8646 -> 0 bytes public/pictures/licenses/CC-BY-SA-2.0_small.png | Bin 1760 -> 0 bytes public/pictures/licenses/CC-BY-SA-2.0_small.webp | Bin 0 -> 2468 bytes public/pictures/licenses/CC-BY-SA-2.0_small@2x.png | Bin 3506 -> 0 bytes public/pictures/licenses/CC-BY-SA-2.5_medium.png | Bin 2650 -> 0 bytes public/pictures/licenses/CC-BY-SA-2.5_medium.webp | Bin 0 -> 4250 bytes .../pictures/licenses/CC-BY-SA-2.5_medium@2x.png | Bin 5033 -> 0 bytes public/pictures/licenses/CC-BY-SA-2.5_normal.png | Bin 6178 -> 0 bytes public/pictures/licenses/CC-BY-SA-2.5_normal.webp | Bin 0 -> 10244 bytes .../pictures/licenses/CC-BY-SA-2.5_normal@2x.png | Bin 13313 -> 0 bytes public/pictures/licenses/CC-BY-SA-2.5_small.png | Bin 1527 -> 0 bytes public/pictures/licenses/CC-BY-SA-2.5_small.webp | Bin 0 -> 1984 bytes public/pictures/licenses/CC-BY-SA-2.5_small@2x.png | Bin 2650 -> 0 bytes public/pictures/licenses/CC-BY-SA-3.0_medium.png | Bin 2650 -> 0 bytes public/pictures/licenses/CC-BY-SA-3.0_medium.webp | Bin 0 -> 4250 bytes .../pictures/licenses/CC-BY-SA-3.0_medium@2x.png | Bin 5033 -> 0 bytes public/pictures/licenses/CC-BY-SA-3.0_normal.png | Bin 6178 -> 0 bytes public/pictures/licenses/CC-BY-SA-3.0_normal.webp | Bin 0 -> 10244 bytes .../pictures/licenses/CC-BY-SA-3.0_normal@2x.png | Bin 13313 -> 0 bytes public/pictures/licenses/CC-BY-SA-3.0_small.png | Bin 1525 -> 0 bytes public/pictures/licenses/CC-BY-SA-3.0_small.webp | Bin 0 -> 1984 bytes public/pictures/licenses/CC-BY-SA-3.0_small@2x.png | Bin 2650 -> 0 bytes public/pictures/licenses/CC-BY-SA-4.0_medium.png | Bin 2650 -> 0 bytes public/pictures/licenses/CC-BY-SA-4.0_medium.webp | Bin 0 -> 4250 bytes .../pictures/licenses/CC-BY-SA-4.0_medium@2x.png | Bin 5033 -> 0 bytes public/pictures/licenses/CC-BY-SA-4.0_normal.png | Bin 6178 -> 0 bytes public/pictures/licenses/CC-BY-SA-4.0_normal.webp | Bin 0 -> 10244 bytes .../pictures/licenses/CC-BY-SA-4.0_normal@2x.png | Bin 13313 -> 0 bytes public/pictures/licenses/CC-BY-SA-4.0_small.png | Bin 1526 -> 0 bytes public/pictures/licenses/CC-BY-SA-4.0_small.webp | Bin 0 -> 1984 bytes public/pictures/licenses/CC-BY-SA-4.0_small@2x.png | Bin 2650 -> 0 bytes public/pictures/licenses/CC0-1.0_medium.png | Bin 2214 -> 0 bytes public/pictures/licenses/CC0-1.0_medium.webp | Bin 0 -> 3664 bytes public/pictures/licenses/CC0-1.0_medium@2x.png | Bin 4287 -> 0 bytes public/pictures/licenses/CC0-1.0_normal.png | Bin 5598 -> 0 bytes public/pictures/licenses/CC0-1.0_normal.webp | Bin 0 -> 8372 bytes public/pictures/licenses/CC0-1.0_normal@2x.png | Bin 13843 -> 0 bytes public/pictures/licenses/CC0-1.0_small.png | Bin 1243 -> 0 bytes public/pictures/licenses/CC0-1.0_small.webp | Bin 0 -> 1828 bytes public/pictures/licenses/CC0-1.0_small@2x.png | Bin 2213 -> 0 bytes public/pictures/user/.gitkeep | 0 public/pictures/user/nobody_medium.png | Bin 4833 -> 0 bytes public/pictures/user/nobody_medium@2x.png | Bin 10715 -> 0 bytes public/pictures/user/nobody_normal.png | Bin 13017 -> 0 bytes public/pictures/user/nobody_normal@2x.png | Bin 22292 -> 0 bytes public/pictures/user/nobody_small.png | Bin 920 -> 0 bytes public/pictures/user/nobody_small@2x.png | Bin 2198 -> 0 bytes templates/loginform.php | 2 - templates/sidebar/sidebar.php | 2 +- tests/unit/lib/classes/AvatarClassTest.php | 176 ++++++----- 158 files changed, 545 insertions(+), 506 deletions(-) create mode 100644 db/migrations/5.5.10_convert_avatars_to_webp.php create mode 100644 public/assets/images/avatars/course/nobody_medium.webp create mode 100644 public/assets/images/avatars/course/nobody_normal.webp create mode 100644 public/assets/images/avatars/course/nobody_small.webp create mode 100644 public/assets/images/avatars/course/studygroup_medium.webp create mode 100644 public/assets/images/avatars/course/studygroup_normal.webp create mode 100644 public/assets/images/avatars/course/studygroup_small.webp create mode 100644 public/assets/images/avatars/institute/nobody_medium.webp create mode 100644 public/assets/images/avatars/institute/nobody_normal.webp create mode 100644 public/assets/images/avatars/institute/nobody_small.webp create mode 100644 public/assets/images/avatars/user/nobody_medium.webp create mode 100644 public/assets/images/avatars/user/nobody_normal.webp create mode 100644 public/assets/images/avatars/user/nobody_small.webp create mode 100644 public/pictures/course/.gitkeep delete mode 100644 public/pictures/course/nobody_medium.png delete mode 100644 public/pictures/course/nobody_medium@2x.png delete mode 100644 public/pictures/course/nobody_normal.png delete mode 100644 public/pictures/course/nobody_normal@2x.png delete mode 100644 public/pictures/course/nobody_small.png delete mode 100644 public/pictures/course/nobody_small@2x.png delete mode 100644 public/pictures/course/studygroup_medium.png delete mode 100644 public/pictures/course/studygroup_medium2x.png delete mode 100644 public/pictures/course/studygroup_normal.png delete mode 100644 public/pictures/course/studygroup_normal@2x.png delete mode 100644 public/pictures/course/studygroup_small.png delete mode 100644 public/pictures/course/studygroup_small@2x.png create mode 100644 public/pictures/institute/.gitkeep delete mode 100644 public/pictures/institute/nobody_medium.png delete mode 100644 public/pictures/institute/nobody_medium@2x.png delete mode 100644 public/pictures/institute/nobody_normal.png delete mode 100644 public/pictures/institute/nobody_normal@2x.png delete mode 100644 public/pictures/institute/nobody_small.png delete mode 100644 public/pictures/institute/nobody_small@2x.png delete mode 100644 public/pictures/licenses/CC-BY-1.0_medium.png create mode 100644 public/pictures/licenses/CC-BY-1.0_medium.webp delete mode 100644 public/pictures/licenses/CC-BY-1.0_medium@2x.png delete mode 100644 public/pictures/licenses/CC-BY-1.0_normal.png create mode 100644 public/pictures/licenses/CC-BY-1.0_normal.webp delete mode 100644 public/pictures/licenses/CC-BY-1.0_normal@2x.png delete mode 100644 public/pictures/licenses/CC-BY-1.0_small.png create mode 100644 public/pictures/licenses/CC-BY-1.0_small.webp delete mode 100644 public/pictures/licenses/CC-BY-1.0_small@2x.png delete mode 100644 public/pictures/licenses/CC-BY-2.0_medium.png create mode 100644 public/pictures/licenses/CC-BY-2.0_medium.webp delete mode 100644 public/pictures/licenses/CC-BY-2.0_medium@2x.png delete mode 100644 public/pictures/licenses/CC-BY-2.0_normal.png create mode 100644 public/pictures/licenses/CC-BY-2.0_normal.webp delete mode 100644 public/pictures/licenses/CC-BY-2.0_normal@2x.png delete mode 100644 public/pictures/licenses/CC-BY-2.0_small.png create mode 100644 public/pictures/licenses/CC-BY-2.0_small.webp delete mode 100644 public/pictures/licenses/CC-BY-2.0_small@2x.png delete mode 100644 public/pictures/licenses/CC-BY-2.5_medium.png create mode 100644 public/pictures/licenses/CC-BY-2.5_medium.webp delete mode 100644 public/pictures/licenses/CC-BY-2.5_medium@2x.png delete mode 100644 public/pictures/licenses/CC-BY-2.5_normal.png create mode 100644 public/pictures/licenses/CC-BY-2.5_normal.webp delete mode 100644 public/pictures/licenses/CC-BY-2.5_normal@2x.png delete mode 100644 public/pictures/licenses/CC-BY-2.5_small.png create mode 100644 public/pictures/licenses/CC-BY-2.5_small.webp delete mode 100644 public/pictures/licenses/CC-BY-2.5_small@2x.png delete mode 100644 public/pictures/licenses/CC-BY-3.0_medium.png create mode 100644 public/pictures/licenses/CC-BY-3.0_medium.webp delete mode 100644 public/pictures/licenses/CC-BY-3.0_medium@2x.png delete mode 100644 public/pictures/licenses/CC-BY-3.0_normal.png create mode 100644 public/pictures/licenses/CC-BY-3.0_normal.webp delete mode 100644 public/pictures/licenses/CC-BY-3.0_normal@2x.png delete mode 100644 public/pictures/licenses/CC-BY-3.0_small.png create mode 100644 public/pictures/licenses/CC-BY-3.0_small.webp delete mode 100644 public/pictures/licenses/CC-BY-3.0_small@2x.png delete mode 100644 public/pictures/licenses/CC-BY-4.0_medium.png create mode 100644 public/pictures/licenses/CC-BY-4.0_medium.webp delete mode 100644 public/pictures/licenses/CC-BY-4.0_medium@2x.png delete mode 100644 public/pictures/licenses/CC-BY-4.0_normal.png create mode 100644 public/pictures/licenses/CC-BY-4.0_normal.webp delete mode 100644 public/pictures/licenses/CC-BY-4.0_normal@2x.png delete mode 100644 public/pictures/licenses/CC-BY-4.0_small.png create mode 100644 public/pictures/licenses/CC-BY-4.0_small.webp delete mode 100644 public/pictures/licenses/CC-BY-4.0_small@2x.png delete mode 100644 public/pictures/licenses/CC-BY-SA-1.0_medium.png create mode 100644 public/pictures/licenses/CC-BY-SA-1.0_medium.webp delete mode 100644 public/pictures/licenses/CC-BY-SA-1.0_medium@2x.png delete mode 100644 public/pictures/licenses/CC-BY-SA-1.0_normal.png create mode 100644 public/pictures/licenses/CC-BY-SA-1.0_normal.webp delete mode 100644 public/pictures/licenses/CC-BY-SA-1.0_normal@2x.png delete mode 100644 public/pictures/licenses/CC-BY-SA-1.0_small.png create mode 100644 public/pictures/licenses/CC-BY-SA-1.0_small.webp delete mode 100644 public/pictures/licenses/CC-BY-SA-1.0_small@2x.png delete mode 100644 public/pictures/licenses/CC-BY-SA-2.0_medium.png create mode 100644 public/pictures/licenses/CC-BY-SA-2.0_medium.webp delete mode 100644 public/pictures/licenses/CC-BY-SA-2.0_medium@2x.png delete mode 100644 public/pictures/licenses/CC-BY-SA-2.0_normal.png create mode 100644 public/pictures/licenses/CC-BY-SA-2.0_normal.webp delete mode 100644 public/pictures/licenses/CC-BY-SA-2.0_normal@2x.png delete mode 100644 public/pictures/licenses/CC-BY-SA-2.0_small.png create mode 100644 public/pictures/licenses/CC-BY-SA-2.0_small.webp delete mode 100644 public/pictures/licenses/CC-BY-SA-2.0_small@2x.png delete mode 100644 public/pictures/licenses/CC-BY-SA-2.5_medium.png create mode 100644 public/pictures/licenses/CC-BY-SA-2.5_medium.webp delete mode 100644 public/pictures/licenses/CC-BY-SA-2.5_medium@2x.png delete mode 100644 public/pictures/licenses/CC-BY-SA-2.5_normal.png create mode 100644 public/pictures/licenses/CC-BY-SA-2.5_normal.webp delete mode 100644 public/pictures/licenses/CC-BY-SA-2.5_normal@2x.png delete mode 100644 public/pictures/licenses/CC-BY-SA-2.5_small.png create mode 100644 public/pictures/licenses/CC-BY-SA-2.5_small.webp delete mode 100644 public/pictures/licenses/CC-BY-SA-2.5_small@2x.png delete mode 100644 public/pictures/licenses/CC-BY-SA-3.0_medium.png create mode 100644 public/pictures/licenses/CC-BY-SA-3.0_medium.webp delete mode 100644 public/pictures/licenses/CC-BY-SA-3.0_medium@2x.png delete mode 100644 public/pictures/licenses/CC-BY-SA-3.0_normal.png create mode 100644 public/pictures/licenses/CC-BY-SA-3.0_normal.webp delete mode 100644 public/pictures/licenses/CC-BY-SA-3.0_normal@2x.png delete mode 100644 public/pictures/licenses/CC-BY-SA-3.0_small.png create mode 100644 public/pictures/licenses/CC-BY-SA-3.0_small.webp delete mode 100644 public/pictures/licenses/CC-BY-SA-3.0_small@2x.png delete mode 100644 public/pictures/licenses/CC-BY-SA-4.0_medium.png create mode 100644 public/pictures/licenses/CC-BY-SA-4.0_medium.webp delete mode 100644 public/pictures/licenses/CC-BY-SA-4.0_medium@2x.png delete mode 100644 public/pictures/licenses/CC-BY-SA-4.0_normal.png create mode 100644 public/pictures/licenses/CC-BY-SA-4.0_normal.webp delete mode 100644 public/pictures/licenses/CC-BY-SA-4.0_normal@2x.png delete mode 100644 public/pictures/licenses/CC-BY-SA-4.0_small.png create mode 100644 public/pictures/licenses/CC-BY-SA-4.0_small.webp delete mode 100644 public/pictures/licenses/CC-BY-SA-4.0_small@2x.png delete mode 100644 public/pictures/licenses/CC0-1.0_medium.png create mode 100644 public/pictures/licenses/CC0-1.0_medium.webp delete mode 100644 public/pictures/licenses/CC0-1.0_medium@2x.png delete mode 100644 public/pictures/licenses/CC0-1.0_normal.png create mode 100644 public/pictures/licenses/CC0-1.0_normal.webp delete mode 100644 public/pictures/licenses/CC0-1.0_normal@2x.png delete mode 100644 public/pictures/licenses/CC0-1.0_small.png create mode 100644 public/pictures/licenses/CC0-1.0_small.webp delete mode 100644 public/pictures/licenses/CC0-1.0_small@2x.png create mode 100644 public/pictures/user/.gitkeep delete mode 100644 public/pictures/user/nobody_medium.png delete mode 100644 public/pictures/user/nobody_medium@2x.png delete mode 100644 public/pictures/user/nobody_normal.png delete mode 100644 public/pictures/user/nobody_normal@2x.png delete mode 100644 public/pictures/user/nobody_small.png delete mode 100644 public/pictures/user/nobody_small@2x.png diff --git a/.gitignore b/.gitignore index 97ab31d..81dec99 100644 --- a/.gitignore +++ b/.gitignore @@ -31,10 +31,10 @@ public/pictures/banner/*.gif public/pictures/banner/*.jpeg public/pictures/banner/*.jpg public/pictures/banner/*.png -public/pictures/course/[0-9a-f]*.png -public/pictures/institute/[0-9a-f]*.png public/pictures/stock-images/* -public/pictures/user/[0-9a-f]*.png +public/pictures/course/*/*.webp +public/pictures/institute/*/*.webp +public/pictures/user/*/*.webp public/plugins_packages/* tests/_log diff --git a/app/controllers/avatar.php b/app/controllers/avatar.php index 992c06e..c549cf0 100644 --- a/app/controllers/avatar.php +++ b/app/controllers/avatar.php @@ -29,13 +29,13 @@ class AvatarController extends AuthenticatedController PageLayout::setTitle(_('Profilbild ändern')); $has_perm = $GLOBALS['perm']->have_profile_perm('user', $id); - $class = 'Avatar'; + $class = Avatar::class; $this->cancel_link = $this->url_for('profile', ['username' => User::find($id)->username]); } else if ($type == 'institute') { PageLayout::setTitle(Context::getHeaderLine() . ' - ' . _('Einrichtungsbild ändern')); $has_perm = $GLOBALS['perm']->have_studip_perm('admin', $id); - $class = 'InstituteAvatar'; + $class = InstituteAvatar::class; $this->cancel_link = $this->url_for('institute/basicdata/index', ['cid' => $id]); } else { PageLayout::setTitle(Context::getHeaderLine() . ' - ' . _('Veranstaltungsbild ändern')); @@ -44,10 +44,10 @@ class AvatarController extends AuthenticatedController $sem = Seminar::getInstance($id); $studygroup_mode = $sem->getSemClass()->offsetget('studygroup_mode'); if ($studygroup_mode) { - $class = 'StudygroupAvatar'; + $class = StudygroupAvatar::class; $this->cancel_link = $this->url_for('course/studygroup/edit?cid=' . $id); } else { - $class = 'CourseAvatar'; + $class = CourseAvatar::class; $this->cancel_link = $this->url_for('course/management?cid=' . $id); } } @@ -56,20 +56,17 @@ class AvatarController extends AuthenticatedController throw new AccessDeniedException(_('Sie haben keine Berechtigung, das Bild zu ändern.')); } - if ($type == 'user') { + if ($type === 'user') { Navigation::activateItem('/profile/index'); - } else if ($type == 'institute') { + } else if ($type === 'institute') { Navigation::activateItem('/admin/institute/details'); } else { Navigation::activateItem('/course/admin/avatar'); } - $this->customized = false; $avatar = $class::getAvatar($id); $this->avatar = $avatar->getURL($class::NORMAL); - if ($avatar->is_customized()) { - $this->customized = true; - } + $this->customized = $avatar->is_customized(); $this->type = $type; $this->id = $id; @@ -88,21 +85,21 @@ class AvatarController extends AuthenticatedController // Check for permission to save a new avatar. if ($type == 'user') { $has_perm = $GLOBALS['perm']->have_profile_perm('user', $id); - $class = 'Avatar'; + $class = Avatar::class; $redirect = 'profile?username=' . User::find($id)->username; } else if ($type == 'institute') { $has_perm = $GLOBALS['perm']->have_studip_perm('admin', $id); - $class = 'InstituteAvatar'; + $class = InstituteAvatar::class; $redirect = 'institute/basicdata/index'; } else { $has_perm = $GLOBALS['perm']->have_studip_perm('tutor', $id); $sem = Seminar::getInstance($id); $studygroup_mode = $sem->getSemClass()->offsetget('studygroup_mode'); if ($studygroup_mode) { - $class = 'StudygroupAvatar'; + $class = StudygroupAvatar::class; $redirect = 'course/studygroup/edit/?cid=' . $id; } else { - $class = 'CourseAvatar'; + $class = CourseAvatar::class; $redirect = 'course/management'; } } diff --git a/app/controllers/privacy.php b/app/controllers/privacy.php index ee1f157..ba8e6f1 100644 --- a/app/controllers/privacy.php +++ b/app/controllers/privacy.php @@ -298,7 +298,7 @@ class PrivacyController extends AuthenticatedController $avatar = Avatar::getAvatar($user_id); if ($avatar->is_customized()) { - $zip->addFile($avatar->getCustomAvatarPath('normal'), $user_id . '.png'); + $zip->addFile($avatar->getCustomAvatarPath('normal'), $user_id . '.webp'); } foreach (FileRef::findByUser_id($user_id) as $fileref) { diff --git a/app/routes/User.php b/app/routes/User.php index 16de204..d3cce26 100644 --- a/app/routes/User.php +++ b/app/routes/User.php @@ -26,7 +26,7 @@ class User extends \RESTAPI\RouteMap 'avatar_small' => $avatar->getURL(\Avatar::SMALL), 'avatar_medium' => $avatar->getURL(\Avatar::MEDIUM), 'avatar_normal' => $avatar->getURL(\Avatar::NORMAL), - 'avatar_original' => $avatar->getURL(\Avatar::ORIGINAL) + 'avatar_original' => $avatar->getURL(\Avatar::NORMAL) ]; } @@ -118,7 +118,7 @@ class User extends \RESTAPI\RouteMap 'avatar_small' => $avatar->getURL(\Avatar::SMALL), 'avatar_medium' => $avatar->getURL(\Avatar::MEDIUM), 'avatar_normal' => $avatar->getURL(\Avatar::NORMAL), - 'avatar_original' => $avatar->getURL(\Avatar::ORIGINAL), + 'avatar_original' => $avatar->getURL(\Avatar::NORMAL), 'phone' => $get_field('privatnr', 'private_phone'), 'homepage' => $get_field('Home', 'homepage'), 'privadr' => strip_tags($get_field('privadr', 'privadr')), diff --git a/app/views/admin/licenses/edit.php b/app/views/admin/licenses/edit.php index ce722c2..63ac391 100644 --- a/app/views/admin/licenses/edit.php +++ b/app/views/admin/licenses/edit.php @@ -36,8 +36,8 @@