Projet

Général

Profil

Télécharger (1,72 ko) Statistiques
| Branche: | Révision:

root / larpe / tags / release-1.1.1 / larpe / liberty_site.ptl @ d03cb81c

1
import sys
2
import random
3

    
4
from quixote import get_publisher, get_response, redirect, get_request
5
from quixote.directory import Directory
6
from quixote.errors import TraversalError
7

    
8
import lasso
9

    
10
import admin
11
import liberty
12
import saml2
13
import idwsf2
14
import httplib
15
import urllib
16

    
17
from qommon.form import *
18
from qommon.misc import get_abs_path, get_current_protocol
19
from qommon import template, get_logger
20

    
21
import errors
22
import misc
23

    
24
from users import User
25
from hosts import Host
26

    
27
class LibertySite(Directory):
28

    
29
    _q_exports = ['', 'login', 'logout', 'liberty', 'saml', 'idwsf2']
30

    
31
    liberty = liberty.Liberty()
32
    saml = saml2.Saml2()
33
    idwsf2 = idwsf2.IdWsf2()
34

    
35
    def __init__(self, component):
36
        self.name = component
37

    
38
    def _q_index (self):
39
        raise errors.TraversalError()
40

    
41
    def login [html] (self):
42
        get_logger().info('login')
43
        get_publisher().reload_cfg()
44

    
45
        if not get_publisher().cfg.has_key('idp'):
46
            return template.error_page(_('SSO support is not yet configured'))
47
        else:
48
            server = misc.get_lasso_server('liberty')
49
            if server is not None:
50
                return self.liberty.perform_login()
51

    
52
            server = misc.get_lasso_server('saml2')
53
            if server is not None:
54
                return self.saml.perform_login()
55

    
56
            return template.error_page(_('SSO support is not yet configured'))
57

    
58
    def logout(self):
59
        get_logger().info('logout')
60
        session = get_session()
61
        if not session:
62
            return redirect('%s/' % get_request().environ['SCRIPT_NAME'])
63

    
64
        if misc.get_current_protocol() == lasso.PROTOCOL_SAML_2_0:
65
            return self.saml.slo_sp()
66
        else:
67
            return self.liberty.singleLogout()
68

    
(11-11/19)