Esempio n. 1
0
    def can_cross_all_users_whitelist_and_blacklist(self):
        bridge_name = "balrog"
        filter_type = "all-users"

        bridge = GandalfBridge.get_or_insert(bridge_name)

        GandalfFilter(bridge=bridge, filter_type=filter_type, whitelist=True).put()
        GandalfFilter(bridge=bridge, filter_type=filter_type, whitelist=False).put()

        return gandalf(bridge_name)
Esempio n. 2
0
    def get(self):

        if not os.environ["SERVER_SOFTWARE"].startswith('Development'):
            return

        # Delete all bridges and filters so that we have a fresh testing environment
        for bridge in GandalfBridge.all():
            bridge.delete()

        for filter in GandalfFilter.all():
            filter.delete()

        step = self.request.get("step")
        v = None

        if step == "creating_bridge":
            v = self.creating_bridge()
        elif step == "can_cross_empty_bridge":
            v = self.can_cross_empty_bridge()
        elif step == "can_cross_all_users_whitelist":
            v = self.can_cross_all_users_whitelist()
        elif step == "can_cross_all_users_blacklist":
            v = self.can_cross_all_users_blacklist()
        elif step == "can_cross_all_users_whitelist_and_blacklist":
            v = self.can_cross_all_users_whitelist_and_blacklist()
        elif step == "can_cross_all_users_inside_percentage":
            v = self.can_cross_all_users_inside_percentage()
        elif step == "can_cross_all_users_outside_percentage":
            v = self.can_cross_all_users_outside_percentage()

        self.response.out.write(json.dumps(v))
Esempio n. 3
0
    def get(self):

        if not os.environ["SERVER_SOFTWARE"].startswith('Development'):
            return

        # Delete all bridges and filters so that we have a fresh testing environment
        for bridge in GandalfBridge.all():
            bridge.delete()
    
        for filter in GandalfFilter.all():
            filter.delete()

        step = self.request.get("step")
        v = None

        if step == "creating_bridge":
            v = self.creating_bridge()
        elif step == "can_cross_empty_bridge":
            v = self.can_cross_empty_bridge()
        elif step == "can_cross_all_users_whitelist":
            v = self.can_cross_all_users_whitelist()
        elif step == "can_cross_all_users_blacklist":
            v = self.can_cross_all_users_blacklist()
        elif step == "can_cross_all_users_whitelist_and_blacklist":
            v = self.can_cross_all_users_whitelist_and_blacklist()
        elif step == "can_cross_all_users_inside_percentage":
            v = self.can_cross_all_users_inside_percentage()
        elif step == "can_cross_all_users_outside_percentage":
            v = self.can_cross_all_users_outside_percentage()

        self.response.out.write(json.dumps(v))
Esempio n. 4
0
    def can_cross_all_users_outside_percentage(self):
        bridge_name = "balrog"
        filter_type = "all-users"

        bridge = GandalfBridge.get_or_insert(bridge_name)

        filter = GandalfFilter(bridge=bridge, filter_type=filter_type, whitelist=True)
        filter.put()

        identity_percentage = BridgeFilter._identity_percentage(filter.key())

        filter.percentage = identity_percentage
        filter.put()

        return gandalf(bridge_name)
Esempio n. 5
0
    def can_cross_all_users_outside_percentage(self):
        bridge_name = "balrog"
        filter_type = "all-users"

        bridge = GandalfBridge.get_or_insert(bridge_name)

        filter = GandalfFilter(bridge=bridge, filter_type=filter_type, whitelist=True)
        filter.put()

        identity_percentage = BridgeFilter._identity_percentage(filter.key())

        filter.percentage = identity_percentage
        filter.put()

        return gandalf(bridge_name)
Esempio n. 6
0
    def post(self):

        if not can_control_gandalf():
            return

        action = self.request.get('action')

        if action == "new":

            filter_type = self.request.get('filter_type')
            bridge_name = self.request.get('bridge_name')
            whitelist = self.request.get('whitelist') == "1"

            if not filter_type:
                raise Exception("Must include 'filter_type' parameter")

            if not bridge_name:
                raise Exception("Must include 'bridge_name' parameter")

            bridge = GandalfBridge.get_by_key_name(bridge_name)

            if not bridge:
                raise Exception("Bridge '%s' does not exist" % bridge_name)

            context = BridgeFilter.find_subclass(filter_type).initial_context()

            filter = GandalfFilter(bridge=bridge,
                                   filter_type=filter_type,
                                   context=context,
                                   whitelist=whitelist)
            filter.put()

        else:

            filter_key = self.request.get('filter_key')

            if not filter_key:
                raise Exception("Must include 'filter_key' parameter")

            filter = GandalfFilter.get(filter_key)

            if action == "delete":

                filter.delete()

            elif action == "save":

                try:
                    percentage = int(self.request.get('percentage'))

                    if 0 <= percentage <= 100:
                        filter.percentage = percentage

                except ValueError:
                    pass

                for key in filter.context:
                    value = self.request.get(key)
                    if value is not None:
                        filter.context[key] = value

                filter.put()

        context = {
            "success": True,
        }

        self.response.headers["Content-Type"] = "application/json"
        self.response.out.write(jsonify(context))
Esempio n. 7
0
File: api.py Progetto: di445/server
    def post(self):

        if not can_control_gandalf():
            return

        action = self.request.get('action')

        if action == "new":

            filter_type = self.request.get('filter_type')
            bridge_name = self.request.get('bridge_name')
            whitelist = self.request.get('whitelist') == "1"

            if not filter_type:
                raise Exception("Must include 'filter_type' parameter")

            if not bridge_name:
                raise Exception("Must include 'bridge_name' parameter")

            bridge = GandalfBridge.get_by_key_name(bridge_name)

            if not bridge:
                raise Exception("Bridge '%s' does not exist" % bridge_name)

            context = BridgeFilter.find_subclass(filter_type).initial_context()

            filter = GandalfFilter(bridge=bridge, filter_type=filter_type, context=context, whitelist=whitelist)
            filter.put()

        else:

            filter_key = self.request.get('filter_key')

            if not filter_key:
                raise Exception("Must include 'filter_key' parameter")

            filter = GandalfFilter.get(filter_key)

            if action == "delete":

                filter.delete()

            elif action == "save":

                try:
                    percentage = int(self.request.get('percentage'))

                    if 0 <= percentage <= 100:
                        filter.percentage = percentage

                except ValueError:
                    pass

                for key in filter.context:
                    value = self.request.get(key)
                    if value is not None:
                        filter.context[key] = value

                filter.put()

        context = {
            "success": True,
        }

        self.response.headers["Content-Type"] = "application/json"
        self.response.out.write(jsonify(context))