Beispiel #1
0
def login(request, user, passed_2fa=None, after_2fa=None,
          organization_id=None):
    """
    This logs a user in for the sesion and current request.

    If 2FA is enabled this method will start the MFA flow and return False as
    required.  If `passed_2fa` is set to `True` then the 2FA flow is set to be
    finalized (user passed the flow).

    If the session has already resolved MFA in the past, it will automatically
    detect it from the session.

    Optionally `after_2fa` can be set to a URL which will be used to override
    the regular session redirect target directly after the 2fa flow.

    Returns boolean indicating if the user was logged in.
    """
    has_2fa = Authenticator.objects.user_has_2fa(user)
    if passed_2fa is None:
        passed_2fa = (
            request.session.get(MFA_SESSION_KEY, '') == six.text_type(user.id)
        )

    if has_2fa and not passed_2fa:
        request.session['_pending_2fa'] = [user.id, time(), organization_id]
        if after_2fa is not None:
            request.session['_after_2fa'] = after_2fa
        request.session.modified = True
        return False

    # TODO(dcramer): this needs to be bound based on MFA options
    if passed_2fa:
        request.session[MFA_SESSION_KEY] = six.text_type(user.id)
        request.session.modified = True

    mfa_state = request.session.pop('_pending_2fa', ())
    if organization_id is None and len(mfa_state) == 3:
        organization_id = mfa_state[2]

    # Check for expired passwords here after we cleared the 2fa flow.
    # While this means that users will have to pass 2fa before they can
    # figure out that their passwords are expired this is still the more
    # reasonable behavior.
    #
    # We also rememebr _after_2fa here so that we can continue the flow if
    # someone does it in the same browser.
    if user.is_password_expired:
        raise AuthUserPasswordExpired(user)

    # If there is no authentication backend, just attach the first
    # one and hope it goes through.  This apparently is a thing we
    # have been doing for a long time, just moved it to a more
    # reasonable place.
    if not hasattr(user, 'backend'):
        user.backend = settings.AUTHENTICATION_BACKENDS[0]
    _login(request, user)
    if organization_id:
        mark_sso_complete(request, organization_id)
    log_auth_success(request, user.username, organization_id)
    return True
Beispiel #2
0
def login(request):
    """
        log in function used and return to the home page if it success or log in page if it fail.
    """
    redirect_to = request.POST.get('next', request.GET.get('next', '/'))

    if request.POST and 'username' in request.POST and 'password' in request.POST:
        username = request.POST['username'].lower()
        password = request.POST['password']
        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                _login(request, user)
                messages.add_message(request, messages.INFO,
                                     _('Vous êtes désormais connecté.'))
                return HttpResponseRedirect(redirect_to)
            else:
                messages.add_message(
                    request, messages.ERROR,
                    _('Impossible de vous connecter, vous \
                    êtes inactif. Vérifiez vos emails afin de valider votre compte.'
                      ))
        else:
            messages.add_message(request, messages.ERROR,
                                 _('Impossible de se connecter.'))
    return render(request, 'profile/login.html', locals())
Beispiel #3
0
def login(request, user):
    from django.contrib.auth import login as _login

    # 1) get old session key
    session_key = request.session.session_key
    # 2) get old search state
    search_state = None
    if "search_state" in request.session:
        search_state = request.session["search_state"]

    # 3) login and get new session key
    _login(request, user)
    # 4) transfer search_state to new session if found
    if search_state:
        search_state.set_logged_in()
        request.session["search_state"] = search_state
    # 5) send signal with old session key as argument
    logging.debug("logged in user %s with session key %s" % (user.username, session_key))
    # todo: move to auth app
    try:
        from django.contrib.auth import signals

        signals.user_logged_in.send(request=request, user=user, session_key=session_key, sender=None)
    except ImportError:
        # django < 1.3 does not have this signal
        pass
Beispiel #4
0
def register(request):

    if request.method == "POST":
        form = RegisterForm(request.POST)

        if form.is_valid():
            # if request.POST["password"] != request.POST["password2"]:
            #
            #     return render(request, 'blog/food-index.html', {'register_form': form})

            print("username", request.POST["username"])
            User = get_user_model() # because you changed your user model see AUTH_USER_MODEL in settings.py

            user = User.objects.create_user(request.POST["username"],
                                           request.POST["email"],
                                           request.POST["password"])

            user.first_name = request.POST["first_name"]
            user.last_name = request.POST["last_name"]

            user.save()

            _login(request, user)

            return HttpResponseRedirect('/')

    else:
        form = RegisterForm()

    return render(request, 'blog/register_form.html', {'register_form': form})
