| 124 | | # TODO: support custom storage types (allow users to pass |
|---|
| 125 | | # their own class through another config option) |
|---|
| 126 | | sess.sessionStorage = globals()[storage + 'Storage']() |
|---|
| | 124 | |
|---|
| | 125 | # People can set their own custom class |
|---|
| | 126 | # through sessionFilter.storageClass |
|---|
| | 127 | sess.sessionStorage = \ |
|---|
| | 128 | cherrypy.config.get('sessionFilter.storageClass', None) |
|---|
| | 129 | if sess.sessionStorage is None: |
|---|
| | 130 | sess.sessionStorage = globals()[storage + 'Storage']() |
|---|
| 408 | | return sess.sessionData.__getattribute__(name) |
|---|
| 409 | | def __getitem__(self, *a, **b): |
|---|
| 410 | | sess = cherrypy.threadData._session |
|---|
| 411 | | if sess.sessionStorage is None: |
|---|
| 412 | | raise SessionNotEnabledError() |
|---|
| 413 | | return sess.sessionData.__getitem__(*a, **b) |
|---|
| 414 | | def __setitem__(self, *a, **b): |
|---|
| 415 | | sess = cherrypy.threadData._session |
|---|
| 416 | | if sess.sessionStorage is None: |
|---|
| 417 | | raise SessionNotEnabledError() |
|---|
| 418 | | return sess.sessionData.__setitem__(*a, **b) |
|---|
| 419 | | def __delitem__(self, *a, **b): |
|---|
| 420 | | sess = cherrypy.threadData._session |
|---|
| 421 | | if sess.sessionStorage is None: |
|---|
| 422 | | raise SessionNotEnabledError() |
|---|
| 423 | | return sess.sessionData.__delitem__(*a, **b) |
|---|
| 424 | | def __contains__(self, *a, **b): |
|---|
| 425 | | sess = cherrypy.threadData._session |
|---|
| 426 | | if sess.sessionStorage is None: |
|---|
| 427 | | raise SessionNotEnabledError() |
|---|
| 428 | | return sess.sessionData.__contains__(*a, **b) |
|---|
| | 412 | return getattr(sess.sessionData, name) |
|---|