@@ -61,7 +61,7 @@ private Map<String, Object> getUserAttributes(User user) {
6161
6262
6363 @ GetMapping ("/settings" )
64- public String userSettingsPage (Model model ) {
64+ public String userSettingsPage (@ RequestParam ( value = "error" , required = false ) String error , Model model ) {
6565 Authentication authentication = SecurityContextHolder .getContext ().getAuthentication ();
6666 String username = authentication .getName ();
6767
@@ -107,6 +107,8 @@ public String updateUserSettings(@RequestParam("username") String username,
107107 user .setEmail (email );
108108 }
109109
110+
111+
110112 boolean wantsToChangePassword =
111113 currentPassword != null && !currentPassword .trim ().isEmpty () &&
112114 newPassword != null && !newPassword .trim ().isEmpty () &&
@@ -139,6 +141,16 @@ public String updateUserSettings(@RequestParam("username") String username,
139141 user .setNotificationsEnabled (notificationsEnabled );
140142
141143 if (profileImage != null && !profileImage .isEmpty ()) {
144+ String originalFilename = profileImage .getOriginalFilename ();
145+ if (originalFilename != null &&
146+ !originalFilename .toLowerCase ().endsWith (".png" ) &&
147+ !originalFilename .toLowerCase ().endsWith (".jpg" ) &&
148+ !originalFilename .toLowerCase ().endsWith (".jpeg" )) {
149+ model .addAttribute ("error" , messageService .getError ("settings.upload.wrong.ending" ));
150+ model .addAttribute ("userAttributes" , getUserAttributes (user ));
151+ return "user-settings" ;
152+ }
153+
142154 try {
143155 InputStream is = profileImage .getInputStream ();
144156 BufferedImage originalImage = ImageIO .read (is );
0 commit comments