Beispiel #5
0
def login(request, user, passed_2fa=False, after_2fa=None):
    """This logs a user in for the sesion and current request.  If 2FA is
    enabled this method will start the 2FA flow and return False, otherwise
    it will return True.  If `passed_2fa` is set to `True` then the 2FA flow
    is set to be finalized (user passed the flow).

    Optionally `after_2fa` can be set to a URL which will be used to override
    the regular session redirect target directly after the 2fa flow.
    """
    has_2fa = Authenticator.objects.user_has_2fa(user)
    if has_2fa and not passed_2fa:
        request.session['_pending_2fa'] = [user.id, time.time()]
        if after_2fa is not None:
            request.session['_after_2fa'] = after_2fa
        return False

    request.session.pop('_pending_2fa', None)

    # If there is no authentication backend, just attach the first
    # one and hope it goes through.  This apparently is a thing we
    # have been doing for a long time, just moved it to a more
    # reasonable place.
    if not hasattr(user, 'backend'):
        user.backend = settings.AUTHENTICATION_BACKENDS[0]
    _login(request, user)
    log_auth_success(request, user.username)
    return True
Beispiel #6
0
def signup(request):
    """
    This view lets any unauthenticated user to
    create a User account.
    """
    if request.user.is_authenticated:
        return redirect('task_manager:index')
    else:
        if request.method == 'POST':
            form = SignUpForm(request.POST)
            if form.is_valid():
                # If form is valid, save and login the user and redirect to index page
                user = form.save()
                _login(request, user)
                return redirect('task_manager:index')
            else:
                # Form is not valid, send back to signup page with error messages
                return render(request, 'task_manager/signup.html', {
                    'user': request.user,
                    'form': form
                })
        else:
            form = SignUpForm()
            return render(request, 'task_manager/signup.html', {
                'user': request.user,
                'form': form
            })
Beispiel #7
0
def register(request):
    """
    Sign up a user
    :param request:
    :return:
    """
    if request.method == "POST":
        form = RegistrationForm(request.POST)
        phone = request.POST.get("phone")
        if form.is_valid():
            user = form.save(commit=False)
            user.email = form.cleaned_data.get("username")
            user.set_password(form.cleaned_data.get("password1"))
            user.is_active = False
            user.save()
            profile = Profile.objects.create(user=user, telephone_number=phone)
            profile.save()
            url_name = "authentication:activate_user"
            activation_link = generate_activation_url(request, user, url_name)
            message_body = constants.ACCOUNT_ACTIVATION_MESSAGE.format(
                activation_link=activation_link)
            mailing_list = [user.email]
            send_mail("FreshCollections", message_body,
                      "*****@*****.**", mailing_list)
            user.backend = "authentication.backend.EmailAuthBackend"
            _login(
                request,
                user)  # , backend="authentication.backend.EmailAuthBackend")
            next_url = request.GET.get("next")
            return redirect("authentication:registration_success")
        else:
            import pdb
            pdb.set_trace()

    return redirect("authentication:auth_get")
Beispiel #8
0
def login(request):
    if request.method == 'GET':
        context = {
            'next': request.GET.get('next'),      
            'error':'',
        }
        return render(request,'login.html', context)
    elif request.method == 'POST':
        param = request.POST
        username = param.get('username')
        password = param.get('password')
        next_ = param.get('next')
        user = authenticate(username=username, password=password)
        if user is not None:
            _login(request, user)
            if next_!='None' and next_:
                respond = redirect(next_)
            else:
                respond = redirect('user_mode_dashboard')
        else:
            return render(
                        request,'login.html', 
                        {'error':'Incorrect login'}
                    )
        return respond
Beispiel #9
0
def login(request, user):
    from django.contrib.auth import login as _login
    from askbot.models import signals

    #1) get old session key
    session_key = request.session.session_key
    #2) get old search state
    search_state = None
    if 'search_state' in request.session:
        search_state = request.session['search_state']

    #3) login and get new session key
    _login(request, user)
    #4) transfer search_state to new session if found
    if search_state:
        search_state.set_logged_in()
        request.session['search_state'] = search_state
    #5) send signal with old session key as argument
    logging.debug('logged in user %s with session key %s' %
                  (user.username, session_key))
    #todo: move to auth app
    signals.user_logged_in.send(request=request,
                                user=user,
                                session_key=session_key,
                                sender=None)
Beispiel #10
0
def login(request, user=None, next=None):
    """
    Authenticate and login a user, returning the homepage or a redirect(next) url
    :param request:
    :param user:
    :param next:
    :return:
    """
    if user:
        _login(request, user)
        if next:
            return redirect(next)
        else:
            return redirect("home")

    if request.method == "POST":
        form = LoginForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data.get("username")
            password = form.cleaned_data.get("password")

            user = authenticate(username=username, password=password)
            next_url = next or request.GET.get('next')
            if user is not None:
                _login(request, user)
                if next_url:
                    return redirect(next_url)
                else:
                    return redirect("home")
            else:
                messages.error(request, "Invalid username or password!")
                return redirect("authentication:auth_get")

    return redirect("authentication:auth_get")
Beispiel #11
0
def login(request):
    if request.method == 'GET':
        context = {
            'next': request.GET.get('next'),
            'error': '',
        }
        return render(request, 'login.html', context)
    elif request.method == 'POST':
        param = request.POST
        username = param.get('username')
        password = param.get('password')
        next_ = param.get('next')
        user = authenticate(username=username, password=password)
        if user is not None:
            _login(request, user)
            if next_ != 'None' and next_:
                respond = redirect(next_)
            else:
                respond = redirect('dashboard')
        else:
            return render(
                request, 'login.html',
                {'error': 'Incorrect login'}
            )
        return respond
