def upgrade(active_plugins=None, options=None): op.create_table('board_permissions', sa.Column('board_id', sa.Integer(), nullable=True), sa.Column('permission_id', sa.Integer(), nullable=True), sa.ForeignKeyConstraint(['board_id'], ['boards.id'], ), sa.ForeignKeyConstraint(['permission_id'], ['permissions.id'], ) ) op.create_table('worklist_permissions', sa.Column('worklist_id', sa.Integer(), nullable=True), sa.Column('permission_id', sa.Integer(), nullable=True), sa.ForeignKeyConstraint(['permission_id'], ['permissions.id'], ), sa.ForeignKeyConstraint(['worklist_id'], ['worklists.id'], ) ) session = api_base.get_session(in_request=False) for board in boards.get_all(session=session): edit_permission = { 'name': 'edit_board_%d' % board.id, 'codename': 'edit_board', 'users': [board.creator_id] } move_permission = { 'name': 'move_cards_%d' % board.id, 'codename': 'move_cards', 'users': [] } print('Creating permissions for Board with id: %d' % board.id) boards.create_permission(board.id, edit_permission, session=session) boards.create_permission(board.id, move_permission, session=session) for worklist in worklists.get_all(session=session): edit_permission = { 'name': 'edit_worklist_%d' % worklist.id, 'codename': 'edit_worklist', 'users': [worklist.creator_id] } move_permission = { 'name': 'move_items_%d' % worklist.id, 'codename': 'move_items', 'users': [] } print('Creating permissions for Worklist with id: %d' % worklist.id) worklists.create_permission( worklist.id, edit_permission, session=session) worklists.create_permission( worklist.id, move_permission, session=session) session.flush() dialect = op.get_bind().engine.dialect if dialect.supports_alter: op.drop_constraint(u'boards_ibfk_2', 'boards', type_='foreignkey') op.drop_column(u'boards', 'permission_id') op.drop_constraint(u'worklists_ibfk_2', 'worklists', type_='foreignkey') op.drop_column(u'worklists', 'permission_id')
def upgrade(active_plugins=None, options=None): op.create_table('board_permissions', sa.Column('board_id', sa.Integer(), nullable=True), sa.Column('permission_id', sa.Integer(), nullable=True), sa.ForeignKeyConstraint(['board_id'], ['boards.id'], ), sa.ForeignKeyConstraint(['permission_id'], ['permissions.id'], ) ) op.create_table('worklist_permissions', sa.Column('worklist_id', sa.Integer(), nullable=True), sa.Column('permission_id', sa.Integer(), nullable=True), sa.ForeignKeyConstraint(['permission_id'], ['permissions.id'], ), sa.ForeignKeyConstraint(['worklist_id'], ['worklists.id'], ) ) session = api_base.get_session(in_request=False) for board in boards.get_all(session=session): edit_permission = { 'name': 'edit_board_%d' % board.id, 'codename': 'edit_board', 'users': [board.creator_id] } move_permission = { 'name': 'move_cards_%d' % board.id, 'codename': 'move_cards', 'users': [] } print('Creating permissions for Board with id: %d' % board.id) boards.create_permission(board.id, edit_permission, session=session) boards.create_permission(board.id, move_permission, session=session) for worklist in worklists.get_all(session=session): edit_permission = { 'name': 'edit_worklist_%d' % worklist.id, 'codename': 'edit_worklist', 'users': [worklist.creator_id] } move_permission = { 'name': 'move_items_%d' % worklist.id, 'codename': 'move_items', 'users': [] } print('Creating permissions for Worklist with id: %d' % worklist.id) worklists.create_permission( worklist.id, edit_permission, session=session) worklists.create_permission( worklist.id, move_permission, session=session) session.flush() op.drop_constraint(u'boards_ibfk_2', 'boards', type_='foreignkey') op.drop_column(u'boards', 'permission_id') op.drop_constraint(u'worklists_ibfk_2', 'worklists', type_='foreignkey') op.drop_column(u'worklists', 'permission_id')
def post(self, worklist_id, permission): """Add a new permission to the worklist. Example:: TODO :param worklist_id: The ID of the worklist. :param permission: The dict to use to create the permission. """ user_id = request.current_user_id if worklists_api.editable(worklists_api.get(worklist_id), user_id): created = worklists_api.create_permission(worklist_id, permission) users = [{user.id: user.full_name} for user in created.users] events_api.worklist_permission_created_event(worklist_id, user_id, created.id, created.codename, users) return created.codename else: raise exc.NotFound(_("Worklist %s not found") % worklist_id)
def post(self, worklist): """Create a new worklist. :param worklist: A worklist within the request body. """ worklist_dict = worklist.as_dict() user_id = request.current_user_id if worklist.creator_id and worklist.creator_id != user_id: abort(400, _("You can't select the creator of a worklist.")) worklist_dict.update({"creator_id": user_id}) if 'items' in worklist_dict: del worklist_dict['items'] filters = worklist_dict.pop('filters') owners = worklist_dict.pop('owners') users = worklist_dict.pop('users') if not owners: owners = [user_id] if not users: users = [] created_worklist = worklists_api.create(worklist_dict) edit_permission = { 'name': 'edit_worklist_%d' % created_worklist.id, 'codename': 'edit_worklist', 'users': owners } move_permission = { 'name': 'move_items_%d' % created_worklist.id, 'codename': 'move_items', 'users': users } worklists_api.create_permission(created_worklist.id, edit_permission) worklists_api.create_permission(created_worklist.id, move_permission) if worklist_dict['automatic']: for filter in filters: worklists_api.create_filter(created_worklist.id, filter.as_dict()) return wmodels.Worklist.from_db_model(created_worklist)
def post(self, worklist_id, permission): """Add a new permission to the worklist. :param worklist_id: The ID of the worklist. :param permission: The dict to use to create the permission. """ if worklists_api.editable(worklists_api.get(worklist_id), request.current_user_id): return worklists_api.create_permission(worklist_id) else: raise exc.NotFound(_("Worklist %s not found") % worklist_id)
def post(self, worklist): """Create a new worklist. :param worklist: A worklist within the request body. """ worklist_dict = worklist.as_dict() user_id = request.current_user_id if worklist.creator_id and worklist.creator_id != user_id: abort(400, _("You can't select the creator of a worklist.")) worklist_dict.update({"creator_id": user_id}) if "items" in worklist_dict: del worklist_dict["items"] filters = worklist_dict.pop("filters") owners = worklist_dict.pop("owners") users = worklist_dict.pop("users") if not owners: owners = [user_id] if not users: users = [] created_worklist = worklists_api.create(worklist_dict) edit_permission = { "name": "edit_worklist_%d" % created_worklist.id, "codename": "edit_worklist", "users": owners, } move_permission = {"name": "move_items_%d" % created_worklist.id, "codename": "move_items", "users": users} worklists_api.create_permission(created_worklist.id, edit_permission) worklists_api.create_permission(created_worklist.id, move_permission) if worklist_dict["automatic"]: for filter in filters: worklists_api.create_filter(created_worklist.id, filter.as_dict()) return wmodels.Worklist.from_db_model(created_worklist)
def post(self, worklist_id, permission): """Add a new permission to the worklist. Example:: TODO :param worklist_id: The ID of the worklist. :param permission: The dict to use to create the permission. """ user_id = request.current_user_id if worklists_api.editable(worklists_api.get(worklist_id), user_id): created = worklists_api.create_permission(worklist_id, permission) users = [{user.id: user.full_name} for user in created.users] events_api.worklist_permission_created_event( worklist_id, user_id, created.id, created.codename, users) return created.codename else: raise exc.NotFound(_("Worklist %s not found") % worklist_id)
def post(self, worklist): """Create a new worklist. Example:: curl https://my.example.org/api/v1/worklists \\ -H 'Authorization: Bearer MY_ACCESS_TOKEN' \\ -H 'Content-Type: application/json;charset=UTF-8' \\ --data-binary '{"title":"create worklist via api"}' :param worklist: A worklist within the request body. """ worklist_dict = worklist.as_dict() user_id = request.current_user_id if worklist.creator_id and worklist.creator_id != user_id: abort(400, _("You can't select the creator of a worklist.")) worklist_dict.update({"creator_id": user_id}) if 'items' in worklist_dict: del worklist_dict['items'] filters = worklist_dict.pop('filters') or [] owners = worklist_dict.pop('owners') users = worklist_dict.pop('users') if not owners: owners = [user_id] if not users: users = [] created_worklist = worklists_api.create(worklist_dict) events_api.worklist_created_event(created_worklist.id, user_id, created_worklist.title) edit_permission = { 'name': 'edit_worklist_%d' % created_worklist.id, 'codename': 'edit_worklist', 'users': owners } move_permission = { 'name': 'move_items_%d' % created_worklist.id, 'codename': 'move_items', 'users': users } edit = worklists_api.create_permission(created_worklist.id, edit_permission) move = worklists_api.create_permission(created_worklist.id, move_permission) event_owners = [{ id: users_api.user_get(id).full_name } for id in owners] event_users = [{id: users_api.user_get(id).full_name} for id in users] events_api.worklist_permission_created_event(created_worklist.id, user_id, edit.id, edit.codename, event_owners) events_api.worklist_permission_created_event(created_worklist.id, user_id, move.id, move.codename, event_users) if worklist_dict['automatic']: for filter in filters: created_filter = worklists_api.create_filter( created_worklist.id, filter.as_dict()) added = serialize_filter(created_filter) events_api.worklist_filters_changed_event(created_worklist.id, user_id, added=added) return wmodels.Worklist.from_db_model(created_worklist)
def post(self, worklist): """Create a new worklist. Example:: curl https://my.example.org/api/v1/worklists \\ -H 'Authorization: Bearer MY_ACCESS_TOKEN' \\ -H 'Content-Type: application/json;charset=UTF-8' \\ --data-binary '{"title":"create worklist via api"}' :param worklist: A worklist within the request body. """ worklist_dict = worklist.as_dict() user_id = request.current_user_id if worklist.creator_id and worklist.creator_id != user_id: abort(400, _("You can't select the creator of a worklist.")) worklist_dict.update({"creator_id": user_id}) if 'items' in worklist_dict: del worklist_dict['items'] filters = worklist_dict.pop('filters') or [] owners = worklist_dict.pop('owners') users = worklist_dict.pop('users') if not owners: owners = [user_id] if not users: users = [] created_worklist = worklists_api.create(worklist_dict) events_api.worklist_created_event(created_worklist.id, user_id, created_worklist.title) edit_permission = { 'name': 'edit_worklist_%d' % created_worklist.id, 'codename': 'edit_worklist', 'users': owners } move_permission = { 'name': 'move_items_%d' % created_worklist.id, 'codename': 'move_items', 'users': users } edit = worklists_api.create_permission( created_worklist.id, edit_permission) move = worklists_api.create_permission( created_worklist.id, move_permission) event_owners = [{id: users_api.user_get(id).full_name} for id in owners] event_users = [{id: users_api.user_get(id).full_name} for id in users] events_api.worklist_permission_created_event(created_worklist.id, user_id, edit.id, edit.codename, event_owners) events_api.worklist_permission_created_event(created_worklist.id, user_id, move.id, move.codename, event_users) if worklist_dict['automatic']: for filter in filters: created_filter = worklists_api.create_filter( created_worklist.id, filter.as_dict()) added = serialize_filter(created_filter) events_api.worklist_filters_changed_event(created_worklist.id, user_id, added=added) return wmodels.Worklist.from_db_model(created_worklist)