def getConnection(request):
    
    conn = None
    if request.session.get('username', None):
        logger.debug('attempting to retrieve emdb connection with username:  %s' % request.session.get('username', None))
        conn = getBlitzConnection(request, useragent="OMERO.webemdb")  
        if not request.session.has_key('processors'):
            request.session['processors'] = {}
        if conn != None:
            logger.debug('emdb connection:  %s' % conn._sessionUuid)
    if conn == None:
        # session has timed out. Need to logout and log in again. 
        try:
            _session_logout(request, request.session['server'])
        except:
            import traceback
            logger.debug("Failed to log out %s" % traceback.format_exc())
        server_id = request.REQUEST.get('server',None) 
        if server_id is not None:
            blitz = settings.SERVER_LIST.get(pk=int(server_id))
        else:
            blitz = settings.SERVER_LIST.get(pk=1)
        logger.debug('attempting to connect emdb with blitz:  %s' % blitz)
        request.session['server'] = blitz.id
        request.session['host'] = blitz.host
        request.session['port'] = blitz.port
        request.session['password'] = "******"
        request.session['username'] = "******"
        request.session['processors'] = {}
        request.session.modified = True
        conn = getBlitzConnection (request, useragent="OMERO.webemdb")
        
        logger.debug('emdb connection: %s server %s' % (conn._sessionUuid, blitz.host))
    return conn
def groups_members(request):
    """
    List the users of the current group - if permitted
    """
    conn = getBlitzConnection (request, useragent="OMERO.webmobile")
    if conn is None or not conn.isConnected():
        return HttpResponseRedirect(reverse('webmobile_login'))
    
    groupId = conn.getEventContext().groupId
    showMembers = True
    if str(conn.getEventContext().groupPermissions) == "rw----":
        showMembers = False
    members = conn.containedExperimenters(groupId)
    
    groups = []
    perms = {"rw----":'private', "rwr---":'read-only', "rwrw--":'collaborative'}
    for g in conn.getGroupsMemberOf():
        try:
            p = perms[str(g.getDetails().permissions)]
        except KeyError:
            p = ""
        groups.append({
            "id": g.id,
            "name": g.getName(),
            "permissions": p
        })
        
    return render_to_response('webmobile/groups_members.html', {'client': conn, 'showMembers': showMembers, 
        'members': members, 'groups': groups})
Beispiel #3
0
def image_viewer(request, iid, **kwargs):
    """ This view is responsible for showing pixel data as images """

    conn = getBlitzConnection(request, useragent="OMERO.webemdb")
    if conn is None or not conn.isConnected():
        return HttpResponseRedirect(reverse("webemdb_login"))

    kwargs["viewport_server"] = "/webclient"

    return webgateway_views.full_viewer(request, iid, _conn=conn, **kwargs)
def viewer(request, imageId):
    conn = getBlitzConnection (request, useragent="OMERO.webmobile")
    if conn is None or not conn.isConnected():
        return HttpResponseRedirect(reverse('webmobile_login'))
        
    image = conn.getObject("Image", imageId)
    w = image.getSizeX()
    h = image.getSizeY()
    
    return render_to_response('webmobile/viewers/viewer_iphone.html', {'image':image})
Beispiel #5
0
def tinyurl(request, base_62):
    base_62 = base62.to_decimal(base_62)
    link = get_object_or_404(Link, pk=base_62)
    REQUEST = {'url': link.url,
               'server': 1,
               'username': settings.PUBLIC_USER,
               'password': settings.PUBLIC_PASSWORD}
    REQUEST = MergeDict(REQUEST, request.REQUEST)
    dummy_request = DummyHttpRequest(REQUEST, request.session, request.method)
    to_return = webclient_login(dummy_request)
    conn = getBlitzConnection(dummy_request, useragent="OMERO.web")
    conn.changeActiveGroup(link.group)
    return to_return
