\x89PNG\r\n\x1a\n\x00\x00\x00\x0DIHDR\x00\x00\x00\x01\x00 \x00\x00\x01\x08\x06\x00\x00\x00\x1F\x15\xC4\x89\x00\x00\x00 \x0AIDATx\x9Ccb\x00\x00\x00\x06\x00\x03\x1A\x05\x9D\x00\x00 \x00\x00IEND\xAE\x42\x60\x82 csarite.com
KUJUNTI.ID MINISH3LL
Path : /var/www/html/yedekledb24/DatabaseBackupMasterv7/__pycache__/
(S)h3ll Cr3at0r :
F!le Upl0ad :

B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H

Current File : /var/www/html/yedekledb24/DatabaseBackupMasterv7/__pycache__/models.cpython-310.pyc


o

��gv(�@s�ddlZddlZddlmZddlmZmZddlmZGdd�dej	�Z
Gdd�dej	�ZGd	d
�d
ej	�ZGdd�dej	�Z
Gd
d�deej	�ZGdd�dej	�ZGdd�dej	�ZdS)�N)�db)�generate_password_hash�check_password_hash)�	UserMixinc@s�eZdZdZejejdd�Zeje�d�dd�Z	eje�d�dd�Z
eje�d�dd�Zejejdd�Zeje�d�dd�Z
eje�d�dd�Zeje�d�dd�Zeje�d	�dd�Zejejejjd
�Zejdddd
�Zdd�ZdS)�DatabaseConnectionz,Model for database connection configuration.T��primary_key�@F��nullable�����default�	BackupJob�database��backref�lazycC�d|j�d�S)Nz<DatabaseConnection �>��name��self�r�8/var/www/html/yedekledb24/DatabaseBackupMaster/models.py�__repr__�zDatabaseConnection.__repr__N)�__name__�
__module__�__qualname__�__doc__r�Column�Integer�id�Stringr�db_type�host�port�username�passwordr�
pg_version�DateTime�datetime�utcnow�
created_at�relationship�backup_jobsrrrrrrsrc@s�eZdZdZejejdd�Zeje�d�dd�Z	eje�d�dd�Z
eje�d�dd�Zejejdd�Zeje�d�dd�Z
eje�d�dd�Zeje�d	�dd�Zejejejjd
�Zejdddd
�Zdd�ZdS)�
StorageTargetz.Model for backup storage target configuration.Trr	Fr
rr
�rr�storagercCr)Nz<StorageTarget rrrrrrr'rzStorageTarget.__repr__N)r r!r"r#rr$r%r&r'r�storage_typer)r*r+r,�pathr.r/r0r1r2r3rrrrrr4sr4c@s�eZdZdZejejdd�Zeje�d�dd�Z	ejeje�
d�dd�Zejeje�
d�dd�Zeje�d	�dd�Z
eje�d�dd�Zejejd
d�Zejejdd�Zejejejjd�Zejejdd�Zejejdd�Zeje�d	�dd�Zejejej
dd
d�dd�Zeje�d�dd�Zejejdd�Zeje�d	�dd�Zeje�d	�dd�Zejejdd�Zej dddegd�Z!ej dddd�Z"dd�Z#dS)rz#Model for backup job configuration.Trr	Fr
zdatabase_connection.idzstorage_target.idr�rzencryption_key.id�fk_backup_job_encryption_keyrr5�zip�full�
EncryptionKeyr3)rr�foreign_keys�	BackupLog�jobrcCr)Nz<BackupJob rrrrrrrJrzBackupJob.__repr__N)$r r!r"r#rr$r%r&r'r�
ForeignKey�database_id�
storage_id�
schedule_type�schedule_value�retention_days�Boolean�enabledr.r/r0r1�last_run�encrypt_backup�encryption_type�encryption_key_id�encryption_passphrase�compress_backup�compression_type�
backup_method�Text�xtrabackup_optionsr2�encryption_key�logsrrrrrr*s.rc@seZdZdZejejdd�Zejeje�d�dd�Z	ejej
ejjd�Z
eje�d�dd�Zejejdd�Zeje�d	�dd�Zejejdd�Zejejdd�Zejejdd�Zeje�d�dd�Zeje�d�d
d�Zejejejddd
�dd�Zejdegdd�Zdd�ZdS)r?z Model for backup execution logs.Trz
backup_job.idFr
rrr5r<z
backup_log.id�fk_parent_backupr�
child_backups)�remote_sidercCs d|jj�d|j�d|j�d�S)Nz<BackupLog � r)r@r�	timestamp�statusrrrrrcs zBackupLog.__repr__N)r r!r"r#rr$r%r&rA�job_idr.r/r0rYr'rZrQ�message�backup_file�
BigInteger�backup_size�Float�durationrG�	encryptedrKrP�parent_backup_idr2�
parent_backuprrrrrr?Ms r?c@s�eZdZdZejejdd�Zeje�d�ddd�Z	eje�d�ddd�Z
eje�d�dd	�Zejejdd
�Z
ejejejjd
�Zejejdd	�Zdd�Zd
d�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�ZdS)�UserzModel for user authentication.Trr	F)�uniquer�xr5r
rcCst|�|_dS)z,Set password hash from a plaintext password.N)r�
password_hash�rr,rrr�set_passwordqszUser.set_passwordcCst|j|�S)z@Check if the provided password matches the stored password hash.)rrhrirrr�check_passworduszUser.check_passwordcCsdS)zAll users can view content.Trrrrr�can_viewysz
User.can_viewcC�|jS)z,Only admins can manage database connections.��is_adminrrrr�can_manage_db_connections}�zUser.can_manage_db_connectionscCrm)z'Only admins can manage storage targets.rnrrrr�can_manage_storage�rqzUser.can_manage_storagecCrm)z#Only admins can manage backup jobs.rnrrrr�can_manage_backup_jobs�rqzUser.can_manage_backup_jobscCrm)zOnly admins can manage users.rnrrrr�can_manage_users�rqzUser.can_manage_userscCr)Nz<User r)r+rrrrr�rz
User.__repr__N)r r!r"r#rr$r%r&r'r+�emailrhrGror.r/r0r1�
last_loginrjrkrlrprrrsrtrrrrrregs"rec@s�eZdZdZejejdd�Zeje�d�dd�Z	eje�d�dd�Z
eje�d�dd�Zejejdd	d
�Zeje�d�ddd�Z
ejejdd�Zejejdd�Zejejejjd�Zejeje�d
�dd�Zejdddd�Zdd�Zdd�ZdS)r=zModel for GPG encryption keys.Trr	Fr
r
ri)rr)rrfrzuser.idre�encryption_keysrcCsd|j�d|j�d�S)Nz<EncryptionKey z (z)>)rrurrrrr�szEncryptionKey.__repr__cCs(|jrt|j�dkr|jdd�S|jS)z7Return the short version of fingerprint (last 8 chars).ri����N)�fingerprint�lenrrrr�short_fingerprint�szEncryptionKey.short_fingerprintN)r r!r"r#rr$r%r&r'rru�key_type�
key_lengthrxrQ�
public_key�private_keyr.r/r0r1rA�
created_byr2�creatorrrzrrrrr=�sr=c@s�eZdZdZejejdd�Zeje�d�dd�Z	ejejdd�Z
ejejdd�Zejejdd�Z
eje�d�dd�Zeje�d�dd�Zeje�d�dd�Zeje�d�dd�Zejejejjd�Zejejejjejjd	�Zd
d�Zedd
��ZdS)�SmtpSettingszModel for SMTP email settings.Trr
Fr
rr5)r�onupdatecCr)Nz<SmtpSettings r)�mail_serverrrrrr�rzSmtpSettings.__repr__cCs�tj��}|durFtj�dd�ttj�dd��tj�dd���dvtj�d	d
���dvtj�dd�tj�d
d�tj�dd�tj�dd�d�S|j|j	|j
|j|j|j
|j|jd�S)z7Get the SMTP settings (there should only be one record)N�MAIL_SERVERzsmtp.gmail.com�	MAIL_PORTiK�MAIL_USE_TLS�True)�true�1�t�MAIL_USE_SSL�False�
MAIL_USERNAME��
MAIL_PASSWORD�MAIL_DEFAULT_SENDER�BACKUP_NOTIFICATION_EMAILS)r��	mail_port�mail_use_tls�mail_use_ssl�
mail_username�
mail_password�mail_default_sender�notification_emails)r��query�first�os�environ�get�int�lowerr�r�r�r�r�r�r�r�)�settingsrrr�get_settings�s(
��zSmtpSettings.get_settingsN)r r!r"r#rr$r%r&r'r�r�rGr�r�r�r�r�r�r.r/r0r1�
updated_atr�staticmethodr�rrrrr��s r�)r/r��appr�werkzeug.securityrr�flask_loginr�Modelrr4rr?rer=r�rrrr�<module>s#*

© KUJUNTI.ID