def METHOD_NAME(self, arg):
    args = ["eval_right"] + self._split_to_args(arg)
    if len(args) < 4:
        self.write_string(
            "Usage: {} site_org right_name user_name:org:role [submitter_name:org:role]".format(args[0])
        )
        return
    site_org = args[1]
    right_name = args[2]
    user_spec = args[3]
    submitter_spec = None
    if len(args) > 4:
        submitter_spec = args[4]
    parsed = self._parse_person(user_spec)
    if isinstance(parsed, str):
        # error
        return self.write_error("bad user spec: " + parsed)
    user = parsed
    submitter = None
    if submitter_spec:
        parsed = self._parse_person(submitter_spec)
        if isinstance(parsed, str):
            # error
            return self.write_error("bad submitter spec: " + parsed)
        submitter = parsed
    result, err = self.policy.evaluate(
        site_org=site_org, ctx=AuthzContext(right=right_name, user=user, submitter=submitter)
    )
    if err:
        self.write_error(err)
    elif result is None:
        self.write_string("undetermined")
    else:
        self.write_string(str(result))