Exemplo n.º 1
0
def evolve(root, config=None):
    from papaye.models import Root, Package, Release, ReleaseFile, User
    new_root = Root()
    new_root['repository'] = Root()
    context = context_from_root(root)
    for package_name in context.get('repository', tuple()):
        package = context['repository'][package_name]
        new_root['repository'][package_name] = Package(package.name)

        for release_name in package.releases:
            release = package[release_name]
            try:
                new_root['repository'][package_name][release_name] = Release(
                    release.__name__, release.__name__, release.original_metadata
                )
                for release_filename in release.release_files:
                    release_file = release[release_filename]
                    new_root['repository'][package_name][release_name][release_filename] = ReleaseFile(
                        release_file.filename, release_file.content.open().read(), release_file.md5_digest,
                        release_file.status,
                    )
            except:
                print('{} v{} is corrupt! He won\'t be imported'.format(package.__name__, release.__name__))
    new_root['user'] = Root()
    for username in context.get('user', tuple()):
        user = context['user'][username]
        new_user = User('', '')
        new_user.username = user.username
        new_user.password = user.password
        new_user.groups = user.groups
        new_root['user'][username] = new_user
    root[APP_ROOT_NAME] = new_root
    context.evolved = 6
    return context
Exemplo n.º 2
0
    def test_by_username(self):
        from papaye.models import User
        from papaye.factories import user_root_factory

        root = user_root_factory(self.request)
        root['a_user'] = User('a_user', 'password')

        result = User.by_username('a_user', self.request)

        self.assertIsInstance(result, User)
        self.assertEqual(result.username, 'a_user')
Exemplo n.º 3
0
    def test_hash_password(self):
        from papaye.models import User
        expected = 'b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb980b1d7785e5976ec049b46df5f1326af5a'
        expected += '2ea6d103fd07c95385ffab0cacbc86'

        result = User('a_user', 'password')
        self.assertEqual(result.password, expected)
Exemplo n.º 4
0
def create_admin_user(dbconn):
    username = input('username for administrator (default="admin"): ')
    username = '******' if not username or username == '' else username
    password = getpass.getpass()
    admin = User(username, password, groups=['group:admin'])
    root = user_root_factory(dbconn)
    root[username] = admin
    transaction.commit()
Exemplo n.º 5
0
def index_view(context, request):
    username = request.session.get('username', '')
    result = {'username': username}
    if username == '':
        result['admin'] = False
    else:
        result['admin'] = True if 'group:admin' in User.by_username(username, request).groups else False
    return result
Exemplo n.º 6
0
    def test_by_username(self):
        from papaye.models import User
        from papaye.factories import user_root_factory

        root = user_root_factory(self.request)
        root['a_user'] = User('a_user', 'password')

        result = User.by_username('a_user', self.request)

        self.assertIsInstance(result, User)
        self.assertEqual(result.username, 'a_user')
Exemplo n.º 7
0
def test_login_view_bad_password():
    from papaye.models import User
    from papaye.views.index import login_view
    config = testing.setUp()
    authn_policy = AuthTktAuthenticationPolicy('seekrit', hashalg='sha512')
    authz_policy = ACLAuthorizationPolicy()
    config.set_authorization_policy(authz_policy)
    config.set_authentication_policy(authn_policy)
    request = testing.DummyRequest()
    request.POST = {'login': '******', 'password': '******'}
    request.root = {'user': User('user', 'bad password')}

    result = login_view(request)

    assert isinstance(result, Response) is True
    assert result.status_code == 401
    assert 'username' not in request.session
Exemplo n.º 8
0
def auth_check_func(username, password, request):
    user = User.by_username(username, request)
    if user and user.password_verify(password):
        return user.groups
    return None
Exemplo n.º 9
0
    def test_by_username_without_result(self):
        from papaye.models import User

        result = User.by_username('a_user', self.request)

        self.assertIsNone(result)
Exemplo n.º 10
0
    def test_by_username_without_result(self):
        from papaye.models import User

        result = User.by_username('a_user', self.request)

        self.assertIsNone(result)
Exemplo n.º 11
0
def auth_check_func(username, password, request):
    user = User.by_username(username, request)
    if user and user.password_verify(password):
        return user.groups
    return None