コード例 #1
0
def checkAK(apiKey, signature, timestamp, path, query):
    minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
    apiMode = minfo.getAPIMode()
    if not apiKey:
        if apiMode in (API_MODE_ONLYKEY, API_MODE_ONLYKEY_SIGNED, API_MODE_ALL_SIGNED):
            raise HTTPAPIError('API key is missing', apache.HTTP_FORBIDDEN)
        return None, True
    akh = APIKeyHolder()
    if not akh.hasKey(apiKey):
        raise HTTPAPIError('Invalid API key', apache.HTTP_FORBIDDEN)
    ak = akh.getById(apiKey)
    if ak.isBlocked():
        raise HTTPAPIError('API key is blocked', apache.HTTP_FORBIDDEN)
    # Signature validation
    onlyPublic = False
    if signature:
        validateSignature(ak, minfo, signature, timestamp, path, query)
    elif apiMode in (API_MODE_SIGNED, API_MODE_ALL_SIGNED):
        raise HTTPAPIError('Signature missing', apache.HTTP_FORBIDDEN)
    elif apiMode == API_MODE_ONLYKEY_SIGNED:
        onlyPublic = True
    return ak, onlyPublic
コード例 #2
0
 def getVars(self):
     vars = WTemplated.getVars(self)
     akh = APIKeyHolder()
     vars['apiKeys'] = sorted(akh.getList(),
                              key=lambda ak: ak.getUser().getFullName())
     return vars
コード例 #3
0
ファイル: api.py プロジェクト: bubbas/indico
 def getVars(self):
     vars = WTemplated.getVars(self)
     akh = APIKeyHolder()
     vars['apiKeys'] = sorted(akh.getList(), key=lambda ak: ak.getUser().getFullName())
     return vars