コード例 #1
0
def search(request):
        # Handle search requests
        
        query = request.GET['q']
        if not query or query == "":
                return HttpResonse(simplejson.encode(GetSiteList()))
        else:
                # FIXME: This isn't actually a real search function at the moment.
                return HttpResonse(simplejson.encode(GetSiteList()))
コード例 #2
0
ファイル: opflexService.py プロジェクト: sasw/opflex
    def identity_handler(self, conn, msg):
        mod = "%s:%s" % (self.__class__.__name__, sys._getframe().f_code.co_name)
        self.log.debug("%s:<--%s" % (mod, msg))

        pdb.set_trace()
        ip = self.get_lan_ip()
        keys = ['domain', 'name', 'my_role', 'id']
        response = {
            "result": {
                "name": ("controller:%s" % ip),
                "my_roles": ["controller"],
                "domain": "my_domeain",
                "id": "24df1d04-d5cb-41e1-8de5-61ed77c558df",
                "roles": [{"role": "controller", "connectivity_info": ("%s" % ip)},
                 {"role": "repository", "connectivity_info": ("%s" % ip)}]
                }
            }

        self.log.info("IDENTITY: %s" % msg)

        if (self.validate_keys(keys, msg['params'])):
            json_rsp = json.encode(response);
            self.log.debug("%s: json_rsp=%s", mod, json_rsp)
            conn.send(json_rsp)
        else:
            self.log.error("%s: JSON message validation error: expected keys=%s, actual=%s",
                           mod, keys, msg['params'].keys())

        
        self.log.debug("%s:<--" % (mod))
コード例 #3
0
def addsite(request):
        # Handle Add Site requests
        response = {'saved': False, 'error': "Not handled"}

        siteform = SiteForm(request.GET)
        
        if not request.user.is_authenticated():
                response["error"] = "You must be logged in to register sites."
                return HttpResponse(simplejson.encode(response))
                
        if siteform.is_valid():
                site = siteform.save(commit=False)
                site.manager = request.user
                site.save()
                response["saved"] = True
                return HttpResponse(simplejson.encode(response))
        else:
                response["error"] = "Must fill required fields."
                response["newtable"] = siteform.as_table()
                return HttpResponse(simplejson.encode(response))
コード例 #4
0
    def _obfuscate_event(self, event):
        """Obfuscate event by removing/stubbing user information."""

        # Create a string to use when logging errors, to provide some context.
        debug_str = self._get_log_string_for_event(event)

        # Remap the user information stored in the event, and collect for later searching.
        event_data = eventlog.get_event_data(event)
        user_info = self._remap_user_info_in_event(event, event_data)

        # Clean or remove values from context.
        if 'context' in event:
            # These aren't present in current events, but are generated historically by some implicit events.
            event['context'].pop('host', None)
            event['context'].pop('ip', None)
            # Not sure how to clean this, so removing.
            event['context'].pop('path', None)
            # Clean out some of the more obvious values in (mobile) client:
            if 'client' in event['context']:
                event['context']['client'].pop('device', None)
                event['context']['client'].pop('ip', None)

        # Do remaining cleanup on the entire event payload (assuming user-based remapping has been done).
        if event_data:
            # Remove possibly sensitive payload fields (or fields we don't know how to clean).
            for key in [
                    'certificate_id', 'certificate_url', 'source_url', 'fileName', 'GET', 'POST',
                    'requesting_student_id', 'report_url', 'url', 'url_name']:
                event_data.pop(key, None)

            for key in ['answer', 'saved_response']:
                if key in event_data and 'file_upload_key' in event_data[key]:
                    event_data[key].pop('file_upload_key')

            # Clean up remaining event payload recursively.
            updated_event_data = self.obfuscator.obfuscate_structure(event_data, u"event", user_info)
            if updated_event_data is not None:
                if self.obfuscator.is_logging_enabled():
                    log.info(u"Obfuscated payload: %s", debug_str)
                event_data = updated_event_data

            # Re-encode payload as a json string if it originally was one.
            # (This test works because we throw away string values that didn't parse as JSON.)
            if isinstance(event.get('event'), basestring):
                event['event'] = simplejson.encode(event_data)
            else:
                event['event'] = event_data

        # Delete base properties other than username.
        for key in ['host', 'ip', 'page', 'referer']:
            event.pop(key, None)

        return event
