import sys
from sfa.util.faults import InsufficientRights, MissingCallerGID, MissingTrustedRoots, PermissionError, \
- BadRequestHash, ConnectionKeyGIDMismatch, SfaPermissionDenied, CredentialNotVerifiable, Forbidden
+ BadRequestHash, ConnectionKeyGIDMismatch, SfaPermissionDenied, CredentialNotVerifiable, Forbidden,
+ BadArgs
from sfa.util.sfalogging import logger
from sfa.util.config import Config
from sfa.util.xrn import Xrn, get_authority
if not hrns: hrns = [None]
for cred in creds:
for hrn in hrns:
+ # if an hrn is specified it cannot be None or empty string
+ if not hrn:
+ raise BadArgs("Invalid urn or hrn: %s" % hrn)
+
try:
self.check(cred, operation, hrn)
valid.append(cred)
faultString = "FORBIDDEN:"
SfaFault.__init__(self, GENICODE.FORBIDDEN, faultString, extra)
+class BadArgs(SfaFault):
+ def __init__(self, extra = None):
+ faultString = "BADARGS:"
+ SfaFault.__init__(self, GENICODE.BADARGS, faultString, extra)
+
+
class CredentialMismatch(SfaFault):
def __init__(self, extra = None):
faultString = "Credential mismatch"