コード例 #1
0
ファイル: auth.py プロジェクト: upwlabs/sentry
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
コード例 #2
0
ファイル: views.py プロジェクト: MaximeBiset/care4care
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())
コード例 #3
0
ファイル: views.py プロジェクト: ASKBOT/django-authenticator
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
コード例 #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})
コード例 #5
0
ファイル: auth.py プロジェクト: JJediny/sentry
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
コード例 #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
            })
コード例 #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")
コード例 #8
0
ファイル: views.py プロジェクト: RyanCccc/PurdueCourseSeats
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
コード例 #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)
コード例 #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")
コード例 #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
コード例 #12
0
ファイル: views.py プロジェクト: wikibootup/home
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})
コード例 #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'))
コード例 #14
0
ファイル: views.py プロジェクト: sguerin/askbot-devel
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
                    )
コード例 #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
コード例 #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)
コード例 #17
0
ファイル: views.py プロジェクト: varikgit/wifi
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('/')
コード例 #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'})
コード例 #19
0
ファイル: views.py プロジェクト: getsiphon/siphon-web
    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')
コード例 #20
0
ファイル: views.py プロジェクト: ivancrneto/exway
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'})
コード例 #21
0
ファイル: views.py プロジェクト: vrosnet/identity.gentoo.org
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)
コード例 #22
0
ファイル: auth.py プロジェクト: gabrielhora/startupforme
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'})
コード例 #23
0
ファイル: views.py プロジェクト: mgorny/identity.gentoo.org
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)
コード例 #24
0
ファイル: views.py プロジェクト: btimby/cloudstrype
    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)
コード例 #25
0
ファイル: views.py プロジェクト: yyms/CNPROG
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)
コード例 #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})
コード例 #27
0
ファイル: views.py プロジェクト: wmy199/one
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('用户不存在')
コード例 #28
0
ファイル: views.py プロジェクト: Mig29x/X-29
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)
コード例 #29
0
ファイル: views.py プロジェクト: YuraSerko/moscowhost
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'))
コード例 #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")
コード例 #31
0
ファイル: views.py プロジェクト: sallesma/Swindle
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")
コード例 #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 })
コード例 #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)
コード例 #34
0
ファイル: views.py プロジェクト: BitMart/bitmart
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})
コード例 #35
0
ファイル: views.py プロジェクト: totalorder/eventplanner
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")
コード例 #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 :)')
コード例 #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': ''})
コード例 #38
0
ファイル: views.py プロジェクト: prologin/stechec-2011
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')
コード例 #39
0
ファイル: views.py プロジェクト: aclarktest/django-auth-form
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)
コード例 #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('/')
コード例 #41
0
ファイル: views.py プロジェクト: bertocarl/trackrose
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')
コード例 #42
0
ファイル: views.py プロジェクト: penpenps/storymommy
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")
コード例 #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"))
コード例 #44
0
ファイル: views.py プロジェクト: olivx/poVilla
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})
コード例 #45
0
ファイル: views.py プロジェクト: JoshLabs/askbot-devel
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)
コード例 #46
0
ファイル: auth.py プロジェクト: zhangmuxi/sentry
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)
コード例 #47
0
ファイル: views.py プロジェクト: pnhoang/osqa
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)
コード例 #48
0
ファイル: views.py プロジェクト: DanielPollithy/train.io
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"})
コード例 #49
0
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})
コード例 #50
0
ファイル: views.py プロジェクト: frombc7197/animeta
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})
コード例 #51
0
ファイル: views.py プロジェクト: RyanCccc/PurdueCourseSeats
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':''})
コード例 #52
0
ファイル: views.py プロジェクト: smartpigling/website
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})
コード例 #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')
コード例 #54
0
ファイル: views.py プロジェクト: getsiphon/siphon-web
    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
        })
コード例 #55
0
ファイル: auth.py プロジェクト: smartpigling/website
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})
コード例 #56
0
ファイル: views.py プロジェクト: Eksmo/django-recommends
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', '/'))
コード例 #57
0
ファイル: views.py プロジェクト: delete/estofadora
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()})