This commit is contained in:
@@ -8,6 +8,8 @@ import org.springframework.data.annotation.CreatedDate;
|
||||
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
||||
import ru.soune.nocopy.entity.company.Company;
|
||||
import ru.soune.nocopy.entity.file.Violation;
|
||||
import ru.soune.nocopy.entity.tarif.TariffInfo;
|
||||
import ru.soune.nocopy.entity.tarif.TariffStatus;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
@@ -68,9 +70,6 @@ public class User {
|
||||
@Column(name = "is_active")
|
||||
private boolean isActive = false;
|
||||
|
||||
@Column(name = "permissions")
|
||||
private Long userPermissions;
|
||||
|
||||
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
|
||||
@JsonIgnore
|
||||
@ToString.Exclude
|
||||
@@ -90,6 +89,56 @@ public class User {
|
||||
@JsonIgnore
|
||||
private ProtectedFileCheck protectedFileCheck;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "company_id")
|
||||
@ToString.Exclude
|
||||
private Company company;
|
||||
|
||||
@Column(name = "permissions")
|
||||
private Long userPermissions = Permission.DEFAULT_USER_PERMISSIONS;
|
||||
|
||||
@OneToOne(cascade = CascadeType.ALL)
|
||||
@JoinColumn(name = "personal_tariff_info_id")
|
||||
@ToString.Exclude
|
||||
private TariffInfo personalTariffInfo;
|
||||
|
||||
public TariffInfo getActiveTariffInfo() {
|
||||
if (company != null && company.getTariffInfo() != null) {
|
||||
return company.getTariffInfo();
|
||||
}
|
||||
return personalTariffInfo;
|
||||
}
|
||||
|
||||
public boolean hasTariffAccess() {
|
||||
TariffInfo activeTariff = getActiveTariffInfo();
|
||||
if (activeTariff == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return activeTariff.getStatus() == TariffStatus.ACTIVE &&
|
||||
LocalDateTime.now().isBefore(activeTariff.getEndTariff());
|
||||
}
|
||||
|
||||
public boolean canLogin() {
|
||||
return Permission.canLogin(this.userPermissions);
|
||||
}
|
||||
|
||||
public boolean canManageCompanySettings() {
|
||||
return Permission.canManageCompanySettings(this.userPermissions);
|
||||
}
|
||||
|
||||
public void grantPermission(long permissionBit) {
|
||||
this.userPermissions = Permission.addPermission(this.userPermissions, permissionBit);
|
||||
}
|
||||
|
||||
public void removePermission(long permissionBit) {
|
||||
this.userPermissions = Permission.removePermission(this.userPermissions, permissionBit);
|
||||
}
|
||||
|
||||
public boolean hasPermission(long permissionBit) {
|
||||
return Permission.hasPermission(this.userPermissions, permissionBit);
|
||||
}
|
||||
|
||||
public String getCompanyName() {
|
||||
if (company != null) {
|
||||
return company.getCompanyName();
|
||||
@@ -97,9 +146,4 @@ public class User {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "company_id")
|
||||
@ToString.Exclude
|
||||
private Company company;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user