Files

64 lines
2.8 KiB
Python
Raw Permalink Normal View History

2026-01-28 22:37:47 +03:00
from sqlalchemy import Column, Integer, String, Boolean, DateTime, JSON
from sqlalchemy.sql import func
from database import Base
from datetime import datetime
class PKISetting(Base):
__tablename__ = "pki_settings"
id = Column(Integer, primary_key=True, index=True)
fqdn_ca = Column(String, default="ovpn-ca")
fqdn_server = Column(String, default="ovpn-srv")
easyrsa_dn = Column(String, default="cn_only")
easyrsa_req_country = Column(String, default="RU")
easyrsa_req_province = Column(String, default="Moscow")
easyrsa_req_city = Column(String, default="Moscow")
easyrsa_req_org = Column(String, default="SomeORG")
easyrsa_req_email = Column(String, default="info@someorg.local")
easyrsa_req_ou = Column(String, default="IT")
easyrsa_key_size = Column(Integer, default=2048)
easyrsa_ca_expire = Column(Integer, default=3650)
easyrsa_cert_expire = Column(Integer, default=3649)
easyrsa_cert_renew = Column(Integer, default=30)
easyrsa_crl_days = Column(Integer, default=3649)
easyrsa_batch = Column(Boolean, default=True)
class SystemSettings(Base):
__tablename__ = "system_settings"
id = Column(Integer, primary_key=True, index=True)
protocol = Column(String, default="udp")
port = Column(Integer, default=1194)
vpn_network = Column(String, default="172.20.1.0")
vpn_netmask = Column(String, default="255.255.255.0")
tunnel_type = Column(String, default="FULL") # FULL or SPLIT
split_routes = Column(JSON, default=list)
duplicate_cn = Column(Boolean, default=False)
crl_verify = Column(Boolean, default=False)
client_to_client = Column(Boolean, default=False)
user_defined_dns = Column(Boolean, default=False)
dns_servers = Column(JSON, default=list)
user_defined_cdscripts = Column(Boolean, default=False)
connect_script = Column(String, default="")
disconnect_script = Column(String, default="")
management_interface = Column(Boolean, default=False)
management_interface_address = Column(String, default="127.0.0.1")
management_port = Column(Integer, default=7505)
public_ip = Column(String, nullable=True)
tun_mtu = Column(Integer, nullable=True)
mssfix = Column(Integer, nullable=True)
class UserProfile(Base):
__tablename__ = "user_profiles"
id = Column(Integer, primary_key=True, index=True)
username = Column(String, unique=True, index=True)
status = Column(String, default="active") # active, revoked
created_at = Column(DateTime, default=datetime.utcnow)
revoked_at = Column(DateTime, nullable=True)
# expired_at removed as per request
expiration_date = Column(DateTime, nullable=True)
is_revoked = Column(Boolean, default=False)
is_expired = Column(Boolean, default=False)
file_path = Column(String, nullable=True)