Edit entities, add security package
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
package com.faf223.expensetrackerfaf.controllers;
|
package com.faf223.expensetrackerfaf.controllers;
|
||||||
|
|
||||||
import entities.User;
|
import com.faf223.expensetrackerfaf.entities.User;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package entities;
|
package com.faf223.expensetrackerfaf.entities;
|
||||||
|
|
||||||
public class Categories {
|
public class Categories {
|
||||||
|
|
||||||
@@ -1,24 +1,38 @@
|
|||||||
package entities;
|
package com.faf223.expensetrackerfaf.entities;
|
||||||
|
|
||||||
|
import com.faf223.expensetrackerfaf.util.IMoneyTransaction;
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Table(name = "expense")
|
||||||
public class Expense implements IMoneyTransaction {
|
public class Expense implements IMoneyTransaction {
|
||||||
|
|
||||||
private int userId;
|
@Id
|
||||||
|
@Column(name = "id")
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private long id;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JoinColumn(name = "user_id", referencedColumnName = "id")
|
||||||
|
private User user;
|
||||||
private int amount;
|
private int amount;
|
||||||
private Categories.ExpenseCategory category;
|
private Categories.ExpenseCategory category;
|
||||||
|
|
||||||
public Expense(int userId, int amount, Categories.ExpenseCategory category) {
|
public Expense(User user, int amount, Categories.ExpenseCategory category) {
|
||||||
this.userId = userId;
|
this.user = user;
|
||||||
this.amount = amount;
|
this.amount = amount;
|
||||||
this.category = category;
|
this.category = category;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Expense() {}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getUserId() {
|
public User getUser() {
|
||||||
return userId;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUserId(int userId) {
|
public void setUserId(int userId) {
|
||||||
this.userId = userId;
|
this.user = user;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
package com.faf223.expensetrackerfaf.entities;
|
||||||
|
|
||||||
|
import com.faf223.expensetrackerfaf.util.IMoneyTransaction;
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Table(name = "income")
|
||||||
|
public class Income implements IMoneyTransaction {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@Column(name = "id")
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private long id;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JoinColumn(name = "user_id", referencedColumnName = "id")
|
||||||
|
private User user;
|
||||||
|
private int amount;
|
||||||
|
private Categories.IncomeCategory category;
|
||||||
|
|
||||||
|
public Income(User user, int amount, Categories.IncomeCategory category) {
|
||||||
|
this.user = user;
|
||||||
|
this.amount = amount;
|
||||||
|
this.category = category;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Income() {}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public User getUser() {
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getAmount() {
|
||||||
|
return amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCategory() {
|
||||||
|
return category.getEffectiveName();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(User user) {
|
||||||
|
this.user = user;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAmount(int amount) {
|
||||||
|
this.amount = amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCategory(Categories.IncomeCategory category) {
|
||||||
|
this.category = category;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,5 @@
|
|||||||
package entities;
|
package com.faf223.expensetrackerfaf.entities;
|
||||||
|
|
||||||
public enum Role {
|
public enum Role {
|
||||||
|
|
||||||
UNREGISTERED, REGISTERED, ADMIN;
|
UNREGISTERED, REGISTERED, ADMIN;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,12 +1,25 @@
|
|||||||
package entities;
|
package com.faf223.expensetrackerfaf.entities;
|
||||||
|
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Table(name = "User")
|
||||||
public class User {
|
public class User {
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
private long id;
|
private long id;
|
||||||
private String name, email, login, password;
|
private String name;
|
||||||
|
private String email;
|
||||||
|
private String login;
|
||||||
|
private String password;
|
||||||
private Role role;
|
private Role role;
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "user")
|
||||||
private List<Expense> expenses;
|
private List<Expense> expenses;
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "user")
|
||||||
private List<Income> incomes;
|
private List<Income> incomes;
|
||||||
|
|
||||||
public User(long id, String name, String email, String login, String password, Role role, List<Expense> expenses, List<Income> incomes) {
|
public User(long id, String name, String email, String login, String password, Role role, List<Expense> expenses, List<Income> incomes) {
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
package com.faf223.expensetrackerfaf.security;
|
||||||
|
|
||||||
|
import com.faf223.expensetrackerfaf.entities.Role;
|
||||||
|
import jakarta.persistence.EnumType;
|
||||||
|
import jakarta.persistence.Enumerated;
|
||||||
|
import org.springframework.security.core.GrantedAuthority;
|
||||||
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
||||||
|
import org.springframework.security.core.userdetails.User;
|
||||||
|
import org.springframework.security.core.userdetails.UserDetails;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class PersonDetails implements UserDetails {
|
||||||
|
|
||||||
|
private final User user;
|
||||||
|
|
||||||
|
@Enumerated(EnumType.STRING)
|
||||||
|
private Role role;
|
||||||
|
|
||||||
|
public PersonDetails(User user) {
|
||||||
|
this.user = user;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Collection<? extends GrantedAuthority> getAuthorities() {
|
||||||
|
return List.of(new SimpleGrantedAuthority(role.name()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPassword() {
|
||||||
|
return user.getPassword();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUsername() {
|
||||||
|
return user.getUsername();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAccountNonExpired() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAccountNonLocked() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCredentialsNonExpired() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package com.faf223.expensetrackerfaf.util;
|
||||||
|
|
||||||
|
import com.faf223.expensetrackerfaf.entities.User;
|
||||||
|
|
||||||
|
public interface IMoneyTransaction {
|
||||||
|
|
||||||
|
User getUser();
|
||||||
|
|
||||||
|
int getAmount();
|
||||||
|
String getCategory();
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
package entities;
|
|
||||||
|
|
||||||
public interface IMoneyTransaction {
|
|
||||||
|
|
||||||
long getUserId();
|
|
||||||
int getAmount();
|
|
||||||
String getCategory();
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
package entities;
|
|
||||||
|
|
||||||
public class Income implements IMoneyTransaction {
|
|
||||||
|
|
||||||
private long userId;
|
|
||||||
private int amount;
|
|
||||||
private Categories.IncomeCategory category;
|
|
||||||
|
|
||||||
public Income(long userId, int amount, Categories.IncomeCategory category) {
|
|
||||||
this.userId = userId;
|
|
||||||
this.amount = amount;
|
|
||||||
this.category = category;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public long getUserId() {
|
|
||||||
return userId;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getAmount() {
|
|
||||||
return amount;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getCategory() {
|
|
||||||
return category.getEffectiveName();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUserId(long userId) {
|
|
||||||
this.userId = userId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAmount(int amount) {
|
|
||||||
this.amount = amount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCategory(Categories.IncomeCategory category) {
|
|
||||||
this.category = category;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user