Beispiel #12
0
def login(request):
#	If is the user already logged in?

    if request.user.is_authenticated():
        messages.error(request, msg.users_login_error)
        messages.info(request, msg.users_already_logged_in)
        return HttpResponseRedirect(reverse("home"))

    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['pwd']
        user = authenticate(username = username, password = password)
        if user is not None:
            if user.is_active:
                _login(request, user)
                messages.success(request, msg.users_login_success)
                messages.info(request, msg.users_login_success_info)
    
                next = ""
                if 'next' in request.GET:
                    next = request.GET['next']
                
                if next == "" or next == "/":
                    return HttpResponseRedirect(reverse("home"))
                else:
                    return HttpResponseRedirect(next)
        else:
            messages.error(request, msg.users_login_error)
            messages.info(request, msg.users_invalid)
            return HttpResponseRedirect(reverse("users:login"))
 
    boardlist = Board.objects.all()
    return render(request, "users/login.html", {'boardlist' : boardlist})
Beispiel #13
0
def register(request):
    username = request.POST['username']
    email = request.POST['email']
    password = request.POST['password']
    new_user = User.objects.create_user(username, email, password)
    _login(request, new_user)
    return HttpResponseRedirect(reverse('notes_app:index'))
Beispiel #14
0
def login(request,user):
    from django.contrib.auth import login as _login
    from askbot.models import signals

    #1) get old session key
    session_key = request.session.session_key
    #2) get old search state
    search_state = None
    if 'search_state' in request.session:
        search_state = request.session['search_state']

    #3) login and get new session key
    _login(request,user)
    #4) transfer search_state to new session if found
    if search_state:
        search_state.set_logged_in()
        request.session['search_state'] = search_state
    #5) send signal with old session key as argument
    logging.debug('logged in user %s with session key %s' % (user.username, session_key))
    #todo: move to auth app
    signals.user_logged_in.send(
                        request = request,
                        user = user,
                        session_key=session_key,
                        sender=None
                    )
Beispiel #15
0
 def form_valid(self, form):
     valid = super().form_valid(form)
     username, password = form.cleaned_data.get(
         'username'), form.cleaned_data.get('password1')
     new_user = authenticate(username=username, password=password)
     _login(self.request, new_user)
     return valid
Beispiel #16
0
def login(request):
	# If the user is already logged in, redirect them back.
	if request.user.is_authenticated:
		return redirect_next(request)
	
	# Get the Firebase ID token from the POST request.
	id_token = request.POST.get("firebase_idtoken")
	
	# Show the login dialog if no ID token was given.
	if not id_token:
		return render(request, "authentication/login.html")
	
	# Force re-login if the ID token is invalid or has been revoked.
	try:
		claims = FirebaseAuth.verify_id_token(id_token, check_revoked=True)
	except:
		return redirect_login(request)
	
	# Force re-login for incomplete authentications over five minutes old.
	if time() - claims["auth_time"] >= 5 * 60:
		return redirect_login(request)
	
	# Validate the session with Firebase.
	validate_session(request, id_token)
	
	# Authenticate with Django and log the user in.
	user = authenticate(request)
	if user:
		_login(request, user)
		return redirect_next(request)
	else:
		# Force re-login if user authentication with Django failed.
		return redirect_login(request)
Beispiel #17
0
def activation(request, action_key):
    """
    Activates user based on activation key
    Activate user - set is_active to true
    """
    try:
        # активация или восстановление пароля
        action = ActionRecord.objects.get(action_key=action_key)
        if action.action_type == 'R':
            action_type = 'reset_password'
        else:
            action_type = 'activate'
        user = authenticate(activation_key=action_key, action=action_type)
        if not user:
        # action key does not exist or expired
            return HttpResponseForbidden(u'Запись о регистрации не найдена или просрочена. \
            Чтобы получить код активации регистрации заново, пройдите по <a href="%s">ссылке</a>.' % reverse('resend_activation_code'))
    except ActionRecord.DoesNotExist:
        return HttpResponseForbidden(u'Запись о регистрации не найдена или просрочена. \
        Чтобы получить код активации регистрации заново, пройдите по <a href="%s">ссылке</a>.' % reverse('resend_activation_code'))

    _login(request, user)

    # перелинковка в зависимости от активации или восстановления пароля
    if action.action_type == 'R':
        messages.success(request, u'Новый пароль был выслан на Вашу почту')
        _logout(request)
        return HttpResponseRedirect('/')
    else:
        return HttpResponseRedirect('/')
