Exemplo n.º 1
0
    def test_user_type_based_access_levels(self):
        data = [dict(user_type='Researcher', access_levels=["L1"]),
            dict(user_type='Curator', access_levels=["L3", "L4"]),
            dict(user_type='Curator', access_levels=["L1"])]

        patched_levels = self.patched_levels(
            valid_access_levels_for_user_types=dict(Researcher=["L1"], Curator=["L3", "L4"])
        )

        with patch.dict(data_access.data_access_levels, patched_levels):
            res = data_access.valid_user_type_based_data_access(data[0]['user_type'], data[0]['access_levels'])[0]
            assert res
            res = data_access.valid_user_type_based_data_access(data[1]['user_type'], data[1]['access_levels'])[0]
            assert res
            res = data_access.valid_user_type_based_data_access(data[2]['user_type'], data[2]['access_levels'])[0]
            assert not res
Exemplo n.º 2
0
 def __call__(self, form, field):
     user_type = form.user_type.data
     access_levels = field.data
     valid, valid_data_access = valid_user_type_based_data_access(user_type, access_levels)
     if not valid:
         self.message = lazy_gettext(u'Invalid data access {}. Valid data access(s) for user type {} are {}'
             .format(','.join(access_levels), user_type, ', '.join(valid_data_access)))
         raise ValidationError(self.message)