Пример #1
0
def create_remote_scheme():
    """ insert here creating of application scheme
	"""
    import ProAdmin
    from vdom_remote_api import VDOMService
    from md5 import md5
    from proadmin_remote_sync import RemoteSync

    from proadmin_remote_application_scheme import RemoteApplicationScheme
    from proadmin_db_connection import DbConnection

    from class_remote_settings import RemoteSettings

    # create connection to ProAdmin
    remote = RemoteSettings.get_remote_setting()

    server = remote.server
    login = remote.login
    password = md5(remote.password).hexdigest()
    app_id = '491d4c93-4089-4517-93d3-82326298da44'

    # create ldap connection

    import os

    db_path = application.storage.abs_path('test_db.sqlite')
    if not os.path.exists(application.storage.abs_path('')):
        os.makedirs(application.storage.abs_path(''))
    connection = DbConnection(db_path)

    try:
        service = VDOMService(server, login, password, app_id).open_session()

        # create application scheme
        scheme = RemoteApplicationScheme(application.id, connection)
        scheme.set_sync_service(service)

    except Exception, ex:
        RemoteSettings.delete()
        scheme = create_local_scheme()
Пример #2
0
def create_default_scheme():
    """ insert here creating of application scheme
	"""
    from proadmin_remote_settings import RemoteSettings
    remote = RemoteSettings.get_remote_setting()

    if remote:
        scheme = create_remote_scheme()
    else:
        scheme = create_local_scheme()

    scheme.set_information(application.name)

    # set scheme options
    scheme.set_option('api_guid',
                      '5073ff75-da99-44fb-a5d7-e44e5ab28598')  # API
    scheme.set_option('subjects_limit', None)  # subjects limitation

    app_guid = application.id  #"26d94c75-ce3d-4019-8475-daf6206db7e3"
    app_type = ProAdmin.ACLObjectType("Application", app_guid)
    app_type.set_access_types({"a": "Admin"})
    scheme.add_aclobjecttype(app_type)

    #	# create Mailbox ACL Type
    #	mailbox_guid = '24d8c50b-1de8-4c25-995f-eb127d51f154'
    #	mailbox_type = ProAdmin.ACLObjectType( 'Mailbox', mailbox_guid )
    #	mailbox_type.set_access_types({
    #		"d": "Delete",
    #		"o": "Owner",
    #		"r": "Read",
    #		"w": "Write",
    #	})
    #	scheme.add_aclobjecttype( mailbox_type )

    scheme.register()

    # create admins group and admin user
    app = ProAdmin.application()
    app.create_root_user(password='******')
    app.create_admins_group()