Example #1
0
def login(request):
    login_url = request.current_route_url()
    # detectem des de quina URL ve el visitant
    referrer = request.url
    # retornem l'usuari a la home page si ha vingut directe al login
    if referrer == login_url:
        referrer = '/' # never use the login form itself as came_from
    came_from = request.params.get('came_from', referrer)
    user = authenticated_userid(request)
    connector = get_ldap_connector( request )
    if user:
        lloc = came_from.split("/")
        message = "Ets %s, i com a tal no pots entrar a %s" % (user,came_from)#lloc[len(lloc)-1])
    else:
        message = "Identifica't per entrar al sagrat mon d'Egipte"
    login = ''
    password = ''
    if 'form.submitted' in request.params:
        login = request.params['login']
        password = request.params['password']
        #connector = get_ldap_connector( request )
        data = connector.authenticate( login, password )
        if data is not None:
            # DN complert. És una mica llarg però ha de ser així
            dn = data[0]
            # Seria més còmode utilitzar el UID o CN, però llavors no lliga amb Pyramid Auth
            #uid = data[1]["uid"][0]
            #print "DADES=" + str(data)
            print "login OK per " + data[1]["uid"][0] + " DN:"+dn
            print "GRUPS per " + str(dn) +": " + str(groupfinder(dn,request))
            #print str( connector.user_groups(dn) )
            for g in connector.user_groups( dn ):
                print "\t"+ str(g[0])
            headers = remember(request,data[0])
            return HTTPFound( location=came_from, headers=headers )
            
        # autenticació Pyramid sense LDAP (a esborrar)
        #if comprova_usuari(login,password):
        #    headers = remember(request, login)
        #    return HTTPFound(location = came_from,
        #                     headers = headers)
        message = 'Failed login'

    return dict(
        message = message,
        url = request.application_url + '/login',
        came_from = came_from,
        login = login,
        password = password,
        user = authenticated_userid(request), # afegim usuari autenticat si l'hi ha
        )
Example #2
0
def get_user(request):
    """ Gets all the user information for an authenticated  user. Checks groups
        and permissions, and returns a dict of everything. """

    promote_prd_auth = False
    promote_prd_time_auth = False
    admin_auth = False
    cp_auth = False
    email_address = None
    auth_mode = 'ldap'

    if request.registry.settings['tcw.auth_mode'] == 'ldap':
        try:
            id = request.authenticated_userid
            if id: 
                (first,last) = format_user(id)
                groups = groupfinder(id, request)
                first_last = "%s %s" % (first, last)
                auth = True
        except Exception, e:
            log.error("%s (%s)" % (Exception, e))
            (first_last, id, login, groups, first, last, auth, prd_auth, admin_auth, cp_auth) = ('', '', '', '', '', '', False, False, False, False)
Example #3
0
 def _callFUT(self, dn, request):
     from pyramid_ldap import groupfinder
     return groupfinder(dn, request)
Example #4
0
 def _callFUT(self, dn, request):
     from pyramid_ldap import groupfinder
     return groupfinder(dn, request)