Beispiel #18
0
def login(request):
    """ View for processing user login """
    if request.user.is_authenticated():
        return redirect(r('core:home'))

    if request.method == 'GET':
        context = {}
        if 'signup_username' in request.session:
            context['signup_username'] = request.session.pop('signup_username')
        return render(request, 'login.html', context)

    try:
        user = User.objects.get(
            Q(username=request.POST['username'])
            | Q(email=request.POST['username']))
    except User.DoesNotExist:
        return render(request, 'login.html', {'result': 'loginerror'})

    if user.check_password(request.POST['password']):
        user.backend = 'django.contrib.auth.backends.ModelBackend'
        _login(request, user)

        session_time = 60 * 60 * 1  # 1 hour timeout
        # if user marks remember me checkbox, add a lot of hours to its session
        if request.POST.get('remember-me') == 'on':
            session_time *= 10000000
        request.session.set_expiry(session_time)
        return redirect(request.GET.get('next', r('core:home')))
    else:
        return render(request, 'login.html', {'result': 'loginerror'})
Beispiel #19
0
    def post(self, request):
        username_or_email = request.POST.get('username')
        password = request.POST.get('password')

        if not username_or_email:
            return self._render(request, username=username_or_email,
                error='A username or email is required.')
        username_or_email = username_or_email.lower()
        try:
            if '@' in username_or_email:
                u = User.objects.get(email__iexact=username_or_email)
            else:
                u = User.objects.get(username__iexact=username_or_email)
        except User.DoesNotExist:
            return self._render(request, username=username_or_email,
                error='Unknown username or email.')

        user = authenticate(username=u.username, password=password)
        if user is None:
            return self._render(request, username=username_or_email,
                error='Unknown account or incorrect password.')
        elif not user.is_active:
            return self._render(request, username=username_or_email,
                error='This account is disabled.')

        # If we got this far, login the request
        _login(request, user)
        # If ?next is present and valid, redirect there, otherwise
        # we default to the dashboard.
        next_page = get_next_page(request)
        if next_page:
            return HttpResponseRedirect(next_page)
        else:
            return redirect('static:dashboard')
Beispiel #20
0
def login(request):
    """ View for processing user login """
    if request.user.is_authenticated():
        return redirect(r('core:home'))

    if request.method == 'GET':
        context = {}
        if 'signup_username' in request.session:
            context['signup_username'] = request.session.pop('signup_username')
        return render(request, 'login.html', context)

    try:
        user = User.objects.get(Q(username=request.POST['username']) |
                                Q(email=request.POST['username']))
    except User.DoesNotExist:
        return render(request, 'login.html', {'result': 'loginerror'})

    if user.check_password(request.POST['password']):
        user.backend = 'django.contrib.auth.backends.ModelBackend'
        _login(request, user)

        session_time = 60 * 60 * 1  # 1 hour timeout
        # if user marks remember me checkbox, add a lot of hours to its session
        if request.POST.get('remember-me') == 'on':
            session_time *= 10000000
        request.session.set_expiry(session_time)
        return redirect(request.GET.get('next', r('core:home')))
    else:
        return render(request, 'login.html', {'result': 'loginerror'})
Beispiel #21
0
def ssl_auth(request):
    """ SSL certificate authentication. """

    ssl_auth_form = SSLCertLoginForm(request.POST)
    if not ssl_auth_form.is_valid():
        return HttpResponseBadRequest('400 Bad Request')

    session = ssl_auth_form.cleaned_data['session']
    next_uri = ssl_auth_form.cleaned_data['login_uri']

    user = authenticate(request=request)
    if user and user.is_active:
        _login(request, user)
        init_otp(request)
        if request.user.is_verified():  # OTP disabled
            next_uri = ssl_auth_form.cleaned_data['next']
    else:
        messages.error(request, 'Certificate authentication failed')

    # so, django will always start a new session for us. we need to copy
    # the data to the original session and preferably flush the new one.
    session.update(request.session)

    # always logout automatically from SSL-based auth
    # it's easy enough to log back in anyway
    if 'openid_request' in session:
        session['auto_logout'] = True

    session.save()
    request.session.flush()
    return redirect(next_uri)
Beispiel #22
0
def login(request):
    """
    the user can login with either the username or password
    behind the scenes we always use the username
    """
    if request.GET.get('next'):
        request.session['next'] = request.GET.get('next')
    next = request.session.get('next', reverse('home'))
    
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        
        if '@' in username and '.' in username:
            # username is an email, find the real username
            try:
                user = User.objects.get(email=username)
                username = user.username
            except: 
                pass # if not found the authenticate will not work
        
        user = authenticate(username=username, password=password)
        
        if user is not None and user.is_active:
            _login(request, user)
            messages.success(request, 'Bem-vindo!')
            request.session['next'] = None
            return redirect(next)
        else:
            messages.error(request, 'Usuário ou senha inválidos')
            return redirect(reverse('login'))
    return render(request, 'front/auth/login.html', {'title': 'Login'})