Beispiel #6
0
def getConnection(request):

    conn = None
    if request.session.get("username", None):
        logger.debug(
            "attempting to retrieve emdb connection with username:  %s" % request.session.get("username", None)
        )
        conn = getBlitzConnection(request, useragent="OMERO.webemdb")
        if not request.session.has_key("processors"):
            request.session["processors"] = {}
        if conn != None:
            logger.debug("emdb connection:  %s" % conn._sessionUuid)
    if conn == None:
        # session has timed out. Need to logout and log in again.
        try:
            _session_logout(request, request.session["server"])
        except:
            import traceback

            logger.debug("Failed to log out %s" % traceback.format_exc())
        server_id = request.REQUEST.get("server", None)
        if server_id is not None:
            blitz = Server.get(pk=int(server_id))
        else:
            blitz = Server.get(pk=1)
        logger.debug("attempting to connect emdb with blitz:  %s" % blitz)
        request.session["server"] = blitz.id
        request.session["host"] = blitz.host
        request.session["port"] = blitz.port
        request.session["password"] = "******"
        request.session["username"] = "******"
        request.session["processors"] = {}
        request.session.modified = True
        conn = getBlitzConnection(request, useragent="OMERO.webemdb")

        logger.debug("emdb connection: %s server %s" % (conn._sessionUuid, blitz.host))
    return conn
 def wrapped (request, *args, **kwargs):
     #this check the connection exist, if not it will redirect to login page
     url = request.REQUEST.get('url')
     if url is None or len(url) == 0:
         if request.META.get('QUERY_STRING'):
             url = '%s?%s' % (request.META.get('PATH_INFO'), request.META.get('QUERY_STRING'))
         else:
             url = '%s' % (request.META.get('PATH_INFO'))
     
     conn = None
     loginUrl = reverse("webmobile_login")
     try:
         conn = getBlitzConnection(request, useragent="OMERO.webmobile")
     except Exception, x:
         logger.error(traceback.format_exc())
         return HttpResponseRedirect("%s?error=%s&url=%s" % (loginUrl, str(x), url))
def switch_group(request, groupId):
    """
    Switch to the specified group, then redirect to index. 
    """
    conn = getBlitzConnection (request, useragent="OMERO.webmobile")
    if conn is None or not conn.isConnected():
        return HttpResponseRedirect(reverse('webmobile_login'))
    
    from webclient.views import change_active_group
    try:
        #change_active_group(request, kwargs={'conn': conn})
        conn.changeActiveGroup(long(groupId))   # works except after viewing thumbnails in private group!
    except:
        logger.error(traceback.format_exc())
        return HttpResponse(traceback.format_exc())
        
    return HttpResponseRedirect(reverse('webmobile_index'))
def login (request):
    if request.method == 'POST' and request.REQUEST['server']:
        blitz = settings.SERVER_LIST.get(pk=request.REQUEST['server'])
        request.session['server'] = blitz.id
        request.session['host'] = blitz.host
        request.session['port'] = blitz.port
    
    conn = getBlitzConnection (request, useragent="OMERO.webmobile")
    logger.debug(conn)
    
    url = request.REQUEST.get("url")
    
    if conn is None:
        return render_to_response('webmobile/login.html', {'gw':settings.SERVER_LIST, 'url': url})
        
    if url is not None and len(url) != 0:
        return HttpResponseRedirect(url)
    else:
        return HttpResponseRedirect(reverse('webmobile_index'))
Beispiel #10
0
def login (request):
    """
    Attempts to get a connection to the server by calling L{omeroweb.webgateway.views.getBlitzConnection} with the 'request'
    object. If a connection is created, the user is directed to the 'webtest_index' page. 
    If a connection is not created, this method returns a login page.
    
    @param request:     The django http request
    @return:            The http response - webtest_index or login page
    """
    if request.method == 'POST' and request.REQUEST['server']:
        blitz = settings.SERVER_LIST.get(pk=request.REQUEST['server'])
        request.session['server'] = blitz.id
        request.session['host'] = blitz.host
        request.session['port'] = blitz.port
    
    conn = getBlitzConnection (request, useragent="OMERO.webtest")
    logger.debug(conn)
    if conn is not None:
        return HttpResponseRedirect(reverse('webtest_index'))
    return render_to_response('webtest/login.html', {'gw':settings.SERVER_LIST})
Beispiel #11
0
def login(request):
    request.session.modified = True
    
    if request.method == 'POST' and request.REQUEST.get('server'):        
        blitz = settings.SERVER_LIST.get(pk=request.REQUEST.get('server')) 
        request.session['server'] = blitz.id
        request.session['host'] = blitz.host
        request.session['port'] = blitz.port
        request.session['username'] = smart_str(request.REQUEST.get('username'))
        request.session['password'] = smart_str(request.REQUEST.get('password'))
        request.session['ssl'] = (True, False)[request.REQUEST.get('ssl') is None]
        
    error = request.REQUEST.get('error')
    
    conn = None
    # TODO: version check should be done on the low level, see #5983
    if _checkVersion(request.session.get('host'), request.session.get('port')):
        try:
            conn = getBlitzConnection(request, useragent="OMERO.webadmin")
        except Exception, x:
            logger.error(traceback.format_exc())
            error = str(x)