Esempio n. 1
0
    def test_create_role_permission_ok_response(
            self, mock_role_repo_get, mock_permission_repo_get_unpaginated,
            mock_role_controller_request_params,
            mock_permission_repo_new_permission):
        '''Test create_role_permission OK response.
        '''
        # Arrange
        with self.app.app_context():
            mock_permission = Permission(id=1,
                                         created_at=datetime.now(),
                                         updated_at=datetime.now(),
                                         role_id=1,
                                         name='Mock permission',
                                         keyword='mock')
            mock_role_repo_get.return_value = self.mock_role
            mock_permission_repo_get_unpaginated.return_value = None
            mock_role_controller_request_params.return_value = (1, 'name',
                                                                'keyword')
            mock_permission_repo_new_permission.return_value = mock_permission
            role_controller = RoleController(self.request_context)

            # Act
            result = role_controller.create_role_permission()

            # Assert
            assert result.status_code == 201
            assert result.get_json()['msg'] == 'OK'
Esempio n. 2
0
def permission_store():
    form = PermissionCreateForm(request.form)
    if form.validate():
        permission = Permission()
        permission.create(data=form.data)
        return Success(message="操作成功!")
    return Fail(message=form.first_error)
Esempio n. 3
0
    def test_update_permission_ok_response(self, mock_permission_repo_get,
                                           mock_role_controller_request_params,
                                           mock_permission_repo_find_first,
                                           mock_role_repo_update):
        '''Test update_permission when permission already updated.
        '''
        # Arrange
        with self.app.app_context():
            mock_role_controller_request_params.return_value = (1, 'name',
                                                                'keyword')
            mock_permission = Permission(id=1,
                                         created_at=datetime.now(),
                                         updated_at=datetime.now(),
                                         role_id=1,
                                         name='Mock permission',
                                         keyword='mock')
            mock_permission_repo_get.return_value = mock_permission
            mock_permission_repo_find_first.return_value = None
            mock_role_repo_update.return_value = self.mock_role
            role_controler = RoleController(self.request_context)

            # Act
            result = role_controler.update_permission(1)

            # Assert
            assert result.status_code == 200
            assert result.get_json()['msg'] == 'OK'
Esempio n. 4
0
    def test_get_single_permission_ok_response(self,
                                               mock_permission_repo_filter_by):
        '''Test get_single_permission OK response.
        '''
        # Arrange
        with self.app.app_context():
            mock_permission = Permission(id=1,
                                         created_at=datetime.now(),
                                         updated_at=datetime.now(),
                                         role_id=1,
                                         name='Mock permission',
                                         keyword='mock')
            mock_permission_item = MagicMock()
            mock_permission_item.items.return_value = mock_permission

            mock_permission_repo_filter_by.return_value = mock_permission_item

            role_controler = RoleController(self.request_context)

            # Act
            result = role_controler.get_single_permission(1, 1)

            # Assert
            assert result.status_code == 200
            assert result.get_json()['msg'] == 'OK'
Esempio n. 5
0
    def test_update_permission_ok_response(
        self,
        mock_permission_repo_get,
        mock_role_controller_request_params,
        mock_permission_repo_find_first,
        mock_role_repo_update,
    ):
        """Test update_permission when permission already updated."""
        # Arrange
        with self.app.app_context():
            mock_role_controller_request_params.return_value = (1, "name", "keyword")
            mock_permission = Permission(
                id=1,
                created_at=datetime.now(),
                updated_at=datetime.now(),
                role_id=1,
                name="Mock permission",
                keyword="mock",
            )
            mock_permission_repo_get.return_value = mock_permission
            mock_permission_repo_find_first.return_value = None
            mock_role_repo_update.return_value = self.mock_role
            role_controler = RoleController(self.request_context)

            # Act
            result = role_controler.update_permission(1)

            # Assert
            assert result.status_code == 200
            assert result.get_json()["msg"] == "OK"
Esempio n. 6
0
    def test_create_role_permission_ok_response(
        self,
        mock_role_repo_get,
        mock_permission_repo_get_unpaginated,
        mock_role_controller_request_params,
        mock_permission_repo_new_permission,
    ):
        """Test create_role_permission OK response."""
        # Arrange
        with self.app.app_context():
            mock_permission = Permission(
                id=1,
                created_at=datetime.now(),
                updated_at=datetime.now(),
                role_id=1,
                name="Mock permission",
                keyword="mock",
            )
            mock_role_repo_get.return_value = self.mock_role
            mock_permission_repo_get_unpaginated.return_value = None
            mock_role_controller_request_params.return_value = (1, "name", "keyword")
            mock_permission_repo_new_permission.return_value = mock_permission
            role_controller = RoleController(self.request_context)

            # Act
            result = role_controller.create_role_permission()

            # Assert
            assert result.status_code == 201
            assert result.get_json()["msg"] == "OK"
