예제 #1
0
def forgot(request):
    email = None

    if 'forgot.submit' in request.params:
        email = request.params.get('email', '')
        user_dao = UserDao(None)
        user = user_dao.get_by_email(email)
        if user is None:
            msg = "Sorry. We couldn't find an account for that email."
            request.session.flash(msg, 'error')
            return _build_response_with(request, email=email)

        user.mark_pwd_reset("FORGOTTEN")
        settings = request.registry.settings
        msg = ReactivateMsg(user.email, "Reset your PyCon.ca password",
                            settings)

        msg.send(
            request.route_url('pwd_reset_form',
                              username=user.username,
                              reset_key=user.activation.code))

        login = request.route_url('login')
        msg = ('Instructions on how to reset your password have been'
               ' sent to your email address.')
        request.session.flash(msg, 'success')
        return HTTPFound(location=login)

    return _build_response_with(request, email=email)
예제 #2
0
def pwd_change(request):
    """Reset a user after being suspended

    :param username: required to know what user we're resetting
    :param activation: code needed to activate
    :param password: new password to use for the user

    """
    params = request.params

    if 'change.submit' in params:
        current_password = params.get('current_password', None)
        password1 = params.get('password1', None)
        password2 = params.get('password2', None)

        if password1 != password2:
            request.response.status_int = 500
            msg = ('The password you entered does not match')
            request.session.flash(msg, 'error')
            return _build_response(request)

        user_dao = UserDao(None)
        user_id = authenticated_userid(request)
        if user_id is None:
            request.session.flash('Unidentified user', 'error')
            return _build_response(request)

        user = user_dao.get_by_id(user_id)
        if user and check_password(current_password, user.password):
            user_dao.set_new_pwd(user_id, generate_password(password1))
            request.session.flash('Password Successfully changed', 'success')
            return _build_response(request)
        request.session.flash('Incorrect password', 'error')

    return _build_response(request)
예제 #3
0
파일: views.py 프로젝트: dkua/pyconca
def pwd_change(request):
    """Reset a user after being suspended

    :param username: required to know what user we're resetting
    :param activation: code needed to activate
    :param password: new password to use for the user

    """
    params = request.params

    if 'change.submit' in params:
        current_password = params.get('current_password', None)
        password1 = params.get('password1', None)
        password2 = params.get('password2', None)

        if password1 != password2:
            request.response.status_int = 500
            msg = ('The password you entered does not match')
            request.session.flash(msg, 'error')
            return _build_response(request)

        user_dao = UserDao(None)
        user_id = authenticated_userid(request)
        if user_id is None:
            request.session.flash('Unidentified user', 'error')
            return _build_response(request)

        user = user_dao.get_by_id(user_id)
        if user and check_password(current_password, user.password):
            user_dao.set_new_pwd(user_id, generate_password(password1))
            request.session.flash('Password Successfully changed', 'success')
            return _build_response(request)
        request.session.flash('Incorrect password', 'error')

    return _build_response(request)
예제 #4
0
파일: views.py 프로젝트: dkua/pyconca
def login(request):
    login_url = request.route_url('login')
    referrer = request.url
    if referrer == login_url:
        referrer = '/'  # never use the login form itself as came_from
    came_from = request.params.get('came_from', referrer)

    username = ''
    password = ''

    if 'login.submit' in request.params:
        username = request.params['username']
        password = request.params['password']
        user_dao = UserDao(None)
        user = user_dao.get_by_username(username)
        if user and check_password(password, user.password):
            headers = remember(request, user.id)
            return HTTPFound(location=came_from, headers=headers)
        request.session.flash('Login failed', 'error')

    response_ = _build_response(request)
    response_.update(
        came_from=came_from,
        username=username,
        password=password,
    )

    return response_
예제 #5
0
파일: views.py 프로젝트: dkua/pyconca
def forgot(request):
    email = None

    if 'forgot.submit' in request.params:
        email = request.params.get('email', '')
        user_dao = UserDao(None)
        user = user_dao.get_by_email(email)
        if user is None:
            msg = "Sorry. We couldn't find an account for that email."
            request.session.flash(msg, 'error')
            return _build_response_with(request, email=email)

        user.mark_pwd_reset("FORGOTTEN")
        settings = request.registry.settings
        msg = ReactivateMsg(user.email,
                            "Reset your PyCon.ca password",
                            settings)

        msg.send(request.route_url('pwd_reset_form', username=user.username,
                 reset_key=user.activation.code))

        login = request.route_url('login')
        msg = ('Instructions on how to reset your password have been'
               ' sent to your email address.')
        request.session.flash(msg, 'success')
        return HTTPFound(location=login)

    return _build_response_with(request, email=email)
