dev add tariff and temp flag for files
Test Workflow / test (push) Successful in 2s

This commit is contained in:
vladp
2026-01-30 12:52:16 +07:00
parent fb5642db9e
commit 49dc19cd04
21 changed files with 612 additions and 24 deletions
@@ -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;
}