Exemple #1
0
def profile_check(request):
    "If nuvius_id within GET parameters of the request, store the ID within Django session"
    nuvius_id = request.GET.get('nuvius_id', None)
    if nuvius_id:
        nuvius_key = request.GET.get('profile_key', None)
        if nuvius_key:
            con = Connector(profile_id=nuvius_id, profile_key=nuvius_key)
            profile = con.get_profile()
            try:
                if profile['key_valid']:
                    request.session['nuvius_id'] = nuvius_id
                    request.session['nuvius_profile_key'] = nuvius_key
            except KeyError:
                pass
        else:
            request.session['nuvius_id'] = nuvius_id

    response = HttpResponse(json.dumps(profile), mimetype='application/json')

    # Hardtree code
    if 'applications' in profile:
        del profile['applications']
    if 'bindings' in profile:
        del profile['bindings']
    user = request.user.get_profile()
    conf = ModuleSetting.set('nuvius_profile', '', user=user)
    conf.dumps(profile).save()
    # End of Hardtree code

    return response
Exemple #2
0
def profile_check(request):
    "If nuvius_id within GET parameters of the request, store the ID within Django session"
    nuvius_id = request.GET.get('nuvius_id', None)
    if nuvius_id:
        nuvius_key = request.GET.get('profile_key', None)
        if nuvius_key:
            con = Connector(profile_id=nuvius_id, profile_key=nuvius_key)
            profile = con.get_profile()
            try:
                if profile['key_valid']:
                    request.session['nuvius_id'] = nuvius_id
                    request.session['nuvius_profile_key'] = nuvius_key
            except KeyError:
                pass
        else:
            request.session['nuvius_id'] = nuvius_id
    
    response = HttpResponse(json.dumps(profile), mimetype='application/json')
    
    # Hardtree code
    if 'applications' in profile:
        del profile['applications']
    if 'bindings' in profile:
        del profile['bindings']
    user = request.user.get_profile()
    conf = ModuleSetting.set('nuvius_profile', '', user=user)
    conf.dumps(profile).save()
    # End of Hardtree code
    
    return response
Exemple #3
0
def integration_view(request, conf_id, response_format='html'):
    "Integration view resource page"

    user = request.user.get_profile()

    resconf = get_object_or_404(ModuleSetting, pk=conf_id)
    res = resconf.loads()

    conf = ModuleSetting.get('nuvius_profile', user=user)
    try:
        profile = conf[0].loads()
    except IndexError:
        profile = None

    resource = None
    if profile:
        connector = Connector(request, profile_id=profile['id'])
        resource = DataBlock(connector.get_app(res.resource_id))
        if request.POST and 'delete' in request.POST:
            resconf.delete()
            return HttpResponseRedirect(reverse('events_integration_index'))

    context = {'conf_id': conf_id, 'resource': resource}

    return render_to_response('events/integration_view',
                              context,
                              context_instance=RequestContext(request),
                              response_format=response_format)
Exemple #4
0
def sync(user=None):

    if user:
        conf = ModuleSetting.get('nuvius_profile', user=user, strict=True)
    else:
        conf = ModuleSetting.get('nuvius_profile')

    for item in conf:
        profile = item.loads()
        user = item.user
        if user:
            connector = Connector(profile_id=profile['id'])
            active_resources = ModuleSetting.get_for_module(
                'treeio.identities',
                'integration_resource',
                user=user,
                strict=True)
            for resource in active_resources:
                res = resource.loads()
                response = connector.get(
                    '/service/contact-book/contact/data.json/id' +
                    profile['id'] + '/app' + str(res.resource_id))
                data = DataBlock(response['data'])
                if data.result_name == 'success':
                    _do_sync(data, user)
Exemple #5
0
def integration_view(request, conf_id, response_format="html"):
    "Integration view resource page"

    user = request.user.get_profile()

    resconf = get_object_or_404(ModuleSetting, pk=conf_id)
    res = resconf.loads()

    conf = ModuleSetting.get("nuvius_profile", user=user)
    try:
        profile = conf[0].loads()
    except IndexError:
        profile = None

    resource = None
    if profile:
        connector = Connector(request, profile_id=profile["id"])
        resource = DataBlock(connector.get_app(res.resource_id))
        if request.POST and "delete" in request.POST:
            resconf.delete()
            return HttpResponseRedirect(reverse("identities_integration_index"))

    context = _get_default_context(request)
    context.update({"conf_id": conf_id, "resource": resource})

    return render_to_response(
        "identities/integration_view",
        context,
        context_instance=RequestContext(request),
        response_format=response_format,
    )
Exemple #6
0
def integration_view(request, conf_id, response_format='html'):
    "Integration view resource page"
    
    user = request.user.get_profile()
    
    resconf = get_object_or_404(ModuleSetting, pk=conf_id)
    res = resconf.loads()
    
    conf = ModuleSetting.get('nuvius_profile', user=user)
    try:
        profile = conf[0].loads()
    except IndexError:
        profile = None
    
    resource = None
    if profile:
        connector = Connector(request, profile_id=profile['id'])
        resource = DataBlock(connector.get_app(res.resource_id))
        if request.POST and 'delete' in request.POST:
            resconf.delete()
            return HttpResponseRedirect(reverse('events_integration_index'))
        
    context = {'conf_id': conf_id, 'resource': resource}
    
    return render_to_response('events/integration_view', context,
                              context_instance=RequestContext(request), response_format=response_format)
