Ignore:
Timestamp:
08/23/11 15:38:49 (21 months ago)
Author:
Jose Benito <jose.benito.gonzalez@…>
Branches:
master, hello-world-walkthrough, ipv6, v0.98-series, v0.98.2, v0.98.3, v0.98b2, v0.99, 051b2622c51afb171a1dedb46a0df4fbb0cbd02e, 0da0c1403bae8e51d8229f460181c71b9e6dda72
Children:
a4766f
Parents:
9c31e72
git-author:
Adrian Moennich <jerome.ernst.monnich@…> (05/11/11 11:07:33)
git-committer:
Jose Benito <jose.benito.gonzalez@…> (08/23/11 15:38:49)
Message:

[IMP] Improve accesskey/signature and cache system

  • cache stores fossil instead of serialized response
  • https enforcement can be enabled/disabled
  • api key/signature checking can now be configured
  • add request argument to make an authenticated request return only public data
File:
1 edited

Legend:

Unmodified
Added
Removed
  • indico/MaKaC/webinterface/pages/api.py

    r86b9d7 rf9e571  
    2020from operator import attrgetter 
    2121 
     22from MaKaC.common.info import HelperMaKaCInfo 
    2223from MaKaC.webinterface.pages.admins import WPPersonalArea, WPServicesCommon 
    2324from MaKaC.webinterface.wcomponents import WTemplated 
    2425from indico.web.http_api.auth import APIKeyHolder 
     26from indico.web.http_api import API_MODE_SIGNED, API_MODE_ONLYKEY_SIGNED, API_MODE_ALL_SIGNED 
    2527 
    2628 
     
    3436        self._tabAPI.setActive() 
    3537 
    36  
    3738class WUserAPI(WTemplated): 
    3839 
     
    4142 
    4243    def getVars(self): 
     44        minfo = HelperMaKaCInfo.getMaKaCInfoInstance() 
     45        apiMode = minfo.getAPIMode() 
    4346        vars = WTemplated.getVars(self) 
    4447        vars['avatar'] = self._avatar 
    4548        vars['apiKey'] = self._avatar.getAPIKey() 
    4649        vars['isAdmin'] = self._rh._getUser().isAdmin() 
     50        vars['signingEnabled'] = apiMode in (API_MODE_SIGNED, API_MODE_ONLYKEY_SIGNED, API_MODE_ALL_SIGNED) 
    4751        return vars 
    4852 
    4953 
    50 class WPAdminAPI(WPServicesCommon): 
     54class WPAdminAPIOptions(WPServicesCommon): 
    5155 
    5256    def _getTabContent(self, params): 
    53         c = WAdminAPI() 
     57        c = WAdminAPIOptions() 
    5458        return c.getHTML(params) 
    5559 
    5660    def _setActiveTab( self ): 
    5761        self._subTabHTTPAPI.setActive() 
     62        self._subTabHTTPAPI_Options.setActive() 
     63 
     64class WAdminAPIOptions(WTemplated): 
     65 
     66    def getVars(self): 
     67        minfo = HelperMaKaCInfo.getMaKaCInfoInstance() 
     68        vars = WTemplated.getVars(self) 
     69        vars['apiMode'] = minfo.getAPIMode() 
     70        vars['httpsRequired'] = minfo.isAPIHTTPSRequired() 
     71        return vars 
    5872 
    5973 
    60 class WAdminAPI(WTemplated): 
     74class WPAdminAPIKeys(WPServicesCommon): 
     75 
     76    def _getTabContent(self, params): 
     77        c = WAdminAPIKeys() 
     78        return c.getHTML(params) 
     79 
     80    def _setActiveTab( self ): 
     81        self._subTabHTTPAPI.setActive() 
     82        self._subTabHTTPAPI_Keys.setActive() 
     83 
     84class WAdminAPIKeys(WTemplated): 
    6185 
    6286    def getVars(self): 
Note: See TracChangeset for help on using the changeset viewer.