def authenticate(self, username=None, password=None, ipaddress=None): "Saves user to django DB." if not username or not password or not ipaddress: return None login_ok = Login().ip4(username, password, ipaddress) if login_ok: try: user = LoggedInUser.objects.get(username=username) user.last_seen_ip = ipaddress if not user.check_password(password): #UPDATE PASSWORD IF CHANGED user.set_password(password) user.save() except LoggedInUser.DoesNotExist: user = LoggedInUser(username=username) user.set_password(password) user.is_active = True user.is_staff = False user.is_superuser = False user.last_seen_ip = ipaddress user.save() return user return None
def authenticate(self, username=None, password=None, ipaddress=None): self.log.debug("Trying login with DjangoDBLogin") if not username or not password or not ipaddress: self.log.debug("DjangoDBLogin not satisfied.") return None mac = Dhcp().find_mac(ipaddress) self.log.info("trying to login %s@%s with mac: %s, " % (username, ipaddress, mac)) if mac: self.log.debug("Mac OK.. getting user.") try: user = LoggedInUser.objects.get(username=username) if user.check_password(password): user.last_seen_ip = ipaddress self.log.debug("Found user, updating and logging in.") self._openfw(ipaddress, username, mac) return user else: self.log.debug("Found user, but check_password failed.") return None except LoggedInUser.DoesNotExist: try: user = User.objects.get(username=username) self.log.debug("User exists as djangoauth-user") if user.check_password(password): newuser = LoggedInUser(username=user.username) newuser.set_password(password) newuser.is_active = user.is_active newuser.is_staff = user.is_staff newuser.is_superuser = user.is_superuser newuser.last_seen_ip = ipaddress user.delete() newuser.save() self.log.debug("user migrated to LoggedInUser and deleted from native db") self._openfw(ipaddress, username, mac) return newuser; else: self.log.debug(".. but password is wrong.") except User.DoesNotExist: self.log.info("user %s does not exist." % (username)) return None else: self.log.debug("Could not find MAC for %s" % (ipaddress)) return None