def d2l_authorization(self): uc = self.get_user_context() if not isinstance(uc, d2lauth.D2LUserContext): return uc # if no user_context is setup, return uc to d2l to get authorized. try: whoami = d2lservice.get_whoami(uc) id = str(whoami.UniqueName) + self.settings('d2l_append_email_address','') fullname = whoami.FirstName + u' ' + whoami.LastName # if doesn't exist create it and update login info category = self.request.params.get('category','0') user = Users.by({'email':id}).first() if not user: Users.registerNonLocalUser(email=id, fullname=fullname) user = Users.by({'email':id}).first() #retrieve new user # auto group incoming users if Validate.bool(self.request.params.get('group','false')): user = Users.add_groups(user, Groups.groups_auto_assigned_by_category(category)) user = Users.login_updates(user) # set session and send them to alias controller return HTTPFound(location=route_url('alias', self.request, _query={'category':category} ), headers=remember(self.request, user.id)) except Exception as e: print "ERROR 0: " + str(e) # log later? return HTTPForbidden()
def local_login(self): if 'form.submitted' in self.request.params: user = Users.by({'is_local':True, 'email':self.request.params['email']}).first() if user and user.validate_password(self.request.params['password']): user = Users.login_updates(user); return HTTPFound(location=route_url('alias', self.request), headers=remember(self.request, user.id)) self.response['message'] = 'Please check your username or password' return self.template('login.pt')
def local_login(self): if "form.submitted" in self.request.params: user = Users.by({"is_local": True, "email": self.request.params["email"]}).first() if user and user.validate_password(self.request.params["password"]): user = Users.login_updates(user) return HTTPFound(location=route_url("alias", self.request), headers=remember(self.request, user.id)) self.notify("Please check your username or password!", warn=True) return self.template("login.pt")