Beispiel #1
0
class PrivilegesTestCase(TestCase):

    def setUp(self):
        super().setUp()
        with self.app.app_context():
            self.service = UsersService('users', backend=superdesk.get_backend())

    def test_admin_has_all_privileges(self):
        with self.app.app_context():
            user = {'user_type': 'administrator'}
            self.service.set_privileges(user, None)
            self.assertEqual(user['active_privileges']['users'], 1)

    def test_user_has_merged_privileges(self):
        with self.app.app_context():
            user = {'user_type': 'user', 'privileges': {'users': 1}}
            role = {'privileges': {'archive': 1}}
            self.service.set_privileges(user, role)
            self.assertEqual(user['active_privileges']['users'], 1)
            self.assertEqual(user['active_privileges']['archive'], 1)

    def test_user_with_privilege_can_change_his_role(self):
        with self.app.app_context():
            flask.g.user = {'user_type': 'administrator'}
            ids = self.service.create([{'name': 'user', 'user_type': 'administrator'}])
            doc_old = self.service.find_one(None, _id=ids[0])
            self.service.update(ids[0], {'role': '1'}, doc_old)
            self.assertIsNotNone(self.service.find_one(req=None, role='1'))

    def test_compare_preferences(self):
        original_preferences = {
            "unlock": 1,
            "archive": 1,
            "spike": 1,
            "unspike": 1,
            "ingest_move": 0
        }

        updated_preferences = {
            "unlock": 0,
            "archive": 1,
            "spike": 1,
            "ingest": 1,
            "ingest_move": 1,
        }

        added, removed, modified = compare_preferences(original_preferences, updated_preferences)
        self.assertEquals(1, len(added))
        self.assertEquals(1, len(removed))
        self.assertEquals(2, len(modified))
        self.assertTrue((1, 0) in modified.values())
        self.assertTrue((0, 1) in modified.values())
Beispiel #2
0
    def setUp(self):
        self.user = User()
        self.user.save()

        self.auth_header = {
            'X_ACCESSTOKEN':
            UsersService().generate_token(self.user, 'ethereum')
        }
Beispiel #3
0
    def setUp(self):
        setup(context=self)
        with self.app.app_context():
            # mock one user:
            user_service = UsersService(
                'users', backend=superdesk.get_backend())
            self.user_id = user_service.create([{
                'name': 'user',
                'user_type': 'administrator',
                'email': '*****@*****.**'
            }])[0]

            provider = {'name': 'Test'}
            dirname = os.path.dirname(os.path.realpath(__file__))
            fixture = os.path.join(dirname, 'fixtures', self.filename)
            with open(fixture, mode='rb') as f:
                bytes = f.read()
            parser = rfc822Parser()
            self.items = parser.parse_email([(1, bytes)], provider)
Beispiel #4
0
    def setUp(self):
        self.user = User()
        self.user.save()

        self.constructor = Constructor.create(price=0)
        self.constructor.save()

        self.auth_header = {
            'X_ACCESSTOKEN':
            UsersService().generate_token(self.user, 'ethereum')
        }
Beispiel #5
0
class LoginBaseView(View):
    _sign_services: Dict[str, SignService] = {
        BLOCKCHAIN_ETHEREUM: EthereumSignService(),
        BLOCKCHAIN_EOS: EOSSignService(),
    }
    users_service = UsersService()

    def _require_service(self, blockchain):
        if blockchain not in self._sign_services:
            raise PublicException(
                "Blockchain '{}' is not supported".format(blockchain))

        return self._sign_services[blockchain]
Beispiel #6
0
 def setUp(self):
     super().setUp()
     with self.app.app_context():
         self.service = UsersService('users', backend=superdesk.get_backend())
Beispiel #7
0
 def __init__(self, pool):
     self._pool = pool
     self.users_service = UsersService(pool)