Exemple #7
0
def integration_add(request, resource_id, response_format='html'):
    "Integration add new resource page"

    user = request.user.get_profile()

    conf = ModuleSetting.get('nuvius_profile', user=user)
    try:
        profile = conf[0].loads()
    except IndexError:
        profile = None

    resource = None
    data = None
    if profile:
        connector = Connector(request, profile_id=profile['id'])
        resource = DataBlock(connector.get_app(resource_id))
        if request.POST and 'add' in request.POST:
            resource = IntegrationResource(profile['id'], resource_id,
                                           resource.application.name.raw,
                                           '9rw')
            conf = ModuleSetting.add_for_module('integration_resource',
                                                '',
                                                'treeio.identities',
                                                user=user)
            conf.dumps(resource).save()
            return HttpResponseRedirect(
                reverse('identities_integration_index'))
        else:
            data = connector.get('/service/contact-book/contact/data.json/id' +
                                 profile['id'] + '/app' + unicode(resource_id),
                                 no_cache=True)
            data = DataBlock(data)
            if data.result_name == 'success':
                pass
            elif data.result_name == 'redirect':
                next = request.build_absolute_uri(
                    reverse('identities_integration_add', args=[resource_id]))
                data = connector.get(
                    '/service/contact-book/contact/data.json/id' +
                    profile['id'] + '/app' + unicode(resource_id),
                    parameters={'next': next},
                    no_cache=True)
            data = DataBlock(data)

    context = _get_default_context(request)
    context.update({
        'resource_id': resource_id,
        'resource': resource,
        'data': data
    })

    return render_to_response('identities/integration_add',
                              context,
                              context_instance=RequestContext(request),
                              response_format=response_format)
Exemple #8
0
def integration_index(request, response_format='html'):
    "Integration index page"

    user = request.user.get_profile()
    active_resources = ModuleSetting.get_for_module('treeio.identities',
                                                    'integration_resource',
                                                    user=user,
                                                    strict=True)

    conf = ModuleSetting.get('nuvius_profile', user=user, strict=True)
    try:
        profile = conf[0].loads()
    except IndexError:
        profile = None

    available_resources = []
    response = None
    if profile:
        connector = Connector(request, profile_id=profile['id'])
        response = connector.collect('/service/contact-book/contact/',
                                     no_cache=True)

        resources = getattr(response.data.info, 'applications', [])
        for resource in resources:
            active = [int(res.loads().resource_id) for res in active_resources]
            if not resource.id.raw in active:
                available_resources.append(resource)

    message = None
    if 'message' in request.session:
        message = request.session.get('message')
        del request.session['message']

    context = _get_default_context(request)
    context.update({
        'active_resources': active_resources,
        'available_resources': available_resources,
        'message': message,
        'response': response,
        'profile': profile
    })

    return render_to_response('identities/integration_index',
                              context,
                              context_instance=RequestContext(request),
                              response_format=response_format)
Exemple #9
0
def integration_index(request, response_format="html"):
    "Integration index page"

    user = request.user.get_profile()
    active_resources = ModuleSetting.get_for_module("maker.identities", "integration_resource", user=user, strict=True)

    conf = ModuleSetting.get("nuvius_profile", user=user, strict=True)
    try:
        profile = conf[0].loads()
    except IndexError:
        profile = None

    available_resources = []
    response = None
    if profile:
        connector = Connector(request, profile_id=profile["id"])
        response = connector.collect("/service/contact-book/contact/", no_cache=True)

        resources = getattr(response.data.info, "applications", [])
        for resource in resources:
            active = [int(res.loads().resource_id) for res in active_resources]
            if not resource.id.raw in active:
                available_resources.append(resource)

    message = None
    if "message" in request.session:
        message = request.session.get("message")
        del request.session["message"]

    context = _get_default_context(request)
    context.update(
        {
            "active_resources": active_resources,
            "available_resources": available_resources,
            "message": message,
            "response": response,
            "profile": profile,
        }
    )

    return render_to_response(
        "identities/integration_index",
        context,
        context_instance=RequestContext(request),
        response_format=response_format,
    )