예제 #6
0
def login(request):
    login_url = request.route_url('login')
    referrer = request.url
    if referrer == login_url:
        referrer = '/'  # never use the login form itself as came_from
    came_from = request.params.get('came_from', referrer)

    username = ''
    password = ''

    if 'login.submit' in request.params:
        username = request.params['username']
        password = request.params['password']
        user_dao = UserDao(None)
        user = user_dao.get_by_username(username)
        if user and check_password(password, user.password):
            headers = remember(request, user.id)
            return HTTPFound(location=came_from, headers=headers)
        request.session.flash('Login failed', 'error')

    response_ = _build_response(request)
    response_.update(
        came_from=came_from,
        username=username,
        password=password,
    )

    return response_
예제 #7
0
class UniqueUsername(FancyValidator):
    def __init__(self, *args, **kwargs):
        FancyValidator.__init__(self, *args, **kwargs)
        self.user_dao = UserDao(None)

    def _to_python(self, value, state):
        if self.user_dao.username_already_exists(value, state.id):
            raise Invalid('That username already exists', value, state)
        return value
예제 #8
0
class UniqueUsername(FancyValidator):
    def __init__(self, *args, **kwargs):
        FancyValidator.__init__(self, *args, **kwargs)
        self.user_dao = UserDao(None)

    def _to_python(self, value, state):
        if self.user_dao.username_already_exists(value, state.id):
            raise Invalid("That username already exists", value, state)
        return value
예제 #9
0
파일: views.py 프로젝트: vladikoff/pyconca
def forgot(request):
    username = ""

    if "forgot.submit" in request.params:
        username = request.params["username"]
        user_dao = UserDao(None)
        user = user_dao.get_by_username(username)
        if user:
            login = request.route_url("login")
            # msg = ('Instructions on how to reset your password have been'
            #       ' sent to your email address.')
            msg = "Contact [email protected] to reset your password."
            request.session.flash(msg, "error")
            return HTTPFound(location=login)
        msg = "Sorry. We couldn't find an account for that username."
        request.session.flash(msg, "error")

    response_ = _build_response(request)
    response_.update(username=username)

    return response_
예제 #10
0
def forgot(request):
    username = ''

    if 'forgot.submit' in request.params:
        username = request.params['username']
        user_dao = UserDao(None)
        user = user_dao.get_by_username(username)
        if user:
            login = request.route_url('login')
            #msg = ('Instructions on how to reset your password have been'
            #       ' sent to your email address.')
            msg = ('Contact [email protected] to reset your password.')
            request.session.flash(msg, 'error')
            return HTTPFound(location=login)
        msg = "Sorry. We couldn't find an account for that username."
        request.session.flash(msg, 'error')

    response_ = _build_response(request)
    response_.update(username=username, )

    return response_
예제 #11
0
파일: views.py 프로젝트: vladikoff/pyconca
def login(request):
    login_url = request.route_url("login")
    referrer = request.url
    if referrer == login_url:
        referrer = "/"  # never use the login form itself as came_from
    came_from = request.params.get("came_from", referrer)

    username = ""
    password = ""

    if "login.submit" in request.params:
        username = request.params["username"]
        password = request.params["password"]
        user_dao = UserDao(None)
        user = user_dao.get_by_username(username)
        if user and check_password(password, user.password):
            headers = remember(request, user.id)
            return HTTPFound(location=came_from, headers=headers)
        request.session.flash("Login failed", "error")

    response_ = _build_response(request)
    response_.update(came_from=came_from, username=username, password=password)

    return response_
예제 #12
0
파일: security.py 프로젝트: taavi/pyconca
def get_user(request):
    user_id = unauthenticated_userid(request)
    if user_id:
        user_dao = UserDao()
        return user_dao.get(user_id)
예제 #13
0
 def __init__(self, *args, **kwargs):
     FancyValidator.__init__(self, *args, **kwargs)
     self.user_dao = UserDao(None)
예제 #14
0
 def _configure(self):
     self.name = 'user'
     self.dao = UserDao(self.request.user)
     self.schema = UserSchema
예제 #15
0
파일: security.py 프로젝트: myusuf3/pyconca
 def __getitem__(self, id):
     return UserDao(self.request.user).get(id)
예제 #16
0
 def __init__(self, *args, **kwargs):
     FancyValidator.__init__(self, *args, **kwargs)
     self.user_dao = UserDao(None)
예제 #17
0
파일: security.py 프로젝트: myusuf3/pyconca
def get_user(request):
    user_id = unauthenticated_userid(request)
    if user_id:
        user_dao = UserDao(None)
        return user_dao.get(user_id)