TAK-57 edit tab
This commit is contained in:
parent
8136196b60
commit
0f64f92b0d
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
.idea
|
||||
app/.Rhistory
|
||||
backend/target/
|
||||
db.sqlite
|
||||
backend/.idea/
|
15
app/app.R
15
app/app.R
@ -18,13 +18,14 @@ ui <- fluidPage(
|
||||
tags$head(
|
||||
tags$script(src="js.cookie.js"),
|
||||
|
||||
tags$script('var cookie = Cookies.get(\'token\');
|
||||
$(document).on("shiny:sessioninitialized",function(event){
|
||||
Shiny.onInputChange("token", cookie);});'),
|
||||
tags$script('Shiny.addCustomMessageHandler("tokenHandler",
|
||||
|
||||
tags$script('var token = sessionStorage.getItem(\'token\');
|
||||
$(document).on("shiny:sessioninitialized",function(event){
|
||||
Shiny.onInputChange("token", token);});'),
|
||||
tags$script('Shiny.addCustomMessageHandler("tokenHandler",
|
||||
function(token) {
|
||||
var cookie = Cookies.set(\'token\', token, { expires: 7 });
|
||||
Shiny.onInputChange("token", cookie);
|
||||
sessionStorage.setItem(\'token\', token);
|
||||
Shiny.onInputChange("token", token);
|
||||
|
||||
}
|
||||
);')
|
||||
@ -114,7 +115,7 @@ shinyjs::onclick(id="tab1",expr = {
|
||||
shinyjs::removeCssClass(id="tab1",class = "clicked")
|
||||
shinyjs::removeCssClass(id="tab4",class = "clicked")
|
||||
}else{
|
||||
shinyjs::runjs( 'Cookies.remove(\'token\');
|
||||
shinyjs::runjs( 'sessionStorage.removeItem(\'token\');
|
||||
|
||||
Shiny.onInputChange("token", null);
|
||||
window.location.replace(\'/#!/login\');')
|
||||
|
@ -11,19 +11,12 @@ homeUI <- function(id) {
|
||||
tags$style(HTML("
|
||||
@import url('//fonts.googleapis.com/css?family=Lobster|Cabin:400,700');
|
||||
@import url('//fonts.googleapis.com/css2?family=Fjalla+One');
|
||||
|
||||
|
||||
|
||||
|
||||
"))),
|
||||
|
||||
theme = "style.css",
|
||||
|
||||
|
||||
# App title ----
|
||||
# App title ----
|
||||
|
||||
# h4("Aplikacja wspomagajaca diagnozowanie i monitorowanie stanu zdrowia", align = "center"),
|
||||
|
||||
fluidRow(column(12,
|
||||
h1("TakeCareApp"))%>% tagAppendAttributes(id = 'column-title')
|
||||
|
@ -13,10 +13,11 @@ loginUI <- function(id) {
|
||||
useShinyjs(),
|
||||
tags$head(
|
||||
tags$script(src="js.cookie.js"),
|
||||
tags$script('Shiny.addCustomMessageHandler("tokenHandlerAfterLogin",
|
||||
|
||||
tags$script('Shiny.addCustomMessageHandler("tokenHandlerAfterLogin",
|
||||
function(token) {
|
||||
var cookie = Cookies.set(\'token\', token, { expires: 7 });
|
||||
Shiny.onInputChange("token", cookie);
|
||||
sessionStorage.setItem(\'token\', token);
|
||||
Shiny.onInputChange("token", token);
|
||||
|
||||
window.location.replace(\'/#!/profil\');
|
||||
}
|
||||
@ -66,9 +67,8 @@ loginServer <- function(input, output,session) {
|
||||
if(r$status_code==200){
|
||||
|
||||
response<-(content(r))
|
||||
session$sendCustomMessage(type='tokenHandlerAfterLogin', response$token)
|
||||
|
||||
|
||||
session$sendCustomMessage(type='tokenHandlerAfterLogin', response$token)
|
||||
|
||||
TRUE
|
||||
}
|
||||
@ -95,7 +95,7 @@ loginServer <- function(input, output,session) {
|
||||
observe({
|
||||
if(((session$clientData)$url_hash=="#!/login") & (!is.null(input$token) & length(input$token)>0 )){
|
||||
|
||||
print("dziala")
|
||||
|
||||
shinyjs::runjs('window.location.replace(\'/#!/home\');')
|
||||
}
|
||||
})
|
||||
|
@ -11,14 +11,16 @@ profilUI <- function(id) {
|
||||
tags$head(
|
||||
tags$script(src="js.cookie.js"),
|
||||
|
||||
|
||||
tags$style(HTML("
|
||||
@import url('//fonts.googleapis.com/css?family=Lobster|Cabin:400,700');
|
||||
@import url('//fonts.googleapis.com/css2?family=Fjalla+One');
|
||||
|
||||
|
||||
"))),
|
||||
")),
|
||||
tags$link(rel = "stylesheet", type = "text/css", href = "profile.css")
|
||||
),
|
||||
|
||||
theme = "style.css",
|
||||
# theme = "style.css",
|
||||
|
||||
|
||||
# App title ----
|
||||
@ -41,21 +43,111 @@ profilServer <- function(input, output,session) {
|
||||
|
||||
|
||||
|
||||
getEditStatus <- eventReactive(input$editSubmit, {
|
||||
editedPersonalData<-data.frame(name<-input$editName,
|
||||
surname<-input$editSurname,
|
||||
mail<-input$editMail,
|
||||
datebirth<-input$editAge,
|
||||
gender<-input$editGender)
|
||||
|
||||
reg<-c(grepl("^[A-Z][a-zA-ZĄąĆćĘꣳŃńÓ󌜏źŻż]{2,15}$",editedPersonalData$name),
|
||||
grepl("^[A-Z][a-zA-ZĄąĆćĘꣳŃńÓ󌜏źŻż]{2,20}$",editedPersonalData$surname),
|
||||
grepl("^[a-z]+[0-9]*@([a-z]{2,10}\\.)+[a-z]{2,5}$",editedPersonalData$mail))
|
||||
if(all(reg)){
|
||||
# status$status = register(result)
|
||||
|
||||
# status$first = FALSE
|
||||
|
||||
|
||||
|
||||
to_send = list(name = editedPersonalData$name,
|
||||
surname = editedPersonalData$surname,
|
||||
email = editedPersonalData$mail,
|
||||
datebirth = editedPersonalData$datebirth,
|
||||
gender = editedPersonalData$gender)
|
||||
|
||||
r<-httr::PUT("http://localhost:8080/api/profile",add_headers(Authorization=paste("Bearer",input$token,sep=" ")),body=to_send,encode = 'json')
|
||||
|
||||
if (r$status_code==200){
|
||||
TRUE
|
||||
}else{
|
||||
FALSE
|
||||
}
|
||||
}else{
|
||||
|
||||
FALSE
|
||||
}
|
||||
|
||||
|
||||
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
observe({
|
||||
if(( (session$clientData)$url_hash=="#!/profil")){
|
||||
|
||||
|
||||
|
||||
|
||||
if( (is.null(input$token) | length(input$token)<=0 )){
|
||||
|
||||
shinyjs::runjs('window.location.replace(\'/#!/home\');')
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
})
|
||||
|
||||
output$profileData<-renderUI({
|
||||
|
||||
|
||||
r<-httr::GET("http://localhost:8080/api/profile",add_headers(Authorization=paste("Bearer",input$token,sep=" ")))
|
||||
|
||||
if(r$status_code==200){
|
||||
|
||||
response<-(content(r))
|
||||
|
||||
session$sendCustomMessage(type='tokenHandlerAfterLogin', response$token)
|
||||
|
||||
|
||||
fluidRow(column(12,
|
||||
wellPanel(
|
||||
textInput("editName", label = strong("Imie"),value=response$profil$name),
|
||||
uiOutput("editName"),
|
||||
textInput("editSurname", label = strong("Nazwisko"),value=response$profil$surname),
|
||||
uiOutput("editSurname"),
|
||||
textInput("editMail", label = strong("Adres email"),value=response$profil$email),
|
||||
uiOutput("editMail"),
|
||||
dateInput("editAge", label = strong("Data urodzenia") ,value=response$profil$datebirth),
|
||||
|
||||
selectInput("editGender", label = strong("Plec"),
|
||||
choices = list("Żenska" = 0, "Meska" = 1),
|
||||
selected = as.numeric(response$profil$gender)),
|
||||
|
||||
),
|
||||
|
||||
actionButton("editSubmit","Zapisz"),
|
||||
uiOutput("btnEditProfile",style="color:red;")
|
||||
|
||||
))
|
||||
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
output$btnEditProfile<-renderUI({
|
||||
|
||||
if (getEditStatus()==TRUE){
|
||||
p("OK",style="color:green;text-align:center;")
|
||||
}else{
|
||||
p("Uzytkownik istnieje lub wprowadzono bledne dane",style="color:red;text-align:center;")
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
|
||||
|
||||
output$afterLogin<-renderUI({
|
||||
@ -70,7 +162,8 @@ profilServer <- function(input, output,session) {
|
||||
)%>% tagAppendAttributes(id = 'column-panel'),
|
||||
column(9,
|
||||
tabsetPanel(type = "tabs",
|
||||
tabPanel("Zakładka 1", tags$div(plotlyOutput("plot1",height = "auto"))%>% tagAppendAttributes(class = 'content-wrapper')),
|
||||
tabPanel("Dane profilowe", tags$div(uiOutput("profileData")
|
||||
)%>% tagAppendAttributes(class = 'content-wrapper')),
|
||||
tabPanel("Zakładka 2", tags$div(plotlyOutput("plot2",height = "auto"))%>% tagAppendAttributes(class = 'content-wrapper')),
|
||||
tabPanel("Zakładka 3", tags$div(plotlyOutput("plot3",height = "auto"))%>% tagAppendAttributes(class = 'content-wrapper')),
|
||||
tabPanel("Zakładka 4", tags$div(plotlyOutput("plot4",height = "auto"))%>% tagAppendAttributes(class = 'content-wrapper')),
|
||||
@ -145,6 +238,53 @@ profilServer <- function(input, output,session) {
|
||||
output$table1 <- DT::renderDataTable(iris,options = list(scrollX = TRUE,language=pl))
|
||||
|
||||
|
||||
output$btnResponse<-renderUI({
|
||||
|
||||
if (getStatus()==TRUE){
|
||||
p("OK",style="color:white;text-align:center;")
|
||||
}else{
|
||||
p("Uzytkownik istnieje lub wprowadzono bledne dane",style="color:yellow;text-align:center;")
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
|
||||
output$editName<-renderUI({
|
||||
s<-toString(input$editName)
|
||||
|
||||
if (s=="" | grepl("^[A-Z][a-zA-ZĄąĆćĘꣳŃńÓ󌜏źŻż]{2,15}$",s)==TRUE){
|
||||
return()
|
||||
}else{
|
||||
p("Bład: Imie powinno zaczynac sie od wielkiej litery, zawierac jedynie litery i miec dlugosc od 3 do 15 znaków",style="color:yellow")
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
output$editSurname<-renderUI({
|
||||
s<-toString(input$editSurname)
|
||||
|
||||
if (s=="" | grepl("^[A-Z][a-zA-ZĄąĆćĘꣳŃńÓ󌜏źŻż]{2,20}$",s)==TRUE){
|
||||
return()
|
||||
}else{
|
||||
p("Bład: Nazwisko powinno zaczynac sie od wielkiej litery, zawierac jedynie litery i miec dlugosc od 3 do 15 znaków",style="color:yellow")
|
||||
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
output$editMail<-renderUI({
|
||||
s<-toString(input$editMail)
|
||||
|
||||
if (s=="" | grepl("^[a-z]+[0-9]*@([a-z]{2,10}\\.)+[a-z]{2,5}$",s)==TRUE){
|
||||
return()
|
||||
}else{
|
||||
p("Bład: Mail powinien miec budowe adres@nazwa.domena",style="color:yellow")
|
||||
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
@ -44,7 +44,7 @@ registerServer <- function(input, output,session) {
|
||||
observe({
|
||||
if(((session$clientData)$url_hash=="#!/register") & (!is.null(input$token) & length(input$token)>0 )){
|
||||
|
||||
print("dziala")
|
||||
|
||||
shinyjs::runjs('window.location.replace(\'/#!/home\');')
|
||||
}
|
||||
})
|
||||
@ -67,7 +67,7 @@ registerServer <- function(input, output,session) {
|
||||
grepl("^([a-zA-ZĄąĆćĘꣳŃńÓ󌜏źŻż]+[0-9\\-\\_]*){5,20}$",result$username),
|
||||
grepl("^([a-zA-ZĄąĆćĘꣳŃńÓ󌜏źŻż]{5,}[0-9]{5,}[a-zA-ZĄąĆćĘꣳŃńÓ󌜏źŻż0-9]*)+$",result$password))
|
||||
if(all(reg) & all(result$permission==c(1,2))){
|
||||
# status$status = register(result)
|
||||
|
||||
|
||||
status$first = FALSE
|
||||
|
||||
@ -80,7 +80,7 @@ registerServer <- function(input, output,session) {
|
||||
password= result$password,
|
||||
roleDTO= "IND")
|
||||
r<-httr::POST("http://localhost:8080/api/register",body=to_send,encode = 'json')
|
||||
print(content(r, "text"))
|
||||
|
||||
if (r$status_code==200){
|
||||
status$status = TRUE
|
||||
}else{
|
||||
|
17
app/www/profile.css
Normal file
17
app/www/profile.css
Normal file
@ -0,0 +1,17 @@
|
||||
#profileData{
|
||||
display:flex;
|
||||
justify-content:center;
|
||||
|
||||
}
|
||||
|
||||
#profileData > .row,#profileData > .row > .well{
|
||||
width:100%;
|
||||
}
|
||||
|
||||
#profileData > .row .well{
|
||||
#display:flex;
|
||||
color:white;
|
||||
background-color:#00A896;
|
||||
|
||||
}
|
||||
|
@ -281,7 +281,7 @@ font-family:Fjalla One;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
#submit,#loginBtn{
|
||||
#submit,#loginBtn,#editSubmit{
|
||||
margin-top:20px;
|
||||
align-self:center;
|
||||
min-width:25%;
|
||||
|
@ -12,6 +12,9 @@
|
||||
<module name="backend" />
|
||||
</profile>
|
||||
</annotationProcessing>
|
||||
<bytecodeTargetLevel>
|
||||
<module name="backend" target="1.8" />
|
||||
</bytecodeTargetLevel>
|
||||
</component>
|
||||
<component name="JavacSettings">
|
||||
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
|
||||
|
@ -2,11 +2,9 @@
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="2f11f4d5-1593-4266-846c-71ac633cf58a" name="Default" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/../app/.Rhistory" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../app/app.R" beforeDir="false" afterPath="$PROJECT_DIR$/../app/app.R" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../app/login_module.R" beforeDir="false" afterPath="$PROJECT_DIR$/../app/login_module.R" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../app/profil_module.R" beforeDir="false" afterPath="$PROJECT_DIR$/../app/profil_module.R" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../app/register_module.R" beforeDir="false" afterPath="$PROJECT_DIR$/../app/register_module.R" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../app/www/style.css" beforeDir="false" afterPath="$PROJECT_DIR$/../app/www/style.css" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
@ -183,42 +181,43 @@
|
||||
<screen x="0" y="0" width="1280" height="984" />
|
||||
</state>
|
||||
<state x="445" y="208" key="#com.intellij.ide.util.MemberChooser/0.0.1280.984@0.0.1280.984" timestamp="1608284675573" />
|
||||
<state x="618" y="301" key="#com.intellij.ide.util.projectWizard.JdkChooserPanel.MyDialog" timestamp="1606136940050">
|
||||
<screen x="0" y="0" width="1536" height="824" />
|
||||
<state x="515" y="359" key="#com.intellij.ide.util.projectWizard.JdkChooserPanel.MyDialog" timestamp="1608416401063">
|
||||
<screen x="0" y="0" width="1280" height="984" />
|
||||
</state>
|
||||
<state x="515" y="359" key="#com.intellij.ide.util.projectWizard.JdkChooserPanel.MyDialog/0.0.1280.984@0.0.1280.984" timestamp="1608416401063" />
|
||||
<state x="618" y="301" key="#com.intellij.ide.util.projectWizard.JdkChooserPanel.MyDialog/0.0.1536.824@0.0.1536.824" timestamp="1606136940050" />
|
||||
<state x="370" y="239" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog" timestamp="1608284351336">
|
||||
<screen x="0" y="0" width="1280" height="984" />
|
||||
</state>
|
||||
<state x="370" y="239" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog/0.0.1280.984@0.0.1280.984" timestamp="1608284351336" />
|
||||
<state x="420" y="247" key="FileChooserDialogImpl" timestamp="1608392985023">
|
||||
<state x="420" y="247" key="FileChooserDialogImpl" timestamp="1608416486787">
|
||||
<screen x="0" y="0" width="1280" height="984" />
|
||||
</state>
|
||||
<state x="420" y="247" key="FileChooserDialogImpl/0.0.1280.984@0.0.1280.984" timestamp="1608392985023" />
|
||||
<state width="1237" height="260" key="GridCell.Tab.0.bottom" timestamp="1608415904493">
|
||||
<state x="420" y="247" key="FileChooserDialogImpl/0.0.1280.984@0.0.1280.984" timestamp="1608416486787" />
|
||||
<state width="1237" height="144" key="GridCell.Tab.0.bottom" timestamp="1608474806471">
|
||||
<screen x="0" y="0" width="1280" height="984" />
|
||||
</state>
|
||||
<state width="1237" height="260" key="GridCell.Tab.0.bottom/0.0.1280.984@0.0.1280.984" timestamp="1608415904493" />
|
||||
<state width="1237" height="260" key="GridCell.Tab.0.center" timestamp="1608415904493">
|
||||
<state width="1237" height="144" key="GridCell.Tab.0.bottom/0.0.1280.984@0.0.1280.984" timestamp="1608474806471" />
|
||||
<state width="1237" height="144" key="GridCell.Tab.0.center" timestamp="1608474806471">
|
||||
<screen x="0" y="0" width="1280" height="984" />
|
||||
</state>
|
||||
<state width="1237" height="260" key="GridCell.Tab.0.center/0.0.1280.984@0.0.1280.984" timestamp="1608415904493" />
|
||||
<state width="1237" height="260" key="GridCell.Tab.0.left" timestamp="1608415904492">
|
||||
<state width="1237" height="144" key="GridCell.Tab.0.center/0.0.1280.984@0.0.1280.984" timestamp="1608474806471" />
|
||||
<state width="1237" height="144" key="GridCell.Tab.0.left" timestamp="1608474806471">
|
||||
<screen x="0" y="0" width="1280" height="984" />
|
||||
</state>
|
||||
<state width="1237" height="260" key="GridCell.Tab.0.left/0.0.1280.984@0.0.1280.984" timestamp="1608415904492" />
|
||||
<state width="1237" height="260" key="GridCell.Tab.0.right" timestamp="1608415904493">
|
||||
<state width="1237" height="144" key="GridCell.Tab.0.left/0.0.1280.984@0.0.1280.984" timestamp="1608474806471" />
|
||||
<state width="1237" height="144" key="GridCell.Tab.0.right" timestamp="1608474806471">
|
||||
<screen x="0" y="0" width="1280" height="984" />
|
||||
</state>
|
||||
<state width="1237" height="260" key="GridCell.Tab.0.right/0.0.1280.984@0.0.1280.984" timestamp="1608415904493" />
|
||||
<state x="231" y="66" key="SettingsEditor" timestamp="1608415647081">
|
||||
<state width="1237" height="144" key="GridCell.Tab.0.right/0.0.1280.984@0.0.1280.984" timestamp="1608474806471" />
|
||||
<state x="231" y="66" key="SettingsEditor" timestamp="1608416474275">
|
||||
<screen x="0" y="0" width="1280" height="984" />
|
||||
</state>
|
||||
<state x="231" y="66" key="SettingsEditor/0.0.1280.984@0.0.1280.984" timestamp="1608415647081" />
|
||||
<state x="231" y="66" key="SettingsEditor/0.0.1280.984@0.0.1280.984" timestamp="1608416474275" />
|
||||
<state x="277" y="55" key="SettingsEditor/0.0.1536.824@0.0.1536.824" timestamp="1606136640031" />
|
||||
<state x="336" y="316" key="com.intellij.ide.util.TipDialog" timestamp="1608387076100">
|
||||
<state x="336" y="316" key="com.intellij.ide.util.TipDialog" timestamp="1608473085786">
|
||||
<screen x="0" y="0" width="1280" height="984" />
|
||||
</state>
|
||||
<state x="336" y="316" key="com.intellij.ide.util.TipDialog/0.0.1280.984@0.0.1280.984" timestamp="1608387076100" />
|
||||
<state x="336" y="316" key="com.intellij.ide.util.TipDialog/0.0.1280.984@0.0.1280.984" timestamp="1608473085786" />
|
||||
</component>
|
||||
</project>
|
@ -79,4 +79,5 @@ public class UserDTO implements Serializable {
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ public class TokenHelper implements Serializable {
|
||||
//Generate Token with userID,role,name
|
||||
|
||||
public String generateToken(User user) {
|
||||
Claims claims = Jwts.claims().setSubject(user.getName());
|
||||
Claims claims = Jwts.claims().setSubject(user.getLogin());
|
||||
claims.put("userId",user.getId());
|
||||
claims.put("role",user.getRole().getName());
|
||||
|
||||
|
@ -49,10 +49,6 @@ public class AuthenticationController {
|
||||
String token=null;
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
|
||||
System.out.println(loginForm.getLogin());
|
||||
System.out.println(loginForm.getPassword());
|
||||
|
||||
|
||||
|
||||
Optional<User> userFromDatabase = this.userService.getUsersByLogin(loginForm.getLogin());
|
||||
|
||||
|
@ -12,6 +12,7 @@ import org.springframework.security.core.userdetails.UserDetails;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import project.DTO.UserDTO;
|
||||
import project.config.TokenHelper;
|
||||
import project.model.*;
|
||||
import project.services.GeneratorDTO;
|
||||
import project.services.RoleService;
|
||||
@ -38,7 +39,8 @@ public class UserController {
|
||||
@Autowired
|
||||
private GeneratorDTO generatorDTO;
|
||||
|
||||
|
||||
@Autowired
|
||||
private TokenHelper tokenHelper;
|
||||
|
||||
|
||||
@Autowired
|
||||
@ -57,20 +59,10 @@ public class UserController {
|
||||
Object token = request.getAttribute("token");
|
||||
map.put("token",token);
|
||||
|
||||
System.out.println("REGISTER IN");
|
||||
System.out.println(userDTO.getLogin());
|
||||
System.out.println(userDTO.getPassword());
|
||||
|
||||
Optional<User> users = this.userService.getUsersByLogin(userDTO.getLogin());
|
||||
|
||||
|
||||
Pattern pName =Pattern.compile("^[A-Z][a-zA-ZĄąĆćĘꣳŃńÓ󌜏źŻż]{2,15}$");
|
||||
Pattern pSurname =Pattern.compile("^[A-Z][a-zA-ZĄąĆćĘꣳŃńÓ󌜏źŻż]{2,20}$");
|
||||
Pattern pEmail =Pattern.compile("^[a-z]+[0-9]*@([a-z]{2,10}\\.)+[a-z]{2,5}$");
|
||||
Pattern pLogin =Pattern.compile("^([a-zA-ZĄąĆćĘꣳŃńÓ󌜏źŻż]+[0-9\\-\\_]*){5,20}$");
|
||||
Pattern pPassword =Pattern.compile("^([a-zA-ZĄąĆćĘꣳŃńÓ󌜏źŻż]{5,}[0-9]{5,}[a-zA-ZĄąĆćĘꣳŃńÓ󌜏źŻż0-9]*)+$");
|
||||
|
||||
|
||||
if(users.isPresent()){
|
||||
|
||||
map.put("message","Wprowadzony użytkownik już istnieje");
|
||||
@ -79,15 +71,8 @@ public class UserController {
|
||||
|
||||
}
|
||||
|
||||
else if(!pName.matcher(userDTO.getName()).matches() | !pSurname.matcher(userDTO.getSurname()).matches() |
|
||||
!pEmail.matcher(userDTO.getEmail()).matches() | !pLogin.matcher(userDTO.getLogin()).matches() |
|
||||
!pPassword.matcher(userDTO.getPassword()).matches()){
|
||||
else if(!userService.checkIfCorrect(userDTO,false)){
|
||||
|
||||
System.out.println(userDTO.getName() + " " + pName.matcher(userDTO.getName()).matches());
|
||||
System.out.println(userDTO.getSurname() + " " + pSurname.matcher(userDTO.getSurname()).matches());
|
||||
System.out.println(userDTO.getEmail() + " " + pEmail.matcher(userDTO.getEmail()).matches());
|
||||
System.out.println(userDTO.getLogin() + " " + pLogin.matcher(userDTO.getLogin()).matches());
|
||||
System.out.println(userDTO.getPassword() + " " + pPassword.matcher(userDTO.getPassword()).matches());
|
||||
|
||||
map.put("message","Niepoprawny login lub hasło");
|
||||
|
||||
@ -97,11 +82,8 @@ public class UserController {
|
||||
|
||||
else{
|
||||
|
||||
|
||||
User registerUser = new User();
|
||||
|
||||
|
||||
|
||||
registerUser.setName(userDTO.getName());
|
||||
registerUser.setSurname(userDTO.getSurname());
|
||||
registerUser.setEmail(userDTO.getEmail());
|
||||
@ -111,18 +93,14 @@ public class UserController {
|
||||
|
||||
String pass = this.bCryptPasswordEncoder.encode(userDTO.getPassword());
|
||||
|
||||
System.out.println(pass);
|
||||
registerUser.setPassword(pass);
|
||||
|
||||
|
||||
|
||||
Role role = this.roleService.getRoleByName(userDTO.getRoleDTO().getName());
|
||||
registerUser.setRole(role);
|
||||
|
||||
|
||||
this.userService.addUser(registerUser);
|
||||
map.put("message", "Zostałeś pomyślnie zarejestrowany");
|
||||
httpServletResponse.setStatus(201);
|
||||
httpServletResponse.setStatus(200);
|
||||
return map;
|
||||
}
|
||||
|
||||
@ -130,45 +108,92 @@ public class UserController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@PreAuthorize("hasAnyAuthority('COMP','IND')")
|
||||
@RequestMapping(value="/profile/{id}",method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<Map<String,Object>> getProfileInfo(HttpServletRequest request,
|
||||
@PathVariable int id){
|
||||
@RequestMapping(value="/profile",method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@ResponseBody
|
||||
public Map<String,Object> getMyProfile(HttpServletRequest request,HttpServletResponse httpServletResponse){
|
||||
|
||||
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
UserDetails userDetails = (UserDetails)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
||||
Optional<User> user = userService.getUsersByLogin(userDetails.getUsername());
|
||||
int userId = user.get().getId();
|
||||
|
||||
String userRole = user.get().getRole().getName();
|
||||
if (user.isPresent()) {
|
||||
User currentUser = user.get();
|
||||
|
||||
|
||||
Object token = request.getAttribute("token");
|
||||
map.put("token",token);
|
||||
Object token = request.getAttribute("token");
|
||||
|
||||
map.put("token", tokenHelper.refreshToken(token.toString()));
|
||||
|
||||
map.put("profil", this.generatorDTO.generateUserDTO(currentUser));
|
||||
httpServletResponse.setStatus(200);
|
||||
|
||||
|
||||
User userProfile = this.userService.getUserById(id);
|
||||
if(userProfile!=null) {
|
||||
|
||||
String userProfileRole = userProfile.getRole().getName();
|
||||
|
||||
if (userId == id) {
|
||||
map.put("profil", this.generatorDTO.generateUserDTO(userProfile));
|
||||
return new ResponseEntity<Map<String, Object>>(map, HttpStatus.OK);
|
||||
}else {
|
||||
map.put("message", "Nie masz dostępu do tej strony");
|
||||
return new ResponseEntity<Map<String, Object>>(map, HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
map.put("message", "Profil nie istnieje");
|
||||
return new ResponseEntity<Map<String, Object>>(map, HttpStatus.BAD_REQUEST);
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
map.put("message", "Profil nie istnieje");
|
||||
httpServletResponse.setStatus(404);
|
||||
|
||||
}
|
||||
return map;
|
||||
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAnyAuthority('COMP','IND')")
|
||||
@RequestMapping(value="/profile",method = RequestMethod.PUT,produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@ResponseBody
|
||||
public Map<String,Object> editMyProfile(@RequestBody @Valid @NotNull UserDTO userDTO,HttpServletRequest request,HttpServletResponse httpServletResponse){
|
||||
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
UserDetails userDetails = (UserDetails)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
||||
Optional<User> user = userService.getUsersByLogin(userDetails.getUsername());
|
||||
|
||||
if (user.isPresent()) {
|
||||
User currentUser = user.get();
|
||||
|
||||
|
||||
|
||||
Object token = request.getAttribute("token");
|
||||
|
||||
map.put("token", tokenHelper.refreshToken(token.toString()));
|
||||
|
||||
if(userService.checkIfCorrect(userDTO,true)){
|
||||
|
||||
|
||||
currentUser.setName(userDTO.getName());
|
||||
currentUser.setSurname(userDTO.getSurname());
|
||||
currentUser.setDatebirth(userDTO.getDatebirth());
|
||||
currentUser.setGender(userDTO.getGender());
|
||||
currentUser.setEmail(userDTO.getEmail());
|
||||
|
||||
map.put("profil", this.generatorDTO.generateUserDTO(userService.addUser(currentUser)));
|
||||
httpServletResponse.setStatus(200);
|
||||
}
|
||||
else{
|
||||
map.put("message", "Błędne dane");
|
||||
httpServletResponse.setStatus(404);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
map.put("message", "Profil nie istnieje");
|
||||
httpServletResponse.setStatus(404);
|
||||
|
||||
}
|
||||
return map;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package project.services;
|
||||
|
||||
import project.DTO.UserDTO;
|
||||
import project.model.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@ -15,6 +16,7 @@ public interface UserService {
|
||||
public void deleteUser(int id);
|
||||
public User getUserById(int id);
|
||||
public List<User> getAllUsers();
|
||||
public boolean checkIfCorrect(UserDTO userDTO,boolean edit);
|
||||
|
||||
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ import org.springframework.security.core.userdetails.UserDetails;
|
||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||
import org.springframework.stereotype.Service;
|
||||
import project.DTO.UserDTO;
|
||||
import project.model.CustomUserDetails;
|
||||
import project.model.User;
|
||||
import project.repositories.UserRepository;
|
||||
@ -20,6 +21,7 @@ import javax.servlet.http.HttpSession;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import static org.springframework.security.web.context.HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY;
|
||||
|
||||
@ -78,4 +80,28 @@ public class UserServiceImpl implements UserService,UserDetailsService {
|
||||
|
||||
}
|
||||
|
||||
public boolean checkIfCorrect(UserDTO userDTO,boolean edit){
|
||||
Pattern pName =Pattern.compile("^[A-Z][a-zA-ZĄąĆćĘꣳŃńÓ󌜏źŻż]{2,15}$");
|
||||
Pattern pSurname =Pattern.compile("^[A-Z][a-zA-ZĄąĆćĘꣳŃńÓ󌜏źŻż]{2,20}$");
|
||||
Pattern pEmail =Pattern.compile("^[a-z]+[0-9]*@([a-z]{2,10}\\.)+[a-z]{2,5}$");
|
||||
Pattern pLogin =Pattern.compile("^([a-zA-ZĄąĆćĘꣳŃńÓ󌜏źŻż]+[0-9\\-\\_]*){5,20}$");
|
||||
Pattern pPassword =Pattern.compile("^([a-zA-ZĄąĆćĘꣳŃńÓ󌜏źŻż]{5,}[0-9]{5,}[a-zA-ZĄąĆćĘꣳŃńÓ󌜏źŻż0-9]*)+$");
|
||||
|
||||
if(!pName.matcher(userDTO.getName()).matches() | !pSurname.matcher(userDTO.getSurname()).matches() |
|
||||
!pEmail.matcher(userDTO.getEmail()).matches() ) {
|
||||
|
||||
return false;
|
||||
}else if(!edit){
|
||||
if(!pLogin.matcher(userDTO.getLogin()).matches() |
|
||||
!pPassword.matcher(userDTO.getPassword()).matches()){
|
||||
return false;
|
||||
}else {
|
||||
return true;
|
||||
}
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user