Beispiel #23
0
def ssl_auth(request):
    """ SSL certificate authentication. """

    ssl_auth_form = SSLCertLoginForm(request.POST)
    if not ssl_auth_form.is_valid():
        return HttpResponseBadRequest('400 Bad Request')

    session_id = cipher.decrypt(
            base64.b64decode(ssl_auth_form.cleaned_data['session_id']),
            32)

    next_uri = ssl_auth_form.cleaned_data['login_uri']

    user = authenticate(request=request)
    if user and user.is_active:
        _login(request, user)
        init_otp(request)
        if request.user.is_verified(): # OTP disabled
            next_uri = ssl_auth_form.cleaned_data['next']
    else:
        messages.error(request, 'Certificate authentication failed')

    # so, django will always start a new session for us. we need to copy
    # the data to the original session and preferably flush the new one.
    session = SessionStore(session_key=session_id)
    session.update(request.session)

    # always logout automatically from SSL-based auth
    # it's easy enough to log back in anyway
    if 'openid_request' in session:
        session['auto_logout'] = True

    session.save()
    request.session.flush()
    return redirect(next_uri)
Beispiel #24
0
    def get(self, request, provider_name):
        if 'error' in request.GET:
            return redirect(reverse('login'))
        provider_name = provider_name.lower()

        client = self._get_oauth2_client(request, provider_name)

        try:
            # Retrieve the state saved in step 1.
            client.oauthsession._state, next = \
                request.session.pop('oauth2_state_%s' % provider_name)
        except KeyError:
            return HttpResponseBadRequest('Missing state')

        client.oauthsession.token = token = client.fetch_token(
            request.build_absolute_uri())
        uid, email, name, size, used = client.get_profile()

        if request.user.is_authenticated():
            user = request.user
        else:
            try:
                # Try to fetch the user and log them in.
                user = User.objects.get(storages__attrs__uid=uid)
            except User.DoesNotExist:
                try:
                    user = User.objects.create_user(email=email,
                                                    full_name=name)
                except IntegrityError:
                    return HttpResponseBadRequest('User already registered '
                                                  '-- login and try again.')
                else:
                    # TODO: send new user a welcome email.
                    pass

        # If the token exists, update it. Otherwise create it.
        try:
            try:
                storage = Storage.objects.get(user=user,
                                              type=client.TYPE,
                                              attrs__uid=uid)
            except Storage.DoesNotExist:
                storage = Storage(user=user, type=client.TYPE)
                storage.attrs = {'uid': uid}
                client.initialize(storage)
            storage.auth = token
            storage.size = size
            storage.used = used
            storage.save()
        except IntegrityError:
            return HttpResponseBadRequest('Cloud already registered to user')

        _login(request, user)

        if not next:
            next = reverse('ui:new')

        return redirect(next)
Beispiel #25
0
def login(request, user):
    from django.contrib.auth import login as _login
    from forum.models import user_logged_in  #custom signal
    #1) get old session key
    session_key = request.session.session_key
    #2) login and get new session key
    _login(request, user)
    #3) send signal with old session key as argument
    user_logged_in.send(user=user, session_key=session_key, sender=None)
Beispiel #26
0
def login(request: HttpRequest):
    if request.method == 'POST':
        form = AuthenticationForm(request, request.POST)
        if not form.is_valid():
            return render(request, 'login.html', {'form': form})
        _login(request, form.get_user())
        return redirect('/')
    form = AuthenticationForm()
    return render(request, 'login.html', {'form': form})
Beispiel #27
0
def login(request):
    username = request.POST.get('username')
    password = request.POST.get('password')
    user = authenticate(username=username,password=password)
    if user:
        _login(request,user)
        return redirect(request.META.get('HTTP_REFERER'))
    else:
        raise Http404('用户不存在')
Beispiel #28
0
def login(request,user):
    from django.contrib.auth import login as _login
    from forum.models import user_logged_in #custom signal
    #1) get old session key
    session_key = request.session.session_key
    #2) login and get new session key
    _login(request,user)
    #3) send signal with old session key as argument
    user_logged_in.send(user=user,session_key=session_key,sender=None)
Beispiel #29
0
def view_user(request, name_user):
    profile = request.user.get_profile()
    if not profile.user.is_superuser:
        raise Http404
    _logout(request)
    user_obj_temp = User.objects.get(username=name_user)
    user_obj = authenticate(username=user_obj_temp.username, password=user_obj_temp.password)
    _login(request, user_obj)
    return HttpResponseRedirect(reverse('service_choice'))
Beispiel #30
0
def login(request):
    if request.method == "POST":
        username = request.POST['username']
        password = request.POST['password']
        user = _authenticate(request, username=username, password=password)
        if user is not None:
            _login(request, user)
        return HttpResponseRedirect(reverse("index"))
    else:
        return render(request, "registration/login.html")
Beispiel #31
0
def login(request):
    username = request.POST['username']
    password = request.POST['password']

    user = authenticate(username=username, password=password)
    if user is None:
        messages.error(request, 'Bad credentials.')
        return HttpResponseRedirect("/")
    _login(request, user)
    return HttpResponseRedirect("/dashboard")
Beispiel #32
0
def auth(request):
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(username=username, password=password)
    if user is not None:
        _login(request, user)
        return HttpResponseRedirect("http://118.123.6.162:48000/info/")
    else:
        hit = "error"
        return render(request, 'login.html', {'hit': hit })
