diff --git a/src/main/java/polish_community_group_11/polish_community/feed/controllers/FeedApisController.java b/src/main/java/polish_community_group_11/polish_community/feed/controllers/FeedApisController.java index b15c974b06863734fc527fdc1108726c1db20424..5ef1cdcaddb9acbaac7f3b3f83c5f2d060758bc8 100644 --- a/src/main/java/polish_community_group_11/polish_community/feed/controllers/FeedApisController.java +++ b/src/main/java/polish_community_group_11/polish_community/feed/controllers/FeedApisController.java @@ -50,15 +50,18 @@ public class FeedApisController { List<FeedImpl> posts = feedRepository.getAllPosts(); - // set isEditable flag for each post depedant on whether they are an admin or own the post - for (FeedImpl post : posts) { - log.info("Role ID: " + currentUser.getRoleId()); - boolean isSuperAdmin = currentUser != null && currentUser.getRoleId() == 1; - log.info("IsSuperAdmin: " + isSuperAdmin); - boolean isOwner = currentUser != null && post.getUserId() == currentUser.getId(); - log.info("IsPostOwner: " + isOwner); - post.setIsDeletable(isSuperAdmin || isOwner); - log.info("PostIsEditable: " + post.getIsDeletable()); + + if (currentUser != null){ + // set isEditable flag for each post depedant on whether they are an admin or own the post + for (FeedImpl post : posts) { + log.info("Role ID: " + currentUser.getRoleId()); + boolean isSuperAdmin = currentUser != null && currentUser.getRoleId() == 1; + log.info("IsSuperAdmin: " + isSuperAdmin); + boolean isOwner = currentUser != null && post.getUserId() == currentUser.getId(); + log.info("IsPostOwner: " + isOwner); + post.setIsDeletable(isSuperAdmin || isOwner); + log.info("PostIsEditable: " + post.getIsDeletable()); + } } return posts; diff --git a/src/main/java/polish_community_group_11/polish_community/security/WebSecurityConfig.java b/src/main/java/polish_community_group_11/polish_community/security/WebSecurityConfig.java index 92928d075b77a17e7ccb8f79bd008b010b276f8c..34029e3e1f9f3bc064cd7be86809ac353bb14b27 100644 --- a/src/main/java/polish_community_group_11/polish_community/security/WebSecurityConfig.java +++ b/src/main/java/polish_community_group_11/polish_community/security/WebSecurityConfig.java @@ -53,8 +53,8 @@ public class WebSecurityConfig { // require authentication for events only //update in future when more protected resources are available .authorizeHttpRequests((requests) -> requests - .requestMatchers("/api/translations/**").permitAll() - .requestMatchers("/api/feed/**").permitAll() +// .requestMatchers("/api/translations/**","/api/feed/**").permitAll() +// .requestMatchers().permitAll() .requestMatchers(whiteListingPath).authenticated() .anyRequest().permitAll() ) diff --git a/src/main/resources/templates/home/home.html b/src/main/resources/templates/home/home.html index 54697729ca5270b7ec8bf5143524a05b020b24e8..2f8e70b1898dc70e031a5123a8535900a45e785f 100644 --- a/src/main/resources/templates/home/home.html +++ b/src/main/resources/templates/home/home.html @@ -10,60 +10,60 @@ </head> <section layout:fragment="content"> - <h1>Welcome to our Community</h1> - <p>Connect, Share, and Grow Together</p> + <h1 data-translate-key="home.header">Welcome to our Community</h1> + <p data-translate-key="home.smallheader">Connect, Share, and Grow Together</p> <section class="tiles"> <div class="tile" id="feedTile"> <a th:href="@{/feed}" class="tileLink"> <div class="topTile"> - <img src="/assets/navbarImages/feed.png" class="tile-logo"><span class="tile-title">Feed</span> + <img src="/assets/navbarImages/feed.png" class="tile-logo"><span class="tile-title" data-translate-key="navbar.feed">Feed</span> </div> - <p class="tile-description">Stay updated with the latest posts</p> + <p class="tile-description" data-translate-key="home.latest_posts">Stay updated with the latest posts</p> </a> </div> <div class="tile" id="newsTile"> <a th:href="@{/news}" class="tileLink"> <div class="topTile"> - <img src="/assets/navbarImages/news.png" class="tile-logo"><span class="tile-title">News</span> + <img src="/assets/navbarImages/news.png" class="tile-logo"><span class="tile-title" data-translate-key="navbar.news">News</span> </div> - <p class="tile-description">Discover the latest community news</p> + <p class="tile-description" data-translate-key="home.news">Discover the latest community news</p> </a> </div> <div class="tile" id="eventsTile"> <a th:href="@{/event}" class="tileLink"> <div class="topTile"> - <img src="/assets/navbarImages/events.png" class="tile-logo"><span class="tile-title">Events</span> + <img src="/assets/navbarImages/events.png" class="tile-logo"><span class="tile-title" data-translate-key="navbar.events">Events</span> </div> - <p class="tile-description">Join our upcoming community events</p> + <p class="tile-description" data-translate-key="home.events">Join our upcoming community events</p> </a> </div> <div class="tile" id="infoTile"> <a th:href="@{/categories}" class="tileLink"> <div class="topTile"> - <img src="/assets/navbarImages/info.png" class="tile-logo"><span class="tile-title">Info Database</span> + <img src="/assets/navbarImages/info.png" class="tile-logo"><span class="tile-title" data-translate-key="navbar.db_info">Info Database</span> </div> - <p class="tile-description">Access our community information database</p> + <p class="tile-description" data-translate-key="home.db_info">Access our community information database</p> </a> </div> <div class="tile" id="aboutTile"> <a th:href="@{/aboutUs}" class="tileLink"> <div class="topTile"> - <img src="/assets/navbarImages/about.png" class="tile-logo"><span class="tile-title">About Us</span> + <img src="/assets/navbarImages/about.png" class="tile-logo"><span class="tile-title" data-translate-key="navbar.about_us">About Us</span> </div> - <p class="tile-description">Learn about our mission and values</p> + <p class="tile-description" data-translate-key="home.about_us">Learn about our mission and values</p> </a> </div> </section> - <h1>Join Our Thriving Community Today!</h1> - <p>Connect with like-minded individuals, share your ideas, and be part of something amazing</p> - <button>Get Started</button> + <h1 data-translate-key="home.join_community">Join Our Thriving Community Today!</h1> + <p data-translate-key="home.tagline">Connect with like-minded individuals, share your ideas, and be part of something amazing</p> + <button data-translate-key="home.get_started">Get Started</button> </section> diff --git a/src/main/resources/templates/layout/layout.html b/src/main/resources/templates/layout/layout.html index 110a7c73c32c0d67711451dfd743cf29ee5e09e0..551413576f822a5295b69b111c05aa30248c5dd4 100644 --- a/src/main/resources/templates/layout/layout.html +++ b/src/main/resources/templates/layout/layout.html @@ -8,102 +8,112 @@ <title>Ludek Polonia Wajiska</title> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> - <link href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap" rel="stylesheet"> + <link href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap" + rel="stylesheet"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> <link rel="stylesheet" href="/css/comments/comments.css"> <link rel="stylesheet" href="/css/layout/layout.css"> </head> <body> - <header class="header"> - <section class="sidebar"> - <nav class="sidebar"> - <div class="navLeft"> - <a th:href="@{/}" class="logoLink"> - <img src="/assets/navbarImages/logo.png" class="logoImage"><span class="navText">Ludek Polonia Wajiska</span> - </a> - </div> - - <div class="navMiddle"> - <a th:href="@{/}" class="navLink"> - <img src="/assets/navbarImages/home.png" class="navIcons" ><span class="navText" data-translate-key="navbar.home"></span> - </a> - <a th:href="@{/feed}" class="navLink"> - <img src="/assets/navbarImages/feed.png" class="navIcons"><span class="navText">Feed</span> - </a> - <a th:href="@{/news}" class="navLink"> - <img src="/assets/navbarImages/news.png" class="navIcons"><span class="navText">News</span> - </a> - <a th:href="@{/event}" class="navLink"> - <img src="/assets/navbarImages/events.png" class="navIcons"><span class="navText">Events</span> - </a> - <a th:href="@{/categories}" class="navLink"> - <img src="/assets/navbarImages/info.png" class="navIcons"><span class="navText">Info Database</span> - </a> - <a th:href="@{/aboutUs}" class="navLink"> - <img src="/assets/navbarImages/about.png" class="navIcons"><span class="navText">About Us</span> - </a> - <a th:href="@{/contactus}" class="navLink"> - <img src="/assets/navbarImages/contact.png" class="navIcons"><span class="navText">Contact Us</span> - </a> - </div> +<header class="header"> + <section class="sidebar"> + <nav class="sidebar"> + <div class="navLeft"> + <a th:href="@{/}" class="logoLink"> + <img src="/assets/navbarImages/logo.png" class="logoImage"><span class="navText">Ludek Polonia Wajiska</span> + </a> + </div> - <!-- Right Section: Language Selector and Profile --> - <div class="navRight"> - <!-- Language Selector --> - <div class="languageSelector"> - <img src="/assets/navbarImages/globe.png" class="navIcons"> - <select name="language"> - <option value="en">English</option> - <option value="pl">Polish</option> - </select> - </div> + <div class="navMiddle"> + <a th:href="@{/}" class="navLink"> + <img src="/assets/navbarImages/home.png" class="navIcons"><span class="navText" + data-translate-key="navbar.home">Home</span> + </a> + <a th:href="@{/feed}" class="navLink"> + <img src="/assets/navbarImages/feed.png" class="navIcons"><span class="navText" + data-translate-key="navbar.feed">Feed</span> + </a> + <a th:href="@{/news}" class="navLink"> + <img src="/assets/navbarImages/news.png" class="navIcons"><span class="navText" + data-translate-key="navbar.news">News</span> + </a> + <a th:href="@{/event}" class="navLink"> + <img src="/assets/navbarImages/events.png" class="navIcons"><span class="navText" + data-translate-key="navbar.events">Events</span> + </a> + <a th:href="@{/categories}" class="navLink"> + <img src="/assets/navbarImages/info.png" class="navIcons"><span class="navText" + data-translate-key="navbar.db_info">Info Database</span> + </a> + <a th:href="@{/aboutUs}" class="navLink"> + <img src="/assets/navbarImages/about.png" class="navIcons"><span class="navText" + data-translate-key="navbar.about_us">About Us</span> + </a> + <a th:href="@{/contactus}" class="navLink"> + <img src="/assets/navbarImages/contact.png" class="navIcons"><span class="navText" + data-translate-key="navbar.contact_us">Contact Us</span> + </a> + </div> - <!-- Profile --> - <a th:href="@{/profile}" class="navLink"> - <img src="/assets/navbarImages/profile.png" class="navIcons"><span class="navText">Profile</span> - </a> + <!-- Right Section: Language Selector and Profile --> + <div class="navRight"> + <!-- Language Selector --> + <div class="languageSelector"> + <img src="/assets/navbarImages/globe.png" class="navIcons"> + <select name="language"> + <option value="en">English</option> + <option value="pl">Polish</option> + </select> </div> - </nav> - </section> - </header> - - <div class="mainBody"> - <main layout:fragment="content" class="content"></main> - </div> + <!-- Profile --> + <a th:href="@{/profile}" class="navLink"> + <img src="/assets/navbarImages/profile.png" class="navIcons"><span class="navText" + data-translate-key="navbar.profile">Profile</span> + </a> + </div> + </nav> + </section> +</header> +<div class="mainBody"> + <main layout:fragment="content" class="content"></main> +</div> - <footer class="footer"> - <div class="footer-section about"> - <h3 class="footerTitle">Polish Community Website</h3> - <p class="footerText">Connecting people, sharing ideas, and building a better future together.</p> - </div> +<footer class="footer"> + <div class="footer-section about"> + <h3 class="footerTitle">Ludek Polonia Wajiska</h3> + <p class="footerText" data-translate-key="footer.tagline">Connecting people, sharing ideas, and building a + better future together.</p> + </div> - <div class="footer-section links"> - <h3 class="footerTitle">Quick Links</h3> - <ul class="footerLinks"> - <li><a th:href="@{/aboutus}" class="footerLink">About Us</a></li> - <li><a th:href="@{/contact}" class="footerLink">Contact</a></li> - <li><a th:href="@{/}" class="footerLink">Privacy Policy</a></li> - <li><a th:href="@{/}" class="footerLink">Terms of Service</a></li> - </ul> - </div> + <div class="footer-section links"> + <h3 class="footerTitle" data-translate-key="footer.quick_links">Quick Links</h3> + <ul class="footerLinks"> + <li><a th:href="@{/aboutus}" class="footerLink" data-translate-key="navbar.about_us">About Us</a></li> + <li><a th:href="@{/contact}" class="footerLink" data-translate-key="navbar.contact">Contact</a></li> + <li><a th:href="@{/}" class="footerLink" data-translate-key="footer.privacy_policy">Privacy Policy</a></li> + <li><a th:href="@{/}" class="footerLink" data-translate-key="footer.terms_of_service">Terms of Service</a> + </li> + </ul> + </div> - <div class="footer-section connect"> - <h3 class="footerTitle">Connect with us</h3> - <div class="social-icons"> - <a href="https://www.facebook.com/LudekPCG" class="social-icon"><img src="/assets/navbarImages/facebook.png" alt="Facebook"></a> - <a href="#" class="social-icon"><img src="/assets/navbarImages/twitter.png" alt="Twitter"></a> - <a href="#" class="social-icon"><img src="/assets/navbarImages/instagram.png" alt="Instagram"></a> - </div> + <div class="footer-section connect"> + <h3 class="footerTitle" data-translate-key="footer.connect_with_us">Connect with us</h3> + <div class="social-icons"> + <a href="https://www.facebook.com/LudekPCG" class="social-icon"><img src="/assets/navbarImages/facebook.png" + alt="Facebook"></a> + <a href="#" class="social-icon"><img src="/assets/navbarImages/twitter.png" alt="Twitter"></a> + <a href="#" class="social-icon"><img src="/assets/navbarImages/instagram.png" alt="Instagram"></a> </div> + </div> - <div class="footer-section copyright"> - <p class="footerCompanyName">© LUDEK PCG ltd. All rights reserved.</p> - </div> - </footer> - <script src="/js/layout/layout.js" defer></script> - <script th:replace="~{comments/commentFragment::commentScript}"></script> + <div class="footer-section copyright"> + <p class="footerCompanyName">© LUDEK PCG ltd. <span data-translate-key="footer.all_rights_reserved" >All rights reserved.</span></p> + </div> +</footer> +<script src="/js/layout/layout.js" defer></script> +<script th:replace="~{comments/commentFragment::commentScript}"></script> </body> </html> \ No newline at end of file diff --git a/src/main/resources/translations.sql b/src/main/resources/translations.sql index f4dbeffc2068f76f3da86fe6bf2243a9e373c156..1ef42bbaf33963cb21d6fb99877771d42a6a5346 100644 --- a/src/main/resources/translations.sql +++ b/src/main/resources/translations.sql @@ -8,6 +8,22 @@ INSERT INTO translations (translation_key, language, value) VALUES ('navbar.feed', 'en', 'Feed'), ('navbar.about_us', 'en', 'About Us'), ('navbar.profile', 'en', 'Profile'), + ('home.header', 'en', 'Welcome to our Community'), + ('home.smallheader', 'en', 'Connect, Share, and Grow Together'), + ('home.latest_posts', 'en', 'Stay updated with the latest posts'), + ('home.news', 'en', 'Discover the latest community news'), + ('home.events', 'en', 'Join our upcoming community events'), + ('home.db_info', 'en', 'Access our community information database'), + ('home.about_us', 'en', 'Learn about our mission and values'), + ('home.join_community', 'en', 'Join Our Thriving Community Today!'), + ('home.tagline', 'en', 'Connect with like-minded individuals, share your ideas, and be part of something amazing'), + ('home.get_started', 'en', 'Get Started'), + ('footer.tagline', 'en', 'Connecting people, sharing ideas, and building a better future together.'), + ('footer.quick_links', 'en', 'Quick Links'), + ('footer.connect_with_us', 'en', 'Connect with us'), + ('footer.privacy_policy', 'en', 'Privacy Policy'), + ('footer.terms_of_service', 'en', 'Terms of Service'), + ('footer.all_rights_reserved', 'en', 'All rights reserved.'), -- Polish translations ('navbar.home', 'pl', 'Strona główna'), @@ -17,4 +33,22 @@ INSERT INTO translations (translation_key, language, value) VALUES ('navbar.contact_us', 'pl', 'Skontaktuj siÄ™ z nami'), ('navbar.feed', 'pl', 'KanaÅ‚'), ('navbar.about_us', 'pl', 'O nas'), - ('navbar.profile', 'pl', 'Profil'); + ('navbar.profile', 'pl', 'Profil'), + ('home.header', 'pl', 'Witamy w naszej spoÅ‚ecznoÅ›ci'), + ('home.smallheader', 'pl', 'ÅÄ…cz siÄ™, dziel i rozwijaj razem'), + ('home.latest_posts', 'pl', 'BÄ…dź na bieżąco z najnowszymi postami'), + ('home.news', 'pl', 'Odkryj najnowsze wiadomoÅ›ci spoÅ‚ecznoÅ›ciowe'), + ('home.events', 'pl', 'Dołącz do nadchodzÄ…cych wydarzeÅ„ spoÅ‚ecznoÅ›ciowych'), + ('home.db_info', 'pl', 'Uzyskaj dostÄ™p do naszej bazy informacji spoÅ‚ecznoÅ›ciowych'), + ('home.about_us', 'pl', 'Dowiedz siÄ™ o naszej misji i wartoÅ›ciach'), + ('home.join_community', 'pl', 'Dołącz do naszej rozwijajÄ…cej siÄ™ spoÅ‚ecznoÅ›ci już dziÅ›!'), + ('home.tagline', 'pl', 'ÅÄ…cz siÄ™ z podobnie myÅ›lÄ…cymi ludźmi, dziel siÄ™ pomysÅ‚ami i bÄ…dź częściÄ… czegoÅ› niesamowitego'), + ('home.get_started', 'pl', 'Zacznij teraz'), + ('footer.tagline', 'pl', 'ÅÄ…czÄ…c ludzi, dzielÄ…c siÄ™ pomysÅ‚ami i budujÄ…c lepszÄ… przyszÅ‚ość razem.'), + ('footer.quick_links', 'pl', 'Szybkie linki'), + ('footer.connect_with_us', 'pl', 'Połącz siÄ™ z nami'), + ('footer.privacy_policy', 'pl', 'Polityka prywatnoÅ›ci'), + ('footer.terms_of_service', 'pl', 'Warunki korzystania z usÅ‚ugi'), + ('footer.all_rights_reserved', 'pl', 'Wszelkie prawa zastrzeżone.'); + +