Esempio n. 7
0
    def test_get_all_permissions_ok_response(
        self, mock_permission_repo_get_unpaginated
    ):
        """Test get_all_permissions OK response."""
        # Arrange
        with self.app.app_context():
            mock_permission = Permission(
                id=1,
                created_at=datetime.now(),
                updated_at=datetime.now(),
                role_id=1,
                name="Mock permission",
                keyword="mock",
            )
            mock_permission_repo_get_unpaginated.return_value = [
                mock_permission,
            ]
            role_controler = RoleController(self.request_context)

            # Act
            result = role_controler.get_all_permissions()

            # Assert
            assert result.status_code == 200
            assert result.get_json()["msg"] == "OK"
Esempio n. 8
0
    def update_permissions(form):
        oper = {
            'c': 'can_create',
            'r': 'can_read',
            'u': 'can_update',
            'd': 'can_delete',
        }
        for role in Role.query.all():
            for service in Service.query.all():
                field = role.name + '-' + service.name
                perm = Permission.query.filter_by(role=role, service=service).first()
                if not perm:
                    perm = Permission(role=role, service=service)

                for v, attr in oper.iteritems():
                    if v in form.getlist(field):
                        setattr(perm, oper[v], True)
                    else:
                        setattr(perm, oper[v], False)

                save_to_db(perm, 'Permission saved')
Esempio n. 9
0
    def test_delete_role_permission_ok_response(self, mock_role_repo_update,
                                                mock_permission_repo_get):
        '''Test delete_role_permission OK response.
        '''
        # Arrange
        with self.app.app_context():
            mock_permission = Permission(id=1,
                                         created_at=datetime.now(),
                                         updated_at=datetime.now(),
                                         role_id=1,
                                         name='Mock permission',
                                         keyword='mock')
            mock_permission_repo_get.return_value = mock_permission
            mock_role_repo_update.return_value = self.mock_role
            role_controler = RoleController(self.request_context)

            # Act
            result = role_controler.delete_role_permission(1)

            # Assert
            assert result.status_code == 200
            assert result.get_json()['msg'] == 'permission deleted'
Esempio n. 10
0
    def test_get_role_permissions_ok_response(
            self, mock_permission_repo_get_unpaginated):
        '''Test get_role_permissions OK response.
        '''
        # Arrange
        mock_permission = Permission(id=1,
                                     created_at=datetime.now(),
                                     updated_at=datetime.now(),
                                     role_id=1,
                                     name='Mock permission',
                                     keyword='mock')
        mock_permission_repo_get_unpaginated.return_value = [
            mock_permission,
        ]
        role_controller = RoleController(self.request_context)

        # Act
        result = role_controller.get_role_permissions(1)

        # Assert
        assert result.status_code == 200
        assert result.get_json()['msg'] == 'OK'
Esempio n. 11
0
    def test_create_role_permission_when_permission_already_exists(
            self, mock_permission_repo_get_unpaginated,
            mock_role_controller_request_params):
        '''Test create_role_permission when permission already exists.
        '''
        # Arrange
        with self.app.app_context():
            mock_permission = Permission(id=1,
                                         created_at=datetime.now(),
                                         updated_at=datetime.now(),
                                         role_id=1,
                                         name='Mock permission',
                                         keyword='mock')
            mock_role_controller_request_params.return_value = (1, 'name',
                                                                'keyword')
            mock_permission_repo_get_unpaginated.return_value = mock_permission
            role_controler = RoleController(self.request_context)

            # Act
            result = role_controler.create_role_permission()

            # Assert
            assert result.status_code == 400
            assert result.get_json()['msg'] == 'This permission already exists'
Esempio n. 12
0
    def test_create_role_permission_when_permission_already_exists(
        self, mock_permission_repo_get_unpaginated, mock_role_controller_request_params
    ):
        """Test create_role_permission when permission already exists."""
        # Arrange
        with self.app.app_context():
            mock_permission = Permission(
                id=1,
                created_at=datetime.now(),
                updated_at=datetime.now(),
                role_id=1,
                name="Mock permission",
                keyword="mock",
            )
            mock_role_controller_request_params.return_value = (1, "name", "keyword")
            mock_permission_repo_get_unpaginated.return_value = mock_permission
            role_controler = RoleController(self.request_context)

            # Act
            result = role_controler.create_role_permission()

            # Assert
            assert result.status_code == 400
            assert result.get_json()["msg"] == "This permission already exists"
Esempio n. 13
0
 def new_permission(self, role_id, name, keyword):
     perm = Permission(role_id=role_id, name=name, keyword=keyword)
     perm.save()
     return perm
Esempio n. 14
0
    def create_permission(self, role_id, name, keyword):
        permission = Permission(role_id=role_id, name=name, keyword=keyword)

        permission.save()
        return permission
Esempio n. 15
0
 def setUp(self):
     self.edit_perm = Permission("Edit")
Esempio n. 16
0
def seed_permission():
    permissions = ['VIEW_USERS', 'CREATE_USER']
    for permission in permissions:
        permission = Permission(permission=permission)
        db.save_to_db(permission)