Esempio n. 1
0
def get_app_setup(app_name):
    injector = get_injector()
    app_paths = AppPaths(app_name, injector.platform_config)
    app_setup = AppSetup(app_name, app_paths, injector.nginx,
                         injector.hardware, injector.info, injector.device,
                         injector.user_platform_config, injector.systemctl)
    return app_setup
Esempio n. 2
0
def port_add():
    port = request.form['port']
    protocol = request.form['protocol']
    mapping = get_injector().device.add_port(port, protocol)
    if mapping:
        return jsonify(success=True, message='', data=mapping.external_port), 200
    else:
        return jsonify(success=False, message='Not adding external port'), 200
Esempio n. 3
0
def redirect_if_not_activated(f):
    platform_user_config = get_injector().user_platform_config
    def new_func(*args, **kwargs):
        resp = make_response(f(*args, **kwargs))
        if platform_user_config.get_domain_update_token() is None:
            return redirect('{0}://{1}:81'.format(request.scheme, request.host))
        else:
            return resp
    return update_wrapper(new_func, f)
Esempio n. 4
0
def _is_activated():
    log = get_logger('activated_check')
    platform_user_config = get_injector().user_platform_config
    activated = False
    try:
        activated = platform_user_config.is_activated()
    except Exception as e:
        log.error('unable to verify activation status, assume it is not activated, {0}'.format(str(e)))

    return activated
Esempio n. 5
0
def redirect_if_not_activated(f):
    platform_user_config = get_injector().user_platform_config

    def new_func(*args, **kwargs):
        resp = make_response(f(*args, **kwargs))
        if not platform_user_config.is_activated():
            return redirect('http://{0}:81'.format(request.host))
        else:
            return resp

    return update_wrapper(new_func, f)
Esempio n. 6
0
def redirect_if_not_activated(f):
    platform_user_config = get_injector().user_platform_config

    def new_func(*args, **kwargs):
        resp = make_response(f(*args, **kwargs))
        if platform_user_config.get_domain_update_token() is None:
            return redirect('{0}://{1}:81'.format(request.scheme,
                                                  request.host))
        else:
            return resp

    return update_wrapper(new_func, f)
Esempio n. 7
0
    def install(self):
        linux.fix_locale()

        apps_root = '/snap'
        data_root = '/var/snap'
        install_dir = os.environ['SNAP']
        data_dir = os.environ['SNAP_COMMON']
        app_data_prefix = 'common/'

        templates_path = join(install_dir, 'config.templates')
        config_dir = join(data_dir, 'config')

        variables = {
            'apps_root': apps_root,
            'data_root': data_root,
            'configs_root': data_root,
            'config_root': data_dir,
            'config_dir': config_dir,
            'app_dir': install_dir,
            'app_data': data_dir,
            'app_data_prefix': app_data_prefix
        }
        gen.generate_files(templates_path, config_dir, variables)

        data_dirs = [
            join(data_dir, 'webapps'),
            join(data_dir, 'log'),
            join(data_dir, 'nginx'),
            join(data_dir, 'openldap'),
            join(data_dir, 'openldap-data'),
            join(data_dir, 'certbot'),
            join(data_dir, 'certbot', 'www')
        ]

        for data_dir in data_dirs:
            fs.makepath(data_dir)

        injector = get_injector()

        hardware = injector.hardware
        hardware.init_disk()

        injector.tls.init_certificate()

        injector.platform_cron.remove()
        injector.platform_cron.create()

        ldap_auth = injector.ldap_auth
        ldap_auth.init()

        nginx = injector.nginx
        nginx.init_config()
Esempio n. 8
0
    def start(self):
        injector = get_injector()

        systemctl = injector.systemctl
        systemctl.add_service(APP_NAME, 'platform.cpu-frequency')
        systemctl.add_service(APP_NAME, 'platform.ntpdate')
        systemctl.add_service(APP_NAME, 'platform.uwsgi-api')
        systemctl.add_service(APP_NAME, 'platform.uwsgi-internal')
        systemctl.add_service(APP_NAME, 'platform.uwsgi-public')
        systemctl.add_service(APP_NAME, 'platform.nginx-api')
        systemctl.add_service(APP_NAME, 'platform.nginx-internal')
        systemctl.add_service(APP_NAME, 'platform.nginx-public')
        systemctl.add_service(APP_NAME, 'platform.openldap')
Esempio n. 9
0
def redirect_if_activated(f):
    platform_user_config = get_injector().user_platform_config
    log = get_logger('redirect_if_activated')

    def new_func(*args, **kwargs):
        try:
            if platform_user_config.is_activated():
                return redirect('/')
        except Exception, e:
            log.error(
                'unable to verify activation status, assume it is not activated, {0}'
                .format(e.message))

        return make_response(f(*args, **kwargs))
Esempio n. 10
0
    def remove(self):
        injector = get_injector()
        systemctl = injector.systemctl

        systemctl.remove_service('platform.openldap')
        systemctl.remove_service('platform.nginx-public')
        systemctl.remove_service('platform.nginx-internal')
        systemctl.remove_service('platform.nginx-api')
        systemctl.remove_service('platform.uwsgi-public')
        systemctl.remove_service('platform.uwsgi-internal')
        systemctl.remove_service('platform.uwsgi-api')
        systemctl.remove_service('platform.ntpdate')
        systemctl.remove_service('platform.cpu-frequency')

        injector.platform_cron.remove()
Esempio n. 11
0
    def init_services(self):

        injector = get_injector()

        hardware = injector.hardware
        hardware.init_disk()

        injector.tls.init_certificate()

        injector.platform_cron.remove()
        injector.platform_cron.create()

        ldap_auth = injector.ldap_auth
        ldap_auth.init()

        nginx = injector.nginx
        nginx.init_config()
Esempio n. 12
0
def user_email():
    email = get_injector().user_platform_config.get_user_email()
    return jsonify(success=True, message='', data=email), 200
Esempio n. 13
0
def get_app_paths(app_name, config_path=None):
    config = get_injector().platform_config
    return AppPaths(app_name, config)
Esempio n. 14
0
def device_domain_name():
    device_domain_name = get_injector().device_info.domain()
    return jsonify(success=True, message='', data=device_domain_name), 200
Esempio n. 15
0
def port_remove():
    port = request.form['port']
    protocol = request.form['protocol']
    get_injector().device.remove_port(port, protocol)
    return jsonify(success=True, message='', data='OK'), 200
Esempio n. 16
0
 def pre_refresh(self):
     injector = get_injector()
     injector.platform_cron.remove()
Esempio n. 17
0
import convertible
from flask import jsonify, send_from_directory, request, redirect, send_file, Flask
from flask.ext.login import login_user, logout_user, current_user, login_required
from flask_login import LoginManager

from syncloud_platform.auth.ldapauth import authenticate
from syncloud_platform.injector import get_injector
from syncloud_platform.rest.props import html_prefix, rest_prefix
from syncloud_platform.rest.flask_decorators import nocache, redirect_if_not_activated
from syncloud_platform.rest.model.flask_user import FlaskUser
from syncloud_platform.rest.model.user import User
from syncloud_platform.gaplib import linux

from syncloud_platform.rest.service_exception import ServiceException

injector = get_injector(environ['CONFIG_DIR'])
public = injector.public
device = injector.device

app = Flask(__name__)
app.config['SECRET_KEY'] = public.platform_config.get_web_secret_key()
login_manager = LoginManager()
login_manager.init_app(app)


@login_manager.unauthorized_handler
def _callback():
    if request.is_xhr:
        return 'Unauthorised', 401
    else:
        return redirect(html_prefix + '/login.html')
Esempio n. 18
0
def get_app_setup(app_name):
    app_paths = get_app_paths(app_name)
    injector = get_injector()
    app_setup = AppSetup(app_name, app_paths, injector.nginx,
                         injector.hardware, injector.info, injector.device)
    return app_setup