Exemple #10
0
def integration_add(request, resource_id, response_format="html"):
    "Integration add new resource page"

    user = request.user.get_profile()

    conf = ModuleSetting.get("nuvius_profile", user=user)
    try:
        profile = conf[0].loads()
    except IndexError:
        profile = None

    resource = None
    data = None
    if profile:
        connector = Connector(request, profile_id=profile["id"])
        resource = DataBlock(connector.get_app(resource_id))
        if request.POST and "add" in request.POST:
            resource = IntegrationResource(profile["id"], resource_id, resource.application.name.raw, "9rw")
            conf = ModuleSetting.add_for_module("integration_resource", "", "maker.identities", user=user)
            conf.dumps(resource).save()
            return HttpResponseRedirect(reverse("identities_integration_index"))
        else:
            data = connector.get(
                "/service/contact-book/contact/data.json/id" + profile["id"] + "/app" + unicode(resource_id),
                no_cache=True,
            )
            data = DataBlock(data)
            if data.result_name == "success":
                pass
            elif data.result_name == "redirect":
                next = request.build_absolute_uri(reverse("identities_integration_add", args=[resource_id]))
                data = connector.get(
                    "/service/contact-book/contact/data.json/id" + profile["id"] + "/app" + unicode(resource_id),
                    parameters={"next": next},
                    no_cache=True,
                )
            data = DataBlock(data)

    context = _get_default_context(request)
    context.update({"resource_id": resource_id, "resource": resource, "data": data})

    return render_to_response(
        "identities/integration_add", context, context_instance=RequestContext(request), response_format=response_format
    )
Exemple #11
0
def sync(user=None):
    
    if user:
        conf = ModuleSetting.get('nuvius_profile', user=user, strict=True)
    else:
        conf = ModuleSetting.get('nuvius_profile')
    
    for item in conf:
        profile = item.loads()
        user = item.user
        if user:
            connector = Connector(profile_id=profile['id'])
            active_resources = ModuleSetting.get_for_module('treeio.events', 'integration_resource', user=user, strict=True)
            for resource in active_resources:
                res = resource.loads()
                response = connector.get('/service/calendar/event/data.json/id' + profile['id'] + '/app' + str(res.resource_id))
                data = DataBlock(response['data'])
                if data.result_name == 'success':
                    _do_sync(data, user)
Exemple #12
0
def sync(user=None):

    if user:
        conf = ModuleSetting.get("nuvius_profile", user=user, strict=True)
    else:
        conf = ModuleSetting.get("nuvius_profile")

    for item in conf:
        profile = item.loads()
        user = item.user
        if user:
            connector = Connector(profile_id=profile["id"])
            active_resources = ModuleSetting.get_for_module(
                "treeio.identities", "integration_resource", user=user, strict=True
            )
            for resource in active_resources:
                res = resource.loads()
                response = connector.get(
                    "/service/contact-book/contact/data.json/id" + profile["id"] + "/app" + str(res.resource_id)
                )
                data = DataBlock(response["data"])
                if data.result_name == "success":
                    _do_sync(data, user)
Exemple #13
0
def integration_add(request, resource_id, response_format='html'):
    "Integration add new resource page"
    
    user = request.user.get_profile()
    
    conf = ModuleSetting.get('nuvius_profile', user=user)
    try:
        profile = conf[0].loads()
    except IndexError:
        profile = None
    
    resource = None
    data = None
    if profile:
        connector = Connector(request, profile_id=profile['id'])
        resource = DataBlock(connector.get_app(resource_id))
        if request.POST and 'add' in request.POST:
            resource = IntegrationResource(profile['id'], resource_id, resource.application.name.raw, '9rw')
            conf = ModuleSetting.add_for_module('integration_resource', '', 'maker.events', user=user)
            conf.dumps(resource).save()
            return HttpResponseRedirect(reverse('events_integration_index'))
        else:
            data = connector.get('/service/calendar/event/data.json/id' + profile['id'] + '/app' + unicode(resource_id),
                                 no_cache=True)
            data = DataBlock(data)
            if data.result_name == 'success':
                pass
            elif data.result_name == 'redirect':
                next = request.build_absolute_uri(reverse('events_integration_add', args=[resource_id]))
                data = connector.get('/service/calendar/event/data.json/id' + profile['id'] + '/app' + unicode(resource_id),
                                     parameters={'next': next},  no_cache=True)
            data = DataBlock(data)
        
    context = {'resource_id': resource_id, 'resource': resource, 'data': data}
    
    return render_to_response('events/integration_add', context,
                              context_instance=RequestContext(request), response_format=response_format)
Exemple #14
0
def integration_index(request, response_format='html'):
    "Integration index page"
    
    user = request.user.get_profile()
    active_resources = ModuleSetting.get_for_module('maker.events', 'integration_resource', user=user, strict=True)
    
    conf = ModuleSetting.get('nuvius_profile', user=user, strict=True)
    try:
        profile = conf[0].loads()
    except IndexError:
        profile = None
    
    available_resources = []
    response = None
    if profile:
        connector = Connector(request, profile_id=profile['id'])
        response = connector.collect('/service/calendar/event/', no_cache=True)
        
        resources = getattr(response.data.info, 'applications', [])
        for resource in resources:
            active = [int(res.loads().resource_id) for res in active_resources]
            if not resource.id.raw in active:
                available_resources.append(resource)
    
    message = None
    if 'message' in request.session:
        message = request.session.get('message')
        del request.session['message']
        
    context = {'active_resources': active_resources,
               'available_resources': available_resources,
               'message': message,
               'response': response,
               'profile': profile}
    
    return render_to_response('events/integration_index', context,
                              context_instance=RequestContext(request), response_format=response_format)