Beispiel #33
0
def login(request, user):
    """
    登录,在原功能上加入了记录ip地址的功能
    """
    from accounts.utils import get_client_ip
    user.ip_address = get_client_ip(request)
    user.save()

    from django.contrib.auth import login as _login
    _login(request, user)
Beispiel #34
0
def login(req):
  msg = ''
  if req.method == 'POST':
    u = authenticate(username=req.POST['username'],password=req.POST['password'])
    if u != None:
      _login(req,u)
      return HttpResponseRedirect('/account/')
    else:
      msg = 'Invalid credentials'
  return render(req, 'account/login.html', {'msg':msg})
Beispiel #35
0
def login(request):
    if request.method == "POST":
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username=username, password=password)
        if user:
            if user.is_active:
                _login(request, user)
                return redirect(reverse("index"))
    return render(request, "login.html")
Beispiel #36
0
def login(request):
    if request.method == 'POST':
        print(request.POST)
        data = json.loads(request.body)
        user = authenticate(username=data['username'],
                            password=data['password'])
        if not user:
            return HttpResponse("Bad Cridential")
        else:
            _login(request, user)
            return HttpResponse('Success :)')
Beispiel #37
0
def register(request):
    if request.method == 'GET':
        return render(request, 'register.html', {'error': ''})
    elif request.method == 'POST':
        param = request.POST
        username = param.get('email')
        firstname = param.get('firstname')
        lastname = param.get('lastname')
        email = param.get('email')
        ssh = param.get('ssh')
        password = param.get('password')
        repassword = param.get('repassword')
        if not username or not firstname or not lastname:
            return render(request, 'register.html', {'error': 'Please fill out all required fields'})
        if not email:
            return render(request, 'register.html', {'error': 'Please fill out address'})
        if repassword != password:
            return render(request, 'register.html', {'error': 'Password not same'})
        try:
            verify_email(email)
        except ValidationError as e:
            return render(request, 'register.html', {'error': e.message})
        if User.objects.filter(username=username).exists():
            return render(request, 'register.html', {'error': 'Username Exists'})
        elif User.objects.filter(email=email).exists():
            return render(request, 'register.html', {'error': 'Email Exists'})
        else:
            my_user = None
            try:
                my_user = AppUser.objects.create_user(
                    email,
                    password,
                    firstname=firstname,
                    lastname=lastname,
                    ssh=ssh,
                )
            except ValidationError as e:
                return render(request, 'register.html', {'error': 'Not a valid SSH'})
            verify_url = reverse('verify', kwargs={'verifycode':my_user.verifycode})
            msg = '''
                Hi, {0} {1}:
                    Thank you for using AppBooster. Here is your verification url:
                        {2}

                Best,
                AppBooster
            '''.format(firstname, lastname, request.build_absolute_uri(verify_url),)
            send_mail('Purdue AppBooster Verification', msg, '*****@*****.**', [email,])
            user = authenticate(username=username, password=password)
            _login(request, user)
            respond = redirect('dashboard')
            return respond
    else:
        return render(request, 'register.html', {'error': ''})
Beispiel #38
0
def login(request):
    if request.user.is_authenticated():
        return HttpResponseRedirect('/')
    if request.method == 'POST':
        form = AuthenticationForm(data=request.POST)
        if form.is_valid():
            _login(request, form.user_cache)
            return HttpResponseRedirect('/')
    else:
        form = AuthenticationForm()
    return render_to_response('login.html')
Beispiel #39
0
def login(request):
    if request.method == "POST":
        form = AuthenticationForm(request, data=request.POST)
        if form.is_valid():
            _login(request, form.get_user())
            return HttpResponseRedirect("/")
    else:
        form = AuthenticationForm()
    context = {
        'form': form,
    }
    return render(request, 'home.html', context=context)
Beispiel #40
0
def login(request):
    """Login view."""
    email = request.POST['email']
    password = request.POST['password']
    user = authenticate(request, username=email, password=password)
    if user:
        _login(request, user, backend=BACKEND)
        messages.success(request, 'Vous êtes connecté.')
        return redirect("/")
    else:
        messages.error(request, 'Email ou mot de passe incorrect.')
        return redirect('/')
