Commit f795a190 by Vuk Lazovic

autentifikacija admina

parent 0fb76423
package app.usluga; package app.usluga;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
...@@ -55,17 +56,24 @@ public class Implementacija implements KorisnickaUsluga{ ...@@ -55,17 +56,24 @@ public class Implementacija implements KorisnickaUsluga{
if(k == null) { if(k == null) {
throw new UsernameNotFoundException("Invalid username or password."); throw new UsernameNotFoundException("Invalid username or password.");
} }
return new org.springframework.security.core.userdetails.User(k.getEmail(), k.getLozinka(), mapRolesToAuthorities(k.getUloge())); return new org.springframework.security.core.userdetails.User(k.getEmail(), k.getLozinka(), mapRolesToAuthorities(k.getUloge(),k.getId()));
} }
private Collection<? extends GrantedAuthority> mapRolesToAuthorities(Collection<Uloga> uloge){ private Collection<? extends GrantedAuthority> mapRolesToAuthorities(Collection<Uloga> uloge,long id)
return uloge.stream().map(uloga -> new SimpleGrantedAuthority(uloga.getIme())).collect(Collectors.toList()); {
if(id==1)
return uloge.stream().map(uloga -> new SimpleGrantedAuthority("ADMIN")).collect(Collectors.toList());
else
return uloge.stream().map(uloga -> new SimpleGrantedAuthority("KORISNIK")).collect(Collectors.toList());
} }
@Override @Override
public List<Korisnik>izlistaj(){ public List<Korisnik>izlistaj(){
return (List<Korisnik>) kr.findAll(); List<Korisnik> lista= kr.findAll();
Korisnik k = kr.findById(Long.valueOf(1)).get();
lista.remove(k);
return lista;
} }
@Override @Override
......
...@@ -5,6 +5,8 @@ import app.model.Oglas; ...@@ -5,6 +5,8 @@ import app.model.Oglas;
import app.usluga.OglasUsluga; import app.usluga.OglasUsluga;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.ui.Model; import org.springframework.ui.Model;
...@@ -14,6 +16,7 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -14,6 +16,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.Collection;
import java.util.List; import java.util.List;
@Controller @Controller
...@@ -41,6 +44,10 @@ public class MainKontroler { ...@@ -41,6 +44,10 @@ public class MainKontroler {
@GetMapping("/") @GetMapping("/")
public String prikaziHome() { public String prikaziHome() {
Collection<SimpleGrantedAuthority> authorities = (Collection<SimpleGrantedAuthority>) SecurityContextHolder.getContext().getAuthentication().getAuthorities();
System.out.println(authorities);
return "index"; return "index";
} }
......
...@@ -46,6 +46,7 @@ ...@@ -46,6 +46,7 @@
<div class="col d-flex justify-content-end"> <div class="col d-flex justify-content-end">
<div th:text="${#authentication.name}"> <div th:text="${#authentication.name}">
The value of the "name" property of the authentication object should appear here. The value of the "name" property of the authentication object should appear here.
</div> </div>
...@@ -65,9 +66,15 @@ ...@@ -65,9 +66,15 @@
<ul class="navbar-nav ml-auto"> <ul class="navbar-nav ml-auto">
<li class="nav-item active"><a href="/" class="nav-link">Pocetna strana</a></li> <li class="nav-item active"><a href="/" class="nav-link">Pocetna strana</a></li>
<li class="nav-item"><a href="oglasi" class="nav-link">Oglasi</a></li> <li class="nav-item"><a href="oglasi" class="nav-link">Oglasi</a></li>
<li class="nav-item"><a href="maintance" class="nav-link">Agenti</a></li>
<li class="nav-item"><a href="adminKorisnik" class="nav-link">Korisnici</a></li>
<li class="nav-item"><a href="adminOglas" class="nav-link">Ukloni Oglase</a></li> <li sec:authorize="!hasAuthority('ADMIN')" class="nav-item"><a href="maintance" class="nav-link">Agenti</a></li>
<li sec:authorize="!hasAuthority('ADMIN')" class="nav-item"><a href="maintance" class="nav-link">O nama</a></li>
<li sec:authorize="!hasAuthority('ADMIN')" class="nav-item"><a href="maintance" class="nav-link">Kontakt</a></li>
<li sec:authorize="hasAuthority('ADMIN')" class="nav-item"><a href="adminKorisnik" class="nav-link">Ukloni Korisnike</a></li>
<li sec:authorize="hasAuthority('ADMIN')" class="nav-item"><a href="adminOglas" class="nav-link"> Ukloni Oglase</a></li>
<li sec:authorize="isAnonymous()" class="nav-item cta"><a href="login" class="nav-link ml-lg-2"><span class="icon-user"></span> Prijava</a></li> <li sec:authorize="isAnonymous()" class="nav-item cta"><a href="login" class="nav-link ml-lg-2"><span class="icon-user"></span> Prijava</a></li>
<li sec:authorize="isAnonymous()" class="nav-item cta cta-colored"><a href="registration" class="nav-link" ><span class="icon-pencil"></span> Registracija</a></li> <li sec:authorize="isAnonymous()" class="nav-item cta cta-colored"><a href="registration" class="nav-link" ><span class="icon-pencil"></span> Registracija</a></li>
......
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="http://www.thymeleaf.org">
<head> <head>
<meta charset="ISO-8859-1"> <title>Royal Estate - Free Bootstrap 4 Template by TIM</title>
<title>Employee Management System</title> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" <link href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700" rel="stylesheet">
href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"
integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO"
crossorigin="anonymous">
<link rel="stylesheet" href="css/open-iconic-bootstrap.min.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/owl.carousel.min.css">
<link rel="stylesheet" href="css/owl.theme.default.min.css">
<link rel="stylesheet" href="css/magnific-popup.css">
<link rel="stylesheet" href="css/aos.css">
<link rel="stylesheet" href="css/ionicons.min.css">
<link rel="stylesheet" href="css/bootstrap-datepicker.css">
<link rel="stylesheet" href="css/jquery.timepicker.css">
<link rel="stylesheet" href="css/flaticon.css">
<link rel="stylesheet" href="css/icomoon.css">
<link rel="stylesheet" href="css/style.css">
</head> </head>
<body> <body>
<div class="top">
<div class="container">
<div class="row d-flex align-items-center">
<div class="col">
<p class="social d-flex">
<a href="#"><span class="icon-facebook"></span></a>
<a href="#"><span class="icon-twitter"></span></a>
<a href="#"><span class="icon-google"></span></a>
<a href="#"><span class="icon-pinterest"></span></a>
</p>
</div>
<div class="col d-flex justify-content-end">
<div th:text="${#authentication.name}">
The value of the "name" property of the authentication object should appear here.
</div>
</div>
</div>
</div>
</div>
<nav class="navbar navbar-expand-lg navbar-dark ftco_navbar bg-dark ftco-navbar-light" id="ftco-navbar">
<div class="container">
<a class="navbar-brand" href="/">AWESOME<span>lands</span></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#ftco-nav" aria-controls="ftco-nav" aria-expanded="false" aria-label="Toggle navigation">
<span class="oi oi-menu"></span> Menu
</button>
<div class="collapse navbar-collapse" id="ftco-nav">
<ul class="navbar-nav ml-auto">
<li class="nav-item active"><a href="/" class="nav-link">Pocetna strana</a></li>
<li class="nav-item"><a href="oglasi" class="nav-link">Oglasi</a></li>
<li sec:authorize="!hasAuthority('ADMIN')" class="nav-item"><a href="maintance" class="nav-link">Agenti</a></li>
<li sec:authorize="!hasAuthority('ADMIN')" class="nav-item"><a href="maintance" class="nav-link">O nama</a></li>
<li sec:authorize="!hasAuthority('ADMIN')" class="nav-item"><a href="maintance" class="nav-link">Kontakt</a></li>
<li sec:authorize="hasAuthority('ADMIN')" class="nav-item"><a href="adminKorisnik" class="nav-link">Ukloni Korisnike</a></li>
<li sec:authorize="hasAuthority('ADMIN')" class="nav-item"><a href="adminOglas" class="nav-link"> Ukloni Oglase</a></li>
<li sec:authorize="isAnonymous()" class="nav-item cta"><a href="login" class="nav-link ml-lg-2"><span class="icon-user"></span> Prijava</a></li>
<li sec:authorize="isAnonymous()" class="nav-item cta cta-colored"><a href="registration" class="nav-link" ><span class="icon-pencil"></span> Registracija</a></li>
<li sec:authorize="isAuthenticated()" class="nav-item cta"><a href="dodaj" class="nav-link ml-lg-2"><span class="icon-user"></span> Dodaj Oglas</a></li>
<li sec:authorize="isAuthenticated()" class="nav-item cta"><a href="/logout" class="nav-link ml-lg-2"><span class="icon-user"></span> Log Out</a></li>
<!--sec:authorize="isAuthenticated()-->
</ul>
</div>
</div>
</nav>
<!-- END nav -->
<div class="container my-2"> <div class="container my-2">
<h1>Svi korisnici</h1> <h1>Svi korisnici</h1>
...@@ -46,5 +121,49 @@ ...@@ -46,5 +121,49 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<div style="height: 500px"></div>
<footer class="ftco-footer ftco-bg-dark ftco-section">
<div class="container">
<div class="row">
<div class="col-md-12 text-center">
<p><!-- Link back to Colorlib can't be removed. Template is licensed under CC BY 3.0. -->
Copyright &copy;<script>document.write(new Date().getFullYear());</script> Sva prava zadržana | </i> by <a target="_blank">TIM 10</a>
<!-- Link back to Colorlib can't be removed. Template is licensed under CC BY 3.0. --></p>
</div>
</div>
</div>
</footer>
<!-- loader -->
<div id="ftco-loader" class="show fullscreen"><svg class="circular" width="48px" height="48px"><circle class="path-bg" cx="24" cy="24" r="22" fill="none" stroke-width="4" stroke="#eeeeee"/><circle class="path" cx="24" cy="24" r="22" fill="none" stroke-width="4" stroke-miterlimit="10" stroke="#F96D00"/></svg></div>
<script src="js/jquery.min.js"></script>
<script src="js/jquery-migrate-3.0.1.min.js"></script>
<script src="js/popper.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/jquery.easing.1.3.js"></script>
<script src="js/jquery.waypoints.min.js"></script>
<script src="js/jquery.stellar.min.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.magnific-popup.min.js"></script>
<script src="js/aos.js"></script>
<script src="js/jquery.animateNumber.min.js"></script>
<script src="js/bootstrap-datepicker.js"></script>
<script src="js/jquery.timepicker.min.js"></script>
<script src="js/scrollax.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBVWaKrjvy3MaE7SQ74_uJiULgl1JY0H2s&sensor=false"></script>
<script src="js/google-map.js"></script>
<script src="js/main.js"></script>
</body> </body>
</html> </html>
\ No newline at end of file
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="http://www.thymeleaf.org">
<head> <head>
<meta charset="ISO-8859-1"> <title>Royal Estate - Free Bootstrap 4 Template by TIM</title>
<title>Employee Management System</title> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" <link href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700" rel="stylesheet">
href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"
integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO"
crossorigin="anonymous">
<link rel="stylesheet" href="css/open-iconic-bootstrap.min.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/owl.carousel.min.css">
<link rel="stylesheet" href="css/owl.theme.default.min.css">
<link rel="stylesheet" href="css/magnific-popup.css">
<link rel="stylesheet" href="css/aos.css">
<link rel="stylesheet" href="css/ionicons.min.css">
<link rel="stylesheet" href="css/bootstrap-datepicker.css">
<link rel="stylesheet" href="css/jquery.timepicker.css">
<link rel="stylesheet" href="css/flaticon.css">
<link rel="stylesheet" href="css/icomoon.css">
<link rel="stylesheet" href="css/style.css">
</head> </head>
<body> <body>
<div class="top">
<div class="container">
<div class="row d-flex align-items-center">
<div class="col">
<p class="social d-flex">
<a href="#"><span class="icon-facebook"></span></a>
<a href="#"><span class="icon-twitter"></span></a>
<a href="#"><span class="icon-google"></span></a>
<a href="#"><span class="icon-pinterest"></span></a>
</p>
</div>
<div class="col d-flex justify-content-end">
<div th:text="${#authentication.name}">
The value of the "name" property of the authentication object should appear here.
</div>
</div>
</div>
</div>
</div>
<nav class="navbar navbar-expand-lg navbar-dark ftco_navbar bg-dark ftco-navbar-light" id="ftco-navbar">
<div class="container">
<a class="navbar-brand" href="/">AWESOME<span>lands</span></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#ftco-nav" aria-controls="ftco-nav" aria-expanded="false" aria-label="Toggle navigation">
<span class="oi oi-menu"></span> Menu
</button>
<div class="collapse navbar-collapse" id="ftco-nav">
<ul class="navbar-nav ml-auto">
<li class="nav-item active"><a href="/" class="nav-link">Pocetna strana</a></li>
<li class="nav-item"><a href="oglasi" class="nav-link">Oglasi</a></li>
<li sec:authorize="!hasAuthority('ADMIN')" class="nav-item"><a href="maintance" class="nav-link">Agenti</a></li>
<li sec:authorize="!hasAuthority('ADMIN')" class="nav-item"><a href="maintance" class="nav-link">O nama</a></li>
<li sec:authorize="!hasAuthority('ADMIN')" class="nav-item"><a href="maintance" class="nav-link">Kontakt</a></li>
<li sec:authorize="hasAuthority('ADMIN')" class="nav-item"><a href="adminKorisnik" class="nav-link">Ukloni Korisnike</a></li>
<li sec:authorize="hasAuthority('ADMIN')" class="nav-item"><a href="adminOglas" class="nav-link"> Ukloni Oglase</a></li>
<li sec:authorize="isAnonymous()" class="nav-item cta"><a href="login" class="nav-link ml-lg-2"><span class="icon-user"></span> Prijava</a></li>
<li sec:authorize="isAnonymous()" class="nav-item cta cta-colored"><a href="registration" class="nav-link" ><span class="icon-pencil"></span> Registracija</a></li>
<li sec:authorize="isAuthenticated()" class="nav-item cta"><a href="dodaj" class="nav-link ml-lg-2"><span class="icon-user"></span> Dodaj Oglas</a></li>
<li sec:authorize="isAuthenticated()" class="nav-item cta"><a href="/logout" class="nav-link ml-lg-2"><span class="icon-user"></span> Log Out</a></li>
<!--sec:authorize="isAuthenticated()-->
</ul>
</div>
</div>
</nav>
<div class="container my-2"> <div class="container my-2">
<h1>Svi oglasi</h1> <h1>Svi oglasi</h1>
...@@ -47,4 +122,47 @@ ...@@ -47,4 +122,47 @@
</table> </table>
</div> </div>
</body> </body>
<div style="height: 500px"></div>
<footer class="ftco-footer ftco-bg-dark ftco-section">
<div class="container">
<div class="row">
<div class="col-md-12 text-center">
<p><!-- Link back to Colorlib can't be removed. Template is licensed under CC BY 3.0. -->
Copyright &copy;<script>document.write(new Date().getFullYear());</script> Sva prava zadržana | </i> by <a target="_blank">TIM 10</a>
<!-- Link back to Colorlib can't be removed. Template is licensed under CC BY 3.0. --></p>
</div>
</div>
</div>
</footer>
<!-- loader -->
<div id="ftco-loader" class="show fullscreen"><svg class="circular" width="48px" height="48px"><circle class="path-bg" cx="24" cy="24" r="22" fill="none" stroke-width="4" stroke="#eeeeee"/><circle class="path" cx="24" cy="24" r="22" fill="none" stroke-width="4" stroke-miterlimit="10" stroke="#F96D00"/></svg></div>
<script src="js/jquery.min.js"></script>
<script src="js/jquery-migrate-3.0.1.min.js"></script>
<script src="js/popper.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/jquery.easing.1.3.js"></script>
<script src="js/jquery.waypoints.min.js"></script>
<script src="js/jquery.stellar.min.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.magnific-popup.min.js"></script>
<script src="js/aos.js"></script>
<script src="js/jquery.animateNumber.min.js"></script>
<script src="js/bootstrap-datepicker.js"></script>
<script src="js/jquery.timepicker.min.js"></script>
<script src="js/scrollax.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBVWaKrjvy3MaE7SQ74_uJiULgl1JY0H2s&sensor=false"></script>
<script src="js/google-map.js"></script>
<script src="js/main.js"></script>
</body>
</html> </html>
\ No newline at end of file
...@@ -226,9 +226,10 @@ ...@@ -226,9 +226,10 @@
"</div>" + "</div>" +
"<p>" + oglasi[i].opis + "</p>" + "<p>" + oglasi[i].opis + "</p>" +
"<hr>" + "<hr>" +
"<p class=\"bottom-area d-flex\">" + "<p class=\"bottom-area d-flex\">" +
"<span><i class=\"flaticon-selection\"></i>" + oglasi[i].kvadratura + "</span>" + "<span><i class=\"flaticon-selection\"></i>" + oglasi[i].kvadratura + "</span>" +
"<button style='margin-left: 22% ' class=\"btn btn-info\" > zakazi</button>"+
"<span class=\"ml-auto\"><i class=\"flaticon-bathtub\"></i> 3</span>" + "<span class=\"ml-auto\"><i class=\"flaticon-bathtub\"></i> 3</span>" +
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment