Esempio n. 1
0
 def invite_post():
     email = post_get('email', '')
     name = post_get('name', '')
     desc = post_get('desc', '')
     if manager.save_invite(email, name, desc):
         flash_message('Thank you for your interest! We will send you an invite to try webrecorder.io soon!', 'success')
         redirect('/')
     else:
         flash_message('Oops, something went wrong, please try again')
         redirect(REGISTER_PATH)
Esempio n. 2
0
    def expire():
        user = manager.get_curr_user()

        # if actually logged in (in a different tab), just redirect home
        if user:
            flash_message('Anonymous collection expired, browse your existing collections', 'info')
            redirect(path_parser.get_user_home(user))

        else:
            flash_message('Sorry, the anonymous collection has expired due to inactivity')
            redirect('/')
Esempio n. 3
0
    def resetpass(resetcode):
        try:
            username = request.query['username']
            result = {'username': username, 'resetcode': resetcode}

        except Exception as e:
            print(e)
            flash_message('Invalid password reset attempt. Please try again')
            redirect(FORGOT_PATH)

        return result
Esempio n. 4
0
    def resetpass(resetcode):
        try:
            username = request.query['username']
            result = {'username': username,
                      'resetcode': resetcode}

        except Exception as e:
            print(e)
            flash_message('Invalid password reset attempt. Please try again')
            redirect(FORGOT_PATH)

        return result
Esempio n. 5
0
 def invite_post():
     email = post_get('email', '')
     name = post_get('name', '')
     desc = post_get('desc', '')
     if manager.save_invite(email, name, desc):
         flash_message(
             'Thank you for your interest! We will send you an invite to try webrecorder.io soon!',
             'success')
         redirect('/')
     else:
         flash_message('Oops, something went wrong, please try again')
         redirect(REGISTER_PATH)
Esempio n. 6
0
    def register():
        if not invites_enabled:
            return {'email': '', 'skip_invite': True}

        invitecode = request.query.get('invite', '')
        email = ''

        try:
            email = manager.is_valid_invite(invitecode)
        except ValidationException as ve:
            flash_message(str(ve))

        return {'email': email, 'invite': invitecode}
Esempio n. 7
0
    def delete_account():
        cork.require(role='archivist', fail_redirect=LOGIN_PATH)

        user = request.query.get('user', '')
        if manager.delete_user(user):
            flash_message('The user {0} has been permanently deleted!'.format(user), 'success')

            redir_to = '/'
            request.environ['webrec.delete_all_cookies'] = 'all'
            cork.logout(success_redirect=redir_to, fail_redirect=redir_to)
        else:
            flash_message('There was an error deleting {0}'.format(coll))
            redirect(path_parser.get_user_home(user))
Esempio n. 8
0
    def delete_account():
        cork.require(role='archivist', fail_redirect=LOGIN_PATH)

        user = request.query.get('user', '')
        if manager.delete_user(user):
            flash_message(
                'The user {0} has been permanently deleted!'.format(user),
                'success')

            redir_to = '/'
            request.environ['webrec.delete_all_cookies'] = 'all'
            cork.logout(success_redirect=redir_to, fail_redirect=redir_to)
        else:
            flash_message('There was an error deleting {0}'.format(coll))
            redirect(path_parser.get_user_home(user))
Esempio n. 9
0
    def register():
        if not invites_enabled:
            return {'email': '',
                    'skip_invite': True}

        invitecode = request.query.get('invite', '')
        email = ''

        try:
            email = manager.is_valid_invite(invitecode)
        except ValidationException as ve:
            flash_message(str(ve))

        return { 'email': email,
                 'invite': invitecode}
Esempio n. 10
0
    def update_password():
        cork.require(role='archivist', fail_redirect=LOGIN_PATH)

        curr_password = post_get('curr_password')
        password = post_get('password')
        confirm_password = post_get('confirmpassword')

        try:
            manager.update_password(curr_password, password, confirm_password)
            flash_message('Password Updated', 'success')
        except ValidationException as ve:
            flash_message(str(ve))

        user = manager.get_curr_user()
        redirect(path_parser.get_user_home(user) + SETTINGS)
Esempio n. 11
0
    def update_password():
        cork.require(role='archivist', fail_redirect=LOGIN_PATH)

        curr_password = post_get('curr_password')
        password = post_get('password')
        confirm_password = post_get('confirmpassword')

        try:
            manager.update_password(curr_password, password, confirm_password)
            flash_message('Password Updated', 'success')
        except ValidationException as ve:
            flash_message(str(ve))

        user = manager.get_curr_user()
        redirect(path_parser.get_user_home(user) + SETTINGS)