コード例 #5
0
def setsite(request):
        if not request.has_key('siteid'):
                return HttpResponse(simplejson.encode({'error': 'Must supply site ID'}))
        
        siteid = request.GET['siteid']
        vars = {}
        for a in ('name', 'locname', 'latitude', 'longitude', 'website', 'access'):
                if request.GET.has_key(a):
                        vars[a] = request.GET[a]
                else:
                        vars[a] = None
                        
        SetSite(siteid, **vars)
コード例 #6
0
 def request(self, method, params=None):
     """
     Creates a new request using the passed method and parameters.
     """
     req_id = generate_random_uuid().hex
     req = {
         'jsonrpc': self.rpc_version,
         'method': method,
         'id': req_id,
     }
     if params:
         req['params'] = params
     enc_req = encode(req)
     self._c.send(enc_req)
     enc_res = self._c.recv(self.buffer_size)
     res = decode(enc_res)
     if res.get('id') != req_id:
         raise RuntimeError("Received unexpected response: %s" \
                            % (res, ))
     return res.get('result')
コード例 #7
0
    def filter_row(self, row):
        user_id = row[3]
        user_info = {'user_id': [user_id, ]}
        try:
            user_id = int(user_id)
            entry = self.user_by_id[user_id]
            if 'username' in entry:
                user_info['username'] = [entry['username'], ]
            if 'name' in entry:
                user_info['name'] = [entry['name'], ]
        except KeyError:
            log.error("Unable to find CWSM user_id: %r in the user_by_id map of size %s", user_id, len(self.user_by_id))

        row[3] = self.remap_id(user_id)  # student_id

        # Courseware_studentmodule is not processed with the other SQL tables, so it
        # is not escaped in the same way.  In particular, we will not decode and encode it,
        # but merely transform double backslashes.
        state_str = row[4].replace('\\\\', '\\')
        try:
            state_dict = simplejson.decode(state_str, all_unicode=True)
            # Traverse the dictionary, looking for entries that need to be scrubbed.
            updated_state_dict = self.obfuscator.obfuscate_structure(state_dict, u"state", user_info)
        except Exception:   # pylint:  disable=broad-except
            log.exception(u"Unable to parse state as JSON for record %s: type = %s, state = %r",
                          row[0], type(state_str), state_str)
            updated_state_dict = {}

        if updated_state_dict is not None:
            # Can't reset values, so update original fields.
            updated_state = simplejson.encode(updated_state_dict).replace('\\', '\\\\')
            row[4] = updated_state
            if self.obfuscator.is_logging_enabled():
                log.info(u"Obfuscated state for user_id '%s' module_id '%s'", user_id, row[2])

        return row
コード例 #8
0
def show_json(json):
    colorful_json = highlight(json.encode('UTF-8'), lexers.JsonLexer(),
                              formatters.TerminalFormatter())
    print(colorful_json)
コード例 #9
0
ファイル: main.py プロジェクト: jamur2/Subscribeme
 def post(self):
     client = subscribeme.api.oauth.OAuthClient('twitter', self)
     self.response.out.write(simplejson.encode(
         {'auth_cookie': client.get_cookie()}))
コード例 #10
0
def sitedetails(request):
        # Return very detailed information about a site.
        if not request.GET.has_key('siteid'):
                return HttpResponse(simplejson.encode({'error': 'Must supply ID'}))
        
        return HttpResponse(simplejson.encode(GetSiteDetails(request.GET['siteid'])))
コード例 #11
0
def getsite(request):
        if not request.GET['siteid']:
                return HttpResponse(simplejson.encode({'error': 'Must supply site ID'}))
        return HttpResponse(simplejson.encode(GetSiteDetails(request.GET['siteid'])))
コード例 #12
0
def encode_json(obj):
    """Wrapper to re-encode JSON string in an implementation-independent way."""
    # TODO: Verify correctness of simplejson
    return simplejson.encode(obj)
コード例 #13
0
 def save(self, _path=None):
     fd = open(_path if _path else self._local_file, 'w')
     fd.write(encode(self._local, indent="    "))