Beispiel #41
0
def login(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(username=username, password=password)
        if user is not None:
            _login(request, user)
            return redirect(home)
        else:
            return render(request, 'login.html')
    elif request.method == 'GET':
        return render(request, 'login.html')
Beispiel #42
0
def auth(request):
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(username=username, password=password)
    result = Result()
    if user:
        _login(request=request, user=user)
        result.code = Consts.SUCCESS_CODE
    else:
        result.code = Consts.FAILED_CODE
        result.msg = Consts.LOGIN_FAILED_MSG
    return HttpResponse(json.dumps(result.to_dict()), content_type="application/json")
Beispiel #43
0
def register(request):
    try:
        username = request.POST["username"]
        password1 = request.POST["password1"]
        password2 = request.POST["password2"]
        if not username or not password1 or password1 != password2:
            return HttpResponseRedirect(reverse("login"))
        user = User.objects.create_user(username, "", password1)
        _login(request, user)
        return HttpResponseRedirect(reverse("index"))
    except:
        return HttpResponseRedirect(reverse("login"))
Beispiel #44
0
def login(request):
    # import ipdb; ipdb.set_trace()
    form = EmailUsernameAuthenticationForm(request.POST or None)
    # form = AuthenticationForm(request.POST or None)
    if not request.user.is_authenticated:
        if request.method == 'POST':
            if form.is_valid():
                username = form.cleaned_data['username']
                password = form.cleaned_data['password']

                user = authenticate(username=username, password=password)
                if user is not None:
                    if user.is_active:
                        _login(request, user)
                        if (request.user.profile.type == Profile.CLIENT_USER):
                            if request.user.profile.company_group is None:
                                logout(request)
                                messages.error(
                                    request,
                                    'Usuário cliente não tem empresa associada.'
                                )
                                return redirect(resolve_url('account:login'))

                            # enviar para paginas de clientes
                            messages.success(
                                request,
                                'seja bem vindo, <strong>{}</strong>'.format(
                                    user.profile.full_name.title()))
                            return redirect(resolve_url('cliente:ticket_list'))
                        else:
                            # enviar para pgina de usario da servigraf
                            messages.success(
                                request,
                                'seja bem vindo, <strong>{}</strong>'.format(
                                    user.profile.full_name.title()))
                            return redirect(resolve_url('core:home'))
                    else:
                        error = 'O usuario {0}/{1} encontra-se desativado.'.format(
                            user.username, user.email)
                        form.add_error(None, error)
                else:
                    # messages.error(request, 'Não é possivel fazer o login')
                    error = 'Por favor, entre com um usuário e senha corretos. \
                                     Note que ambos os campos diferenciam maiúsculas e minúsculas.'

                    form.add_error(None, error)
                    form.add_error('username',
                                   'verifique o usuário e tente novamente')
                    form.add_error('password',
                                   'verifique o password e tente novamente')

    return render(request, 'login.html', {'form': form})
Beispiel #45
0
def login(request, user):
    from django.contrib.auth import login as _login

    # get old session key
    session_key = request.session.session_key

    # login and get new session key
    _login(request, user)

    # send signal with old session key as argument
    logging.debug("logged in user %s with session key %s" % (user.username, session_key))
    # todo: move to auth app
    user_logged_in.send(request=request, user=user, session_key=session_key, sender=None)
Beispiel #46
0
def login(request, user, passed_2fa=False):
    has_2fa = Authenticator.objects.user_has_2fa(user)
    if has_2fa and not passed_2fa:
        request.session['_pending_2fa'] = [user.id, time.time()]
    else:
        # If there is no authentication backend, just attach the first
        # one and hope it goes through.  This apparently is a thing we
        # have been doing for a long time, just moved it to a more
        # reasonable place.
        if not hasattr(user, 'backend'):
            user.backend = settings.AUTHENTICATION_BACKENDS[0]
        _login(request, user)
        log_auth_success(request, user.username)
Beispiel #47
0
def login(request,user):
    from django.contrib.auth import login as _login
    from forum.models import user_logged_in #custom signal

    if settings.USE_EXTERNAL_LEGACY_LOGIN == True:
        EXTERNAL_LOGIN_APP.api.login(request,user)

    #1) get old session key
    session_key = request.session.session_key
    #2) login and get new session key
    _login(request,user)
    #3) send signal with old session key as argument
    user_logged_in.send(user=user,session_key=session_key,sender=None)
Beispiel #48
0
def loginPost(request):
    if logged_in(request):
        return user(request, request.user.id)
    else:
        username = request.POST['username']
        password = request.POST['password']
        try_user = _authenticate(username=username, password=password)
        print(try_user)
        if user is not None:
            _login(request, try_user)
            return user(request, try_user.id)
        else:
            return render(request, 'routine/login.html', {"error":"Zugangsdaten falsch"})
def login(request):
    if request.method == "POST":
        form = AuthenticationForm(request.POST)
        if (form.is_valid()):
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password')
            user = authenticate(username=username, password=password)
            _login(request, user)
            return redirect("")
    else:
        # return render(request, 'registration/login.html')
        form = AuthenticationForm()
    return render(request, 'registration/login.html', {'form': form})
Beispiel #50
0
def signup(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            user = form.save()
            user.backend = 'django.contrib.auth.backends.ModelBackend'
            _login(request, user)
            request.session.set_expiry(0)
            return redirect(user)
    else:
        form = UserCreationForm()

    return render(request, 'registration/signup.html', {'form': form})
Beispiel #51
0
def register(request):
    if request.method == 'GET':
        return render(request,'register.html', {'error':''})
    elif request.method == 'POST':
        param = request.POST
        username = param.get('username')
        firstname = param.get('firstname')
        lastname= param.get('lastname')
        email = param.get('email')
        password = param.get('password')
        repassword = param.get('repassword')
        invite_code = param.get('invitation')
        if not invite_code:
            return render(request,'register.html', {'error':'Please fill out the invitation code'})
        try:
            invitation = Invitation.objects.get(code=invite_code)
            if invitation.used:
                return render(request,'register.html', {'error':'Used invitation code'})
            invitation.used = True
            invitation.save()
        except:
            return render(request,'register.html', {'error':'Incorrect invitation code'})
        if not username or not firstname or not lastname: 
            return render(request,'register.html', {'error':'Please fill out all required fields'})
        if not email:
            return render(request,'register.html', {'error':'Please fill out address'})
        if repassword != password:
            return render(request,'register.html', {'error':'Password not same'})
        try:
            validate_email(email)
        except ValidationError:
            return render(request,'register.html', {'error':'Please use correct email'})
        if User.objects.filter(username = username).exists():
            return render(request,'register.html', {'error':'Username Exists'})
        elif User.objects.filter(email = email).exists():
            return render(request,'register.html', {'error':'Email Exists'})
        else:
            my_user = MyUser.objects.create_user(
                    username,
                    email,
                    password,
                    firstname,
                    lastname
                    )
            user = my_user.user
            user = authenticate(username=username, password=password)
            _login(request, user)
            respond = redirect('user_mode_dashboard')
            return respond
    else:
        return render(request,'register.html', {'error':''})
Beispiel #52
0
def login(request):
    form = LoginForm(request.POST or None)
    if form.is_valid():
        user = authenticate(username=form.cleaned_data['username'],
                            password=form.cleaned_data['password'])
        if user is not None:
            if user.is_active:
                _login(request,user)
                return redirect('index')
            else:
                form.add_error('username', u'帐号被锁定请联系管理员!')
        else:
            form.add_error('username', u'帐号不存在,请再次输入!')
    return render(request, 'defaults/login.html',{'form':form})
Beispiel #53
0
def ad_login_check(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(username=username, password=password)
        if user is not None:
            _login(request, user)
            messages.info(request, '登录成功')
            return HttpResponseRedirect(reverse('society:ad_index'))
        else:
            messages.info(request, '用户名或密码错误')
            return render(request, 'society/backstage/admin_login.html')
    else:
        return redirect('society:ad_login')
Beispiel #54
0
    def post(self, request):
        first_name = request.POST.get('first_name')
        last_name = request.POST.get('last_name')
        email = request.POST.get('email')
        username = request.POST.get('username')
        password = request.POST.get('password')
        password_confirm = request.POST.get('password_confirm')
        from_landing = bool(request.GET.get('from_landing', False))
        from_tutorial = bool(request.GET.get('from_tutorial', False))

        try:
            validate.name(first_name, last_name)
            validate.email(email)
            validate.username(username)
            validate.password(password, confirm_value=password_confirm)
        except ValidationError as e:
            return self._render(request, {
                'first_name': first_name,
                'last_name': last_name,
                'email': email,
                'username': username,
                'error': ' '.join(e.messages)
            })

        # If we got this far, create the account and authenticate the user
        user = User.objects.create(
            first_name=first_name,
            last_name=last_name,
            email=email,
            username=username
        )
        user.set_password(password)
        user.save()
        _login(request, authenticate(username=username, password=password))

        next_page = get_next_page(request)
        if from_landing:
            redirect_to = reverse('docs:quickstart')
        elif from_tutorial:
            redirect_to = reverse('docs:quickstart') + '#download-sandbox'
        elif next_page:
            redirect_to = next_page
        else:
            redirect_to = reverse('static:dashboard')

        # We need an interstitial redirect so that we can do mixpanel.alias()
        # at the correct time.
        return render(request, 'accounts/redirect.html', {
            'redirect_to': redirect_to
        })
Beispiel #55
0
def login(request):
    form = LoginForm(request.POST or None)
    print request.GET.get('next', 'GET')
    print request.POST.get('next', 'POST')
    if form.is_valid():
        print form.cleaned_data
        user = authenticate(username=form.cleaned_data['username'],
                            password=form.cleaned_data['password'])
        if user and user.is_active:
            _login(request,user)
            return redirect('home')
        else:
            form.add_error('username', errors.LOGIN_USER_NOEXIST)
    return render(request, 'login.html',{'form': form})
Beispiel #56
0
def login(request):
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(username=username, password=password)
    if user is not None:
        if user.is_active:
            _login(request, user)
            # redirect to a success page.
        else:
            # Return a 'disabled account' error message
            pass
    else:
        pass
        # Return an 'invalid login' error message.
    return HttpResponseRedirect(request.POST.get('next', '/'))
Beispiel #57
0
def login(request):
    template_name = 'login.html'

    if request.user.is_authenticated():
        return redirect('core:home')

    if request.method == 'POST':
        form = LoginForm(data=request.POST)

        if form.is_valid():
            _login(request, form.get_user())
            return redirect('core:home')
        else:
            return render(request, template_name, {"form": form})

    return render(request, template_name, {"form": LoginForm()})