From ca3e6939698cd74730c97ad865dc8c0f9f45a27c Mon Sep 17 00:00:00 2001 From: Subivas Date: Mon, 1 Dec 2025 21:18:47 +0100 Subject: [PATCH] Ajout galerie publique pour tous les users / anonymes --- .../controller/PhotoController.java | 6 ++++++ .../repository/PhotoRepository.java | 2 +- .../fotosharing/security/SecurityConfig.java | 2 +- .../fotosharing/service/PhotoService.java | 1 + .../service/impl/PhotoServiceImpl.java | 5 +++++ src/main/resources/templates/galerie.html | 17 +++++++++++++++++ src/main/resources/templates/home.html | 1 + src/main/resources/templates/login.html | 1 + src/main/resources/templates/mes-photos.html | 2 ++ src/main/resources/templates/register.html | 1 + src/main/resources/templates/upload.html | 1 + .../controller/PhotoController.class | Bin 5839 -> 6088 bytes .../repository/PhotoRepository.class | Bin 559 -> 937 bytes .../fotosharing/security/SecurityConfig.class | Bin 6147 -> 6190 bytes .../fotosharing/service/PhotoService.class | Bin 666 -> 783 bytes .../service/impl/PhotoServiceImpl.class | Bin 5383 -> 5731 bytes target/classes/templates/galerie.html | 17 +++++++++++++++++ target/classes/templates/home.html | 1 + target/classes/templates/login.html | 1 + target/classes/templates/mes-photos.html | 2 ++ target/classes/templates/register.html | 1 + target/classes/templates/upload.html | 1 + 22 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/templates/galerie.html create mode 100644 target/classes/templates/galerie.html diff --git a/src/main/java/local/epul4a/fotosharing/controller/PhotoController.java b/src/main/java/local/epul4a/fotosharing/controller/PhotoController.java index e4c7abd..1fab429 100644 --- a/src/main/java/local/epul4a/fotosharing/controller/PhotoController.java +++ b/src/main/java/local/epul4a/fotosharing/controller/PhotoController.java @@ -85,6 +85,12 @@ public class PhotoController { return "mes-photos"; } + @GetMapping("/galerie") + public String galerie(Model model) { + model.addAttribute("photos", photoService.listPublicPhotos()); + return "galerie"; + } + } diff --git a/src/main/java/local/epul4a/fotosharing/repository/PhotoRepository.java b/src/main/java/local/epul4a/fotosharing/repository/PhotoRepository.java index c2f264c..6fa15df 100644 --- a/src/main/java/local/epul4a/fotosharing/repository/PhotoRepository.java +++ b/src/main/java/local/epul4a/fotosharing/repository/PhotoRepository.java @@ -5,6 +5,6 @@ import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; public interface PhotoRepository extends JpaRepository { - List findByProprietaire_Email(String email); + List findByVisibilite(Photo.Visibilite visibilite); } \ No newline at end of file diff --git a/src/main/java/local/epul4a/fotosharing/security/SecurityConfig.java b/src/main/java/local/epul4a/fotosharing/security/SecurityConfig.java index 0cefae8..24174e9 100644 --- a/src/main/java/local/epul4a/fotosharing/security/SecurityConfig.java +++ b/src/main/java/local/epul4a/fotosharing/security/SecurityConfig.java @@ -39,7 +39,7 @@ public class SecurityConfig { http .userDetailsService(customUserDetailsService) // Utiliser directement le UserDetailsService .authorizeHttpRequests(auth -> auth - .requestMatchers("/register", "/login", "/css/**", "/js/**").permitAll() + .requestMatchers("/register", "/login", "/css/**", "/js/**", "/photo/*/raw", "/galerie").permitAll() .anyRequest().authenticated() ) .formLogin(form -> form diff --git a/src/main/java/local/epul4a/fotosharing/service/PhotoService.java b/src/main/java/local/epul4a/fotosharing/service/PhotoService.java index 442553b..e323662 100644 --- a/src/main/java/local/epul4a/fotosharing/service/PhotoService.java +++ b/src/main/java/local/epul4a/fotosharing/service/PhotoService.java @@ -10,5 +10,6 @@ public interface PhotoService { Photo store(MultipartFile file, String visibilite, String ownerEmail) throws IOException; Path loadAsPath(String uuidFile); List listByOwner(String email); + List listPublicPhotos(); } diff --git a/src/main/java/local/epul4a/fotosharing/service/impl/PhotoServiceImpl.java b/src/main/java/local/epul4a/fotosharing/service/impl/PhotoServiceImpl.java index b2d6b96..41463b2 100644 --- a/src/main/java/local/epul4a/fotosharing/service/impl/PhotoServiceImpl.java +++ b/src/main/java/local/epul4a/fotosharing/service/impl/PhotoServiceImpl.java @@ -64,4 +64,9 @@ public class PhotoServiceImpl implements PhotoService { public List listByOwner(String email) { return photoRepository.findByProprietaire_Email(email); } + + @Override + public List listPublicPhotos() { + return photoRepository.findByVisibilite(Photo.Visibilite.PUBLIC); + } } diff --git a/src/main/resources/templates/galerie.html b/src/main/resources/templates/galerie.html new file mode 100644 index 0000000..c1cf7ad --- /dev/null +++ b/src/main/resources/templates/galerie.html @@ -0,0 +1,17 @@ + + +Galerie + +

Galerie publique

+ +

Accueil

+ +
    +
  • + nom + — + Voir +
  • +
+ + diff --git a/src/main/resources/templates/home.html b/src/main/resources/templates/home.html index f39742e..a5135cc 100644 --- a/src/main/resources/templates/home.html +++ b/src/main/resources/templates/home.html @@ -7,6 +7,7 @@

Bienvenue sur FotoSharing

Uploader une photo

Voir mes photos

+

Voir la galerie publique

+

Galerie publique

diff --git a/src/main/resources/templates/upload.html b/src/main/resources/templates/upload.html index 09153da..0dd0b88 100644 --- a/src/main/resources/templates/upload.html +++ b/src/main/resources/templates/upload.html @@ -17,6 +17,7 @@
+

Galerie publique

diff --git a/target/classes/local/epul4a/fotosharing/controller/PhotoController.class b/target/classes/local/epul4a/fotosharing/controller/PhotoController.class index 8c50fab39f562afa8446f3343e5f7b515c3e5cf2..d703464e5808510aec5b18d7bb2768e445c28a69 100644 GIT binary patch delta 1106 zcmZ8gSxi$=5Iy&`@=B?tEsJ78Y|t1eLXDc3h-gAId==x}76-Osn}921M5+qcEDIUS3(G32DkB1()U>?vKy|>srpgHU^XSjAp;kaI4TOTL zji5kjYM!}NOWM?!&{A$UtVul#QW0UJ(!bIO1^tDAsxlqDEuWo5LQFOrViHZ4#b!=* zBu3l(LwU?BSLuw00war8g(?Fpyz}OIr+bABj|Jk5aL5P;v%E4{I8YJHP7x`wQFv;{ zGd$Pv!htlrG@rS?iFand+b2Gl1MWF7Q4kn`9ner`=6SrL-mLJ9s%ao~FDyJ`u@k#^ zODzTtzLr`nT#VRFJzAq#nn2ecjFyS0XYiMNYVo+6cxkBTDQf}a(ZF*slVvFTURs>= z?xQr8z$qfwPxSx}!b)K7xDp90Zkz%(A2xmya0rJ9eH6bVILhRc;6W3bX#;YGVdvl& zT2$d2v@$|d-Zr!=dO7I8an|UhmGHtkrYKr&E5pD5ppDW&kr-!5kX?fy6~+@ZdaX2^ zl*R~yq^e1^6{jMQJ0v@E24{(@&Mb&;Ad@fgxr)h5)&w>TW8Hvmoa1W`s&Ss2H1@HC z>@E=NG!)??E)i=1remGrE>UN~I)Je{Qoh5deXVlu|z>i9E=)O;R6kK6)?HH_xSrh k#R+X9p3v|>osaN}#xX>fk6gTtipE;rZ+O4OdwfLFFCf9#i2wiq delta 898 zcmY*XNla5w6g}_L_LovA`~q4Mno^Am6A+C}3=1bvaYKwYv1(0iNidk`0+%c` ze`9efj^F^)I#R@05k#EldF{%z(|HdelArtD{pY@W-#Pc)!Qg1XHT1i006-1CrCkA+ zU100%71k!rx4*ME)8&fVe76OR?ctViFdj_=w?t!+U|o3UHXU~}b3OIK>Mw{adMYrb zp(&OKZ#GviH>*tH#B+h7Xgn5;N2*Pk6c6u+)KrKHj{`4Vc!k$G-ncObZ>q9Ds(THEfvc+sV#=jcXa#>BvPn@?qj25feFFJvfBJ+@+TXH}j?E zK>=$Vp`WV}mJk>^ifO9!Qg2bUEbUOoXR2~zsX713r5Md;w1al65uzE#>7Bqy(nwnS zyp5vW`tF_4Dv7Ltliw_y!fBG9%C8e$tUZs^&)_UEAT&WUgmXBr?hT=v8JddrpjXKW zA&m>XBSVzz;yM;68HF~cfeAnlElo?&mPn2l|KoUxplKs;S%S?>lCCD*Zd_@`RmNo} zuAz^-lGaF32bCm>Yn774yc1}f;M#^P`gz(w3$9a>h5#C=Zh%}Dq8>MJlU!G!3cHnd z$+{A@pD5Q+@e6((w{&d$!)I~maO${2cns6A7lPu1Qpd@w&NBBNO~ZX9ZF2V?Kq_+! zk{P5?PL|t443SCFYAUI0mG7Cadbk!k)}a&)>RtV0D92}fOv+S;<(QPQmA$-AM~Qm7 zobiE?-IZNV(I(RvX0b;^HH@gJ9H7ViAH{rmRKp7bPt^Jh?-(d0qm`(|dq*yIasR;m KBR=CRe18EUD5!}5 diff --git a/target/classes/local/epul4a/fotosharing/repository/PhotoRepository.class b/target/classes/local/epul4a/fotosharing/repository/PhotoRepository.class index 8f9fc0b2d67e493651aa0d521afcebd512366ac2..2bcfddf9d4bd14c1d9e7249c84a3055c6590e600 100644 GIT binary patch delta 290 zcmZ3_vXY(a)W2Q(7#J9A8KgFHxiE?eq-Ex%I8}ya7H1}9=46(nGBP-8_)HX#oNUL) zt*?R*x7PH@N-Rs%FD=Q;(f7$LF0p20;3`AXmJQd&jiha|5aT0JMg|_wyu8#R=bXgi z;?!bx1~EnkeW)FRNQ&7RBp4Y~pc2JE^AXmwF)}bRFat3w(D6(xj124y91KhhoIoBc vP$7`w21zjR0Ht^t_z+V3a47+xeuyGL1|hIwVFnQ(%>^`7ltG+9(m@gc!t6O( delta 61 zcmZ3#>l|PzzoE!Kncdlfy~lE3``8%Kn@cF KF9RQ#<_7?nF$l*1 diff --git a/target/classes/local/epul4a/fotosharing/security/SecurityConfig.class b/target/classes/local/epul4a/fotosharing/security/SecurityConfig.class index 410a6e2ef807a232147342263278970f97991455..2c8357c423cf59fa2b8c7b9539a626f17c28fdc1 100644 GIT binary patch delta 971 zcmZWnX-^YT6g>~RF^*COC;>4TqY0GY6omv)Fnrf&tVkLIGKE?wm9>DlRYlP%2s-X7 ziu;1pYB5F)pZ)A#@NXE;Osj?X;mtkw_S|#tJFnxOd5`qt_m}Sg8t^$TEjT<5vzb`e-z)7d^W%t&UZ?_+);qQ@Ffbe#iWuB}83X7^e3j<1#Mwmq>TGN4 zU4g>#T_J5mQ^Q(sP~GDX1v(|!+j1w~~%o>HqGA?7%iAffo8ii*v zE+XbcjD?pHUg5PJZ)Cj1yTp=`FDwfJZQQv{uPxYV`6#eSug)*hrwg1Ssm~TP>>s2t zHV6zc+8M287Gb6`6O2~(B1D`Z3&Z>xWWa?He&rMaqd3Y;U<}8|is;pa#nB9R-7>Bt z&HX#}xY>6CCt-mxbQ@K&7_F5_NDBnZhi)*1Tq#0Yh*X?Hlx?TUwlJQ-I8mupunw#o zbPnf@LHe)4dNHi8ca=qrYort_{wY>q0vG;Mq~OF#L8oMRPolAT6W21FS>;x?BvF$@ zeM`nPg;Rm8$VLqftc65u8t6*(pc0n=>hW<6J^iPv%5<=Vbil*L&B)=C z{jPYwaIvN)CK{go4L-KFW&$(;nRXPpXbsL zM5hz`b%f9*Fe&S`NtwuRR=NdZ45CGm?zaAzhA~ zXrbQW-I2b*NMgX`#&jG(H1$K9v57OOk(G9}irC{Kwv{3 zPm>II(9cuP5RkwCBY{B-krkJ%#ihv{cg+%RUY7f}?J=wFIEJCXY`U2$HhQ%t4Q-xa zY12we$de&tg-FE-oMhQ4vK9K%ND`H+f_Y$hqY<1n8%fpEDEj1fPeszaMnjD7wzIu;R5Ba+5J3mjfDaRHKcR@a~uUR2WOy47MDm-$V>6`nR+ zwU%7K8Lu(EPLs47w6)C5&~D;3?q$(^Jj$ZSc!sxRm5~v|JAB~n!t}G8dkzZff$?3=9mm4AL99IGD5qax#lc0!ou|GLr)`@=NlI85x8$G<~uX%M$fV wOEPoxeSq@Tj0{#9ldm(TGO|pzWeS#JVPp_v5NBXy5CNLR#2^7=NrG8Y0H47Y!2kdN delta 40 vcmeBYo5jj?>ff$?3=9mm3=$i;IG84vGifn0PhP|n%*DXSAO@6RVh{%a=?@5( diff --git a/target/classes/local/epul4a/fotosharing/service/impl/PhotoServiceImpl.class b/target/classes/local/epul4a/fotosharing/service/impl/PhotoServiceImpl.class index 45b5d27c0573e6b4356755571a48150b38127b24..fdb9a56da8aa78410fa42c95fb38301eea30f2bc 100644 GIT binary patch delta 921 zcmZXSOGs2v7=XVsGdg-5=W!K9GZkwwNg`38sX-|O!7L^yp;~DvO%1si4Q!FiHtp`F zc3D>TR>v|m%^q5sJ+16v53_gK!&*!Ky^0FK{qO%e=llQjpK~C0V!1Xn-PH@M;cu%} zsinqK&rui0Xi~%mH+N?F&bG>271?wuqq3yw) zHMKPnh3@}vucF9rxZQ)=bA?^yDK9ULad&#wD~&i_yLiNiml01a;~MXnaPr>8N^3}yRzDFlL*-HH~+`e4Llp@pc`7({IKE3b^c5D<-h~k`#Bti6fkqZ%8 z(8YC0P{)H;bgU#|Xq63ZMw2hQJZj|}^3TA*V&cifO&0AE$rdoO?;@8(o0iE^mSxgx zbch{qldzdYQkUtJO>IWHKB}U|lwQ_gf~wKvKQIRxpo?w`G{6<<+h%2Z#Ij5IW_rbP zkjG)JiWNf<2kGOQG{24ATo=p9J_6j}rcAMg6#9i8&n@A2uq91X;$*e;`Gee+s6(oy zTJ0vsZadC48ap{|lXIF2=PRtYD$HC+ z;!K78v$Tg^&3swHFljl~J%ZLv>K6S}2a8OUT7X(51A1)XpIA@GoWWD^M@4ig`d0jB Zd=$st=_X4z;-*&F zh_kWd&~4jB6OB_6W1Po0PjSSJKS0FuN=dS)dr#eZ_ndR<)nxnLfrkFvkT z_i8w7bIGRYQA3AaAJ5qXshY~BWRGVzruX~z4W8*R86MhS={c>BeQJ1;;ud2W#?o<~ z`%Lg6!OIj&cxBr%BlT~5-tsQN`xGDeSoxjF8}r3B2ZiW2LyOG^Ep~elbRWSZ!ZMa) zI3_Oi>cF{|qZA!&}G#TZX4q}{CLs7dfWluR>=*JWmR!J1vtJIZMiqNMR5LIka zY^IhL>S^VaD*1nHoaW3TZN=bpj6r*agj^J*~|_Ggc9sw9fMrf4VP%( z3PbXK)t0l_1=qwD6?>zzSLaC#$v{=haGebjEZU#h`JLhTac88{jojd@1XD%>ZpeUf zL@}dHNN|&bZpO8{$_1$b`a#fDceC0d2za6oI A#{d8T diff --git a/target/classes/templates/galerie.html b/target/classes/templates/galerie.html new file mode 100644 index 0000000..c1cf7ad --- /dev/null +++ b/target/classes/templates/galerie.html @@ -0,0 +1,17 @@ + + +Galerie + +

Galerie publique

+ +

Accueil

+ +
    +
  • + nom + — + Voir +
  • +
+ + diff --git a/target/classes/templates/home.html b/target/classes/templates/home.html index f39742e..a5135cc 100644 --- a/target/classes/templates/home.html +++ b/target/classes/templates/home.html @@ -7,6 +7,7 @@

Bienvenue sur FotoSharing

Uploader une photo

Voir mes photos

+

Voir la galerie publique

+

Galerie publique

diff --git a/target/classes/templates/upload.html b/target/classes/templates/upload.html index 09153da..0dd0b88 100644 --- a/target/classes/templates/upload.html +++ b/target/classes/templates/upload.html @@ -17,6 +17,7 @@
+

Galerie publique