Esempio n. 1
0
 def test_password_change_clears_sessions(self):
     factories.SessionFactory(user=self.user)
     factories.SessionFactory(user=self.user)
     factories.SessionFactory(user=self.user)
     assert_equal(3, Session.find().count())
     self.user.set_password('killerqueen')
     assert_equal(0, Session.find().count())
Esempio n. 2
0
 def test_get_cookie(self):
     user = AuthUserFactory()
     create_delta = Delta(lambda: Session.find().count(), lambda value: value + 1)
     with AssertDeltas(create_delta):
         utils.get_cookie_for_user(user)
     get_delta = Delta(lambda: Session.find().count())
     with AssertDeltas(get_delta):
         utils.get_cookie_for_user(user)
Esempio n. 3
0
def get_cookie_for_user(user):
    sessions = Session.find(Q('data.auth_user_id', 'eq',
                              user._id)).sort('-date_modified')
    if sessions:
        session = sessions[0]
    else:
        session = Session(
            data={
                'auth_user_id': user._id,
                'auth_user_username': user.username,
                'auth_user_fullname': user.fullname,
            })
        session.save()
    signer = itsdangerous.Signer(site_settings.SECRET_KEY)
    return signer.sign(session._id)
Esempio n. 4
0
 def test_serialize_revision(self):
     sessions.sessions[request._get_current_object()] = Session()
     utils.update_analytics(self.project, self.record._id, 0)
     utils.update_analytics(self.project, self.record._id, 0)
     utils.update_analytics(self.project, self.record._id, 2)
     expected = {
         'index': 1,
         'user': {
             'name': self.user.fullname,
             'url': self.user.url,
         },
         'date': self.versions[0].date_created.isoformat(),
         'downloads': 2,
         'md5': None,
         'sha256': None,
     }
     observed = utils.serialize_revision(
         self.project,
         self.record,
         self.versions[0],
         0,
     )
     assert_equal(expected, observed)
     assert_equal(self.record.get_download_count(), 3)
     assert_equal(self.record.get_download_count(version=2), 1)
     assert_equal(self.record.get_download_count(version=0), 2)
Esempio n. 5
0
    def test_remove_session_for_user(self):
        factories.SessionFactory(user=self.user)

        # sanity check
        assert_equal(1, Session.find().count())

        utils.remove_sessions_for_user(self.user)
        assert_equal(0, Session.find().count())

        factories.SessionFactory()
        factories.SessionFactory(user=self.user)

        # sanity check
        assert_equal(2, Session.find().count())

        utils.remove_sessions_for_user(self.user)
        assert_equal(1, Session.find().count())
Esempio n. 6
0
def get_cookie_for_user(user):
    sessions = Session.find(
        Q('data.auth_user_id', 'eq', user._id)
    ).sort(
        '-date_modified'
    )
    if sessions:
        session = sessions[0]
    else:
        session = Session(data={
            'auth_user_id': user._id,
            'auth_user_username': user.username,
            'auth_user_fullname': user.fullname,
        })
        session.save()
    signer = itsdangerous.Signer(site_settings.SECRET_KEY)
    return signer.sign(session._id)
Esempio n. 7
0
def get_kwargs(request, endpoint):
    kwargs = {}
    if 'session' in request.session:
        session = Session.from_session(request.session)
        kwargs['headers'] = {
            'Authorization': session.token
        }
    return kwargs
Esempio n. 8
0
 def login(self):
     logger.debug('Attempting log in with token %s and code %s',
                  self.request.session['login_token'],
                  self.cleaned_data['code'])
     result = api.post(
         self.request, '/auth/second', {
             'token': self.request.session['login_token'],
             'code': self.cleaned_data['code']
         })
     del self.request.session['login_token']
     session = Session.from_json(result['session'])
     session.to_session(self.request.session)
Esempio n. 9
0
 def setUp(self):
     super(TestClearSessions, self).setUp()
     now = datetime.datetime.utcnow()
     self.dates = [
         now,
         now - relativedelta.relativedelta(months=2),
         now - relativedelta.relativedelta(months=4),
     ]
     self.sessions = [Session() for _ in range(len(self.dates))]
     for session in self.sessions:
         session.save()
     # Manually set `date_created` fields in MongoDB.
     for idx, date in enumerate(self.dates):
         self.session_collection.update(
             {'_id': self.sessions[idx]._id},
             {'$set': {'date_modified': date}},
         )
     Session._clear_caches()
     assert_equal(
         Session.find().count(),
         3,
     )
Esempio n. 10
0
 def setUp(self):
     super(TestClearSessions, self).setUp()
     now = datetime.datetime.utcnow()
     self.dates = [
         now,
         now - relativedelta.relativedelta(months=2),
         now - relativedelta.relativedelta(months=4),
     ]
     self.sessions = [Session() for _ in range(len(self.dates))]
     for session in self.sessions:
         session.save()
     # Manually set `date_created` fields in MongoDB.
     for idx, date in enumerate(self.dates):
         self.session_collection.update(
             {'_id': self.sessions[idx]._id},
             {'$set': {
                 'date_modified': date
             }},
         )
     Session._clear_caches()
     assert_equal(
         Session.find().count(),
         3,
     )
Esempio n. 11
0
 def test_anon_revisions(self):
     sessions.sessions[request._get_current_object()] = Session()
     utils.update_analytics(self.project, self.record._id, 0)
     utils.update_analytics(self.project, self.record._id, 0)
     utils.update_analytics(self.project, self.record._id, 2)
     expected = {
         'index': 2,
         'user': None,
         'date': self.versions[0].date_created.isoformat(),
         'downloads': 0,
     }
     observed = utils.serialize_revision(self.project,
                                         self.record,
                                         self.versions[0],
                                         1,
                                         anon=True)
     assert_equal(expected, observed)
Esempio n. 12
0
 def test_serialize_revision(self):
     sessions.sessions[request._get_current_object()] = Session()
     views.update_analytics(self.project, self.path, 1)
     views.update_analytics(self.project, self.path, 1)
     views.update_analytics(self.project, self.path, 3)
     expected = {
         'index': 1,
         'user': {
             'name': self.user.fullname,
             'url': self.user.url,
         },
         'date': self.versions[0].date_created.isoformat(),
         'downloads': 2,
     }
     observed = utils.serialize_revision(
         self.project,
         self.record,
         self.versions[0],
         1,
     )
     assert_equal(expected, observed)
Esempio n. 13
0
 def test_serialize_revision(self):
     sessions.sessions[request._get_current_object()] = Session()
     views.update_analytics(self.project, self.path, 1)
     views.update_analytics(self.project, self.path, 1)
     views.update_analytics(self.project, self.path, 3)
     expected = {
         'index': 1,
         'user': {
             'name': self.user.fullname,
             'url': self.user.url,
         },
         'date': self.versions[0].date_created.isoformat(),
         'downloads': 2,
         'urls': {
             'view':
             self.project.web_url_for(
                 'osf_storage_view_file',
                 path=self.path,
                 version=1,
             ),
             'download':
             self.project.web_url_for(
                 'osf_storage_view_file',
                 path=self.path,
                 action='download',
                 version=1,
             ),
         },
     }
     observed = utils.serialize_revision(
         self.project,
         self.record,
         self.versions[0],
         1,
     )
     assert_equal(expected, observed)
Esempio n. 14
0
 def test_remove_session(self):
     session = SessionFactory(user=self.user)
     assert_equal(1, Session.find().count())
     utils.remove_session(session)
     assert_equal(0, Session.find().count())
Esempio n. 15
0
 def test_clear_sessions_relative(self):
     clear_sessions_relative(3)
     assert_equal(
         Session.find().count(),
         2,
     )
Esempio n. 16
0
 def test_clear_sessions(self):
     clear_sessions(self.dates[1])
     assert_equal(
         Session.find().count(),
         2,
     )
Esempio n. 17
0
 def tearDown(self):
     super(TestClearSessions, self).tearDown()
     Session.remove()
Esempio n. 18
0
 def tearDown(self, *args, **kwargs):
     super(SessionUtilsTestCase, self).tearDown(*args, **kwargs)
     User.remove()
     Session.remove()
Esempio n. 19
0
 def test_clear_sessions_relative(self):
     clear_sessions_relative(3)
     assert_equal(
         Session.find().count(),
         2,
     )
Esempio n. 20
0
 def test_clear_sessions(self):
     clear_sessions(self.dates[1])
     assert_equal(
         Session.find().count(),
         2,
     )
Esempio n. 21
0
 def tearDown(self):
     super(TestClearSessions, self).tearDown()
     Session.remove()