Esempio n. 12
0
    def expire():
        user = manager.get_curr_user()

        # if actually logged in (in a different tab), just redirect home
        if user:
            flash_message(
                'Anonymous collection expired, browse your existing collections',
                'info')
            redirect(path_parser.get_user_home(user))

        else:
            flash_message(
                'Sorry, the anonymous collection has expired due to inactivity'
            )
            redirect('/')
Esempio n. 13
0
    def create_coll_static():
        try:
            cork.require(role='archivist')
        except AAAException:
            msg = "You must login to create a new collection"
            flash_message(msg)
            redirect('/')

        try:
            manager.has_more_colls()
        except ValidationException as ve:
            flash_message(str(ve))
            user = cork.current_user.username
            redirect(path_parser.get_user_home(user))

        return {}
Esempio n. 14
0
    def login_post():
        """Authenticate users"""
        username = post_get('username')
        password = post_get('password')

        if cork.login(username, password):
            redir_to = get_redir_back((LOGIN_PATH, '/'), path_parser.get_user_home(username))
            #host = request.headers.get('Host', 'localhost')
            #request.environ['beaker.session'].domain = '.' + host.split(':')[0]
            #request.environ['beaker.session'].path = '/'
        else:
            flash_message('Invalid Login. Please Try Again')
            redir_to = LOGIN_PATH

        request.environ['webrec.delete_all_cookies'] = 'non_sesh'
        redirect(redir_to)
Esempio n. 15
0
    def create_coll_static():
        try:
            cork.require(role='archivist')
        except AAAException:
            msg = "You must login to create a new collection"
            flash_message(msg)
            redirect('/')

        try:
            manager.has_more_colls()
        except ValidationException as ve:
            flash_message(str(ve))
            user = cork.current_user.username
            redirect(path_parser.get_user_home(user))

        return {}
Esempio n. 16
0
    def login_post():
        """Authenticate users"""
        username = post_get('username')
        password = post_get('password')

        if cork.login(username, password):
            redir_to = get_redir_back((LOGIN_PATH, '/'),
                                      path_parser.get_user_home(username))
            #host = request.headers.get('Host', 'localhost')
            #request.environ['beaker.session'].domain = '.' + host.split(':')[0]
            #request.environ['beaker.session'].path = '/'
        else:
            flash_message('Invalid Login. Please Try Again')
            redir_to = LOGIN_PATH

        request.environ['webrec.delete_all_cookies'] = 'non_sesh'
        redirect(redir_to)
Esempio n. 17
0
    def register_post():
        email = post_get('email')
        username = post_get('username')
        password = post_get('password')
        confirm_password = post_get('confirmpassword')
        invitecode = post_get('invite')

        redir_to = REGISTER_PATH

        if invites_enabled:
            try:
                val_email = manager.is_valid_invite(invitecode)
                if val_email != email:
                    raise ValidationException(
                        'Sorry, this invite can only be used with email: {0}'.
                        format(val_email))
            except ValidationException as ve:
                flash_message(str(ve))
                redirect(redir_to)
                return

            redir_to += '?invite=' + invitecode

        try:
            manager.validate_user(username, email)
            manager.validate_password(password, confirm_password)

            #TODO: set default host?
            host = get_host()

            cork.register(username,
                          password,
                          email,
                          role='archivist',
                          max_level=50,
                          subject='webrecorder.io Account Creation',
                          email_template='templates/emailconfirm.html',
                          host=host)

            flash_message(
                'A confirmation e-mail has been sent to <b>{0}</b>. \
Please check your e-mail to complete the registration!'.format(username),
                'success')

            redir_to = '/'
            if invites_enabled:
                manager.delete_invite(email)

        except ValidationException as ve:
            flash_message(str(ve))

        except Exception as ex:
            flash_message('Registration failed: ' + str(ex))

        redirect(redir_to)
Esempio n. 18
0
    def create_coll():
        cork.require(role='archivist', fail_redirect=LOGIN_PATH)

        coll_name = post_get('collection')
        title = post_get('title', coll_name)
        access = post_get('public', 'private')

        user = manager.get_curr_user()

        try:
            manager.add_collection(user, coll_name, title, access)
            flash_message('Created collection <b>{0}</b>!'.format(coll_name), 'success')
            redir_to = path_parser.get_coll_path(user, coll_name)
        except ValidationException as ve:
            flash_message(str(ve))
            redir_to = CREATE_PATH

        redirect(redir_to)
Esempio n. 19
0
    def create_coll():
        cork.require(role='archivist', fail_redirect=LOGIN_PATH)

        coll_name = post_get('collection')
        title = post_get('title', coll_name)
        access = post_get('public', 'private')

        user = manager.get_curr_user()

        try:
            manager.add_collection(user, coll_name, title, access)
            flash_message('Created collection <b>{0}</b>!'.format(coll_name),
                          'success')
            redir_to = path_parser.get_coll_path(user, coll_name)
        except ValidationException as ve:
            flash_message(str(ve))
            redir_to = CREATE_PATH

        redirect(redir_to)
Esempio n. 20
0
    def forgot_submit():
        email = post_get('email', None)
        username = post_get('username', None)
        host = get_host()

        try:
            cork.send_password_reset_email(username=username,
                                      email_addr=email,
                                      subject='webrecorder.io password reset confirmation',
                                      email_template='templates/emailreset.html',
                                      host=host)

            flash_message('A password reset e-mail has been sent to your e-mail!',
                          'success')

            redir_to = '/'
        except Exception as e:
            flash_message(str(e))
            redir_to = FORGOT_PATH

        redirect(redir_to)
Esempio n. 21
0
    def anon_coll_page():
        user = manager.get_curr_user()
        # Anon coll page only available when not logged in
        if user:
            flash_message('Please select a collection to view', 'info')
            redirect('/' + path_parser.get_user_home(user))

        user = manager.get_anon_user()
        collinfo = manager.get_user_info(user)

        return {
            'user': '',
            'coll': '@anon',
            'coll_id': '@anon',
            'path': 'replay',
            'is_public': False,
            'title': ANON_TITLE,
            'desc': ANON_DESC,
            'coll_size': collinfo.get('user_total_size'),
            'max_size': collinfo.get('user_max_size')
        }
Esempio n. 22
0
    def do_reset():
        username = post_get('username')
        resetcode = post_get('resetcode')
        password = post_get('password')
        confirm_password = post_get('confirmpassword')

        try:
            manager.validate_password(password, confirm_password)

            cork.reset_password(resetcode, password)

            flash_message('Your password has been successfully reset! \
You can now <b>login</b> with your new password!', 'success')

            redir_to = LOGIN_PATH

        except ValidationException as ve:
            flash_message(str(ve))
            redir_to = RESET_PATH_FILL.format(resetcode, username)

        except Exception as e:
            flash_message('Invalid password reset attempt. Please try again')
            redir_to = FORGOT_PATH

        redirect(redir_to)
Esempio n. 23
0
    def do_reset():
        username = post_get('username')
        resetcode = post_get('resetcode')
        password = post_get('password')
        confirm_password = post_get('confirmpassword')

        try:
            manager.validate_password(password, confirm_password)

            cork.reset_password(resetcode, password)

            flash_message(
                'Your password has been successfully reset! \
You can now <b>login</b> with your new password!', 'success')

            redir_to = LOGIN_PATH

        except ValidationException as ve:
            flash_message(str(ve))
            redir_to = RESET_PATH_FILL.format(resetcode, username)

        except Exception as e:
            flash_message('Invalid password reset attempt. Please try again')
            redir_to = FORGOT_PATH

        redirect(redir_to)
Esempio n. 24
0
    def delete_coll():
        coll = request.query.get('coll', '')
        if coll == '@anon':
            user = manager.get_anon_user()

            if manager.delete_anon_user(user):
                request.environ['webrec.delete_all_cookies'] = 'all'
                #flash_message('Anonymous collection has been deleted!', 'success')
                redirect('/')
            else:
                flash_message('There was an error deleting this collection')
                redirect('/replay#settings')

        else:
            cork.require(role='archivist', fail_redirect=LOGIN_PATH)
            user, coll = path_parser.get_user_coll(coll)

            if manager.delete_collection(user, coll):
                flash_message('Collection {0} has been deleted!'.format(coll),
                              'success')
                redirect(path_parser.get_user_home(user))
            else:
                flash_message('There was an error deleting {0}'.format(coll))
                redirect('/' + path_parser.get_coll_path(user, coll) +
                         '#settings')
Esempio n. 25
0
    def register_post():
        email = post_get('email')
        username = post_get('username')
        password = post_get('password')
        confirm_password = post_get('confirmpassword')
        invitecode = post_get('invite')

        redir_to = REGISTER_PATH

        if invites_enabled:
            try:
                val_email = manager.is_valid_invite(invitecode)
                if val_email != email:
                    raise ValidationException('Sorry, this invite can only be used with email: {0}'.format(val_email))
            except ValidationException as ve:
                flash_message(str(ve))
                redirect(redir_to)
                return

            redir_to += '?invite=' + invitecode


        try:
            manager.validate_user(username, email)
            manager.validate_password(password, confirm_password)

            #TODO: set default host?
            host = get_host()

            cork.register(username, password, email, role='archivist',
                          max_level=50,
                          subject='webrecorder.io Account Creation',
                          email_template='templates/emailconfirm.html',
                          host=host)

            flash_message('A confirmation e-mail has been sent to <b>{0}</b>. \
Please check your e-mail to complete the registration!'.format(username), 'success')

            redir_to = '/'
            if invites_enabled:
                manager.delete_invite(email)

        except ValidationException as ve:
            flash_message(str(ve))

        except Exception as ex:
            flash_message('Registration failed: ' + str(ex))

        redirect(redir_to)
Esempio n. 26
0
    def anon_coll_page():
        user = manager.get_curr_user()
        # Anon coll page only available when not logged in
        if user:
            flash_message('Please select a collection to view', 'info')
            redirect('/' + path_parser.get_user_home(user))

        user = manager.get_anon_user()
        collinfo = manager.get_user_info(user)

        return {'user': '',
                'coll': '@anon',

                'coll_id': '@anon',
                'path': 'replay',

                'is_public': False,
                'title': ANON_TITLE,
                'desc': ANON_DESC,

                'coll_size': collinfo.get('user_total_size'),
                'max_size': collinfo.get('user_max_size')
               }
Esempio n. 27
0
    def forgot_submit():
        email = post_get('email', None)
        username = post_get('username', None)
        host = get_host()

        try:
            cork.send_password_reset_email(
                username=username,
                email_addr=email,
                subject='webrecorder.io password reset confirmation',
                email_template='templates/emailreset.html',
                host=host)

            flash_message(
                'A password reset e-mail has been sent to your e-mail!',
                'success')

            redir_to = '/'
        except Exception as e:
            flash_message(str(e))
            redir_to = FORGOT_PATH

        redirect(redir_to)
Esempio n. 28
0
    def val_reg(reg):
        try:
            username = manager.init_user(reg)

            flash_message('<b>{0}</b>, welcome to your new archive home page! \
Click the <b>Create New Collection</b> button to create your first collection. Happy Archiving!'.format(username), 'success')
            redir_to = '/' + username

        except AAAException:
            flash_message('The user <b>{0}</b> is already registered. \
If this is you, please login or click forgot password, \
or register a new account.'.format(username))
            redir_to = LOGIN_PATH

        except Exception as e:
            flash_message('Sorry, this is not a valid registration code. Please try again.')
            redir_to = REGISTER_PATH

        redirect(redir_to)
Esempio n. 29
0
    def delete_coll():
        coll = request.query.get('coll', '')
        if coll == '@anon':
            user = manager.get_anon_user()

            if manager.delete_anon_user(user):
                request.environ['webrec.delete_all_cookies'] = 'all'
                #flash_message('Anonymous collection has been deleted!', 'success')
                redirect('/')
            else:
                flash_message('There was an error deleting this collection')
                redirect('/replay#settings')

        else:
            cork.require(role='archivist', fail_redirect=LOGIN_PATH)
            user, coll = path_parser.get_user_coll(coll)

            if manager.delete_collection(user, coll):
                flash_message('Collection {0} has been deleted!'.format(coll), 'success')
                redirect(path_parser.get_user_home(user))
            else:
                flash_message('There was an error deleting {0}'.format(coll))
                redirect('/' + path_parser.get_coll_path(user, coll) + '#settings')
Esempio n. 30
0
    def val_reg(reg):
        try:
            username = manager.init_user(reg)

            flash_message(
                '<b>{0}</b>, welcome to your new archive home page! \
Click the <b>Create New Collection</b> button to create your first collection. Happy Archiving!'
                .format(username), 'success')
            redir_to = '/' + username

        except AAAException:
            flash_message('The user <b>{0}</b> is already registered. \
If this is you, please login or click forgot password, \
or register a new account.'.format(username))
            redir_to = LOGIN_PATH

        except Exception as e:
            flash_message(
                'Sorry, this is not a valid registration code. Please try again.'
            )
            redir_to = REGISTER_PATH

        redirect(redir_to)