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 )
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)
def _callFUT(self, dn, request): from pyramid_ldap import groupfinder return groupfinder(dn, request)