Esempio n. 19
0
}
gen.generate_files(templates_path, config_dir, variables)

data_dirs = [
    join(app_data, 'webapps'),
    join(app_data, 'log'),
    join(app_data, 'nginx'),
    join(app_data, 'openldap'),
    join(app_data, 'openldap-data'),
    join(app_data, 'certbot')
]

for data_dir in data_dirs:
    fs.makepath(data_dir)

injector = get_injector(config_dir=config_dir)

hardware = injector.hardware
hardware.init_disk()

injector.tls.init_certificate()

injector.platform_cron.remove()
injector.platform_cron.create()

udev = injector.udev
udev.remove()
udev.add()

ldap_auth = injector.ldap_auth
ldap_auth.init()
Esempio n. 20
0
def service_restart():
    name = request.form['name']
    get_injector().systemctl.restart_service(name)
    return jsonify(success=True, message='', data='OK'), 200
Esempio n. 21
0
def config_set_dkim_key():
    dkim_key = request.form['dkim_key']
    get_injector().user_platform_config.set_dkim_key(dkim_key)
    return jsonify(success=True, message='dkim_key set', data='OK'), 200
Esempio n. 22
0
def get_app_setup(app_name):
    return get_injector().get_app_setup(app_name)
Esempio n. 23
0
import requests
from flask import jsonify, request, redirect, Flask, Response
from flask_login import LoginManager, login_user, logout_user, current_user, login_required

from syncloud_platform.auth.ldapauth import authenticate
from syncloud_platform.injector import get_injector
from syncloud_platform.rest.flask_decorators import nocache, redirect_if_not_activated, redirect_if_activated
from syncloud_platform.rest.model.flask_user import FlaskUser
from syncloud_platform.rest.model.user import User
from syncloud_platform.gaplib import linux
from syncloud_platform.rest.backend_proxy import backend_request
from syncloud_platform.rest.service_exception import ServiceException
from syncloud_platform.rest.internal_validator import InternalValidator

injector = get_injector()
public = injector.public
internal = injector.internal
device = injector.device

app = Flask(__name__)
app.config['SECRET_KEY'] = public.user_platform_config.get_web_secret_key()
login_manager = LoginManager()
login_manager.init_app(app)


@login_manager.unauthorized_handler
def _callback():
    if request.is_xhr:
        return 'Unauthorised', 401
    else:
Esempio n. 24
0
 def configure(self):
     injector = get_injector()
     ldap_auth = injector.ldap_auth
Esempio n. 25
0
from syncloud_platform.injector import get_injector
import argparse
from syncloud_app import main


def create_args_parser():
    parser = argparse.ArgumentParser(description='Syncloud insider maps port on router and creates DNS records')
    parser.add_argument('--debug', action='store_true')

    subparsers = parser.add_subparsers(help='available commands', dest='action')
    subparsers.add_parser('sync_all', help="sync port mappings and dns records")
    return parser


if __name__ == '__main__':
    parser = create_args_parser()
    args = parser.parse_args()

    device = get_injector(debug=args.debug).device

    main.execute(device, args)
Esempio n. 26
0
def config_get_dkim_key():
    dkim_key = get_injector().user_platform_config.get_dkim_key()
    return jsonify(success=True, message='dkim_key', data=dkim_key), 200
Esempio n. 27
0
def get_app_setup(app_name):
    app_paths = get_app_paths(app_name)
    injector = get_injector()
    app_setup = AppSetup(app_name, app_paths, injector.nginx, injector.hardware, injector.info, injector.device)
    return app_setup
Esempio n. 28
0
#!/opt/app/platform/python/bin/python 
 
from syncloud_platform.injector import get_injector
 
injector = get_injector()
hardware = injector.hardware
hardware.check_external_disk()
Esempio n. 29
0
def activation_status():
    try:
        return jsonify(
            activated=get_injector().user_platform_config.is_activated()), 200
    except Exception, e:
        return jsonify(activated=False), 200
Esempio n. 30
0
def get_app_paths(app_name):
    return get_injector().get_app_paths(app_name)