Beispiel #1
0
    def patch(self, uuid=None, perimeter_id=None, user_id=None):
        """Create or update a action.

        :param uuid: uuid of the policy
        :param perimeter_id: must not be used here
        :param user_id: user ID who do the request
        :request body: {
            "name": "name of the action",
            "description": "description of the action"
        }
        :return: {
                "action_id": {
                    "name": "name of the action",
                    "description": "description of the action"
            }
        }
        :internal_api: set_action
        """
        try:
            data = PolicyManager.get_actions(user_id=user_id, policy_id=None)
            if 'name' in request.json:
                for data_id, data_value in data.items():
                    if data_value['name'] == request.json['name']:
                        perimeter_id = data_id
                        break
            data = PolicyManager.add_action(user_id=user_id,
                                            policy_id=uuid,
                                            perimeter_id=perimeter_id,
                                            value=request.json)
        except Exception as e:
            logger.error(e, exc_info=True)
            return {"result": False, "error": str(e)}, 500
        return {"actions": data}
Beispiel #2
0
    def get(self, uuid=None, perimeter_id=None, user_id=None):
        """Retrieve all actions or a specific one if perimeter_id
        is given for a given policy

        :param uuid: uuid of the policy
        :param perimeter_id: uuid of the action
        :param user_id: user ID who do the request
        :return: {
                "action_id": {
                    "name": "name of the action",
                    "description": "description of the action (optional)"
            }
        }
        :internal_api: get_actions
        """

        data = PolicyManager.get_actions(user_id=user_id,
                                         policy_id=uuid,
                                         perimeter_id=perimeter_id)

        return {"actions": data}
Beispiel #3
0
    def get(self, uuid=None, perimeter_id=None, user_id=None):
        """Retrieve all actions or a specific one if perimeter_id
        is given for a given policy

        :param uuid: uuid of the policy
        :param perimeter_id: uuid of the action
        :param user_id: user ID who do the request
        :return: {
                "action_id": {
                    "name": "name of the action",
                    "description": "description of the action"
            }
        }
        :internal_api: get_actions
        """
        try:
            data = PolicyManager.get_actions(user_id=user_id,
                                             policy_id=uuid,
                                             perimeter_id=perimeter_id)
        except Exception as e:
            logger.error(e, exc_info=True)
            return {"result": False, "error": str(e)}, 500
        return {"actions": data}
Beispiel #4
0
def get_actions(policy_id, perimeter_id=None):
    from python_moondb.core import PolicyManager
    return PolicyManager.get_actions("", policy_id, perimeter_id)