def downgrade(active_plugins=None, options=None):
    op.add_column(u'worklists', sa.Column('permission_id',
                  mysql.INTEGER(display_width=11), autoincrement=False,
                  nullable=True))
    op.create_foreign_key(u'worklists_ibfk_2', 'worklists', 'permissions',
                          ['permission_id'], ['id'])
    op.add_column(u'boards', sa.Column('permission_id',
                  mysql.INTEGER(display_width=11), autoincrement=False,
                  nullable=True))
    op.create_foreign_key(u'boards_ibfk_2', 'boards', 'permissions',
                          ['permission_id'], ['id'])

    session = api_base.get_session(in_request=False)
    to_delete = []
    for board in boards.get_all(session=session):
        for permission in board.permissions:
            to_delete.append(permission)

    for worklist in worklists.get_all(session=session):
        for permission in worklist.permissions:
            to_delete.append(permission)

    op.drop_table('worklist_permissions')
    op.drop_table('board_permissions')

    for permission in to_delete:
        api_base.entity_hard_delete(
            models.Permission, permission.id, session=session)
Exemplo n.º 2
0
def downgrade(active_plugins=None, options=None):
    op.add_column(
        u'worklists',
        sa.Column('permission_id',
                  mysql.INTEGER(display_width=11),
                  autoincrement=False,
                  nullable=True))
    op.create_foreign_key(u'worklists_ibfk_2', 'worklists', 'permissions',
                          ['permission_id'], ['id'])
    op.add_column(
        u'boards',
        sa.Column('permission_id',
                  mysql.INTEGER(display_width=11),
                  autoincrement=False,
                  nullable=True))
    op.create_foreign_key(u'boards_ibfk_2', 'boards', 'permissions',
                          ['permission_id'], ['id'])

    session = api_base.get_session(in_request=False)
    to_delete = []
    for board in boards.get_all(session=session):
        for permission in board.permissions:
            to_delete.append(permission)

    for worklist in worklists.get_all(session=session):
        for permission in worklist.permissions:
            to_delete.append(permission)

    op.drop_table('worklist_permissions')
    op.drop_table('board_permissions')

    for permission in to_delete:
        api_base.entity_hard_delete(models.Permission,
                                    permission.id,
                                    session=session)
Exemplo n.º 3
0
def user_update_preferences(user_id, preferences):
    for key in preferences:
        value = preferences[key]
        prefs = api_base.entity_get_all(models.UserPreference,
                                        user_id=user_id,
                                        key=key)

        if prefs:
            pref = prefs[0]
        else:
            pref = None

        # If the preference exists and it's null.
        if pref and value is None:
            api_base.entity_hard_delete(models.UserPreference, pref.id)
            continue

        # If the preference exists and has a new value.
        if pref and value and pref.cast_value != value:
            pref.cast_value = value
            api_base.entity_update(models.UserPreference, pref.id, dict(pref))
            continue

        # If the preference does not exist and a new value exists.
        if not pref and value:
            api_base.entity_create(models.UserPreference, {
                'user_id': user_id,
                'key': key,
                'cast_value': value
            })

    return user_get_preferences(user_id)
Exemplo n.º 4
0
def task_delete(task_id):
    task = task_get(task_id)

    if task:
        stories_api.story_update_updated_at(task.story_id)
        # Update updated_at in projects when task/story is deleted
        projects_api.project_update_updated_at(task.project_id)
        api_base.entity_hard_delete(models.Task, task_id)
Exemplo n.º 5
0
def team_delete(team_id):
    team = team_get(team_id)

    if not team:
        raise exc.NotFound(_('Team not found.'))

    if len(team.users) > 0:
        raise exc.NotEmpty(_('Team must be empty.'))

    api_base.entity_hard_delete(models.Team, team_id)
Exemplo n.º 6
0
def team_delete(team_id):
    team = team_get(team_id)

    if not team:
        raise exc.NotFound(_('Team not found.'))

    if len(team.users) > 0:
        raise exc.NotEmpty(_('Team must be empty.'))

    api_base.entity_hard_delete(models.Team, team_id)
Exemplo n.º 7
0
def project_group_delete(project_group_id):
    project_group = project_group_get(project_group_id)

    if not project_group:
        raise exc.NotFound(_('Project group not found.'))

    if len(project_group.projects) > 0:
        raise exc.NotEmpty(_('Project group must be empty.'))

    api_base.entity_hard_delete(models.ProjectGroup, project_group_id)
Exemplo n.º 8
0
def project_group_delete(project_group_id):
    project_group = project_group_get(project_group_id)

    if not project_group:
        raise exc.NotFound(_('Project group not found.'))

    if len(project_group.projects) > 0:
        raise exc.NotEmpty(_('Project group must be empty.'))

    api_base.entity_hard_delete(models.ProjectGroup, project_group_id)
Exemplo n.º 9
0
    def testSimpleGroupMigration(self):

        # Clear out previous projects.
        for project in api_base.entity_get_all(Project):
            api_base.entity_hard_delete(Project, project.id)

        projects_loader.do_load_models('./etc/projects.yaml.sample')

        all_groups = api_base.entity_get_all(ProjectGroup)
        all_projects = api_base.entity_get_all(Project)
        self.assertEqual(3, len(all_groups))
        self.assertEqual(2, len(all_projects))

        for project in all_projects:
            branches = api_base.entity_get_count(Branch,
                                                 project_id=project.id,
                                                 name='master')
            self.assertEqual(1, branches)
    def testSimpleGroupMigration(self):

        # Clear out previous projects.
        for project in api_base.entity_get_all(Project):
            api_base.entity_hard_delete(Project, project.id)

        projects_loader.do_load_models('./etc/projects.yaml.sample')

        all_groups = api_base.entity_get_all(ProjectGroup)
        all_projects = api_base.entity_get_all(Project)
        self.assertEqual(3, len(all_groups))
        self.assertEqual(2, len(all_projects))

        for project in all_projects:
            branches = api_base.entity_get_count(Branch,
                                                 project_id=project.id,
                                                 name='master')
            self.assertEqual(1, branches)
Exemplo n.º 11
0
    def handle_deletions(self, session, resource_name, resource_id):
        target_subs = []
        sub_ids = set()
        resource_name = resource_name[:-1]

        target_sub = db_api.entity_get_all(models.Subscription,
                                           target_type=resource_name,
                                           target_id=resource_id,
                                           session=session)
        target_subs.extend(target_sub)

        for sub in target_subs:
            sub_ids.add(sub.id)

        for sub_id in sub_ids:
            db_api.entity_hard_delete(models.Subscription,
                                      sub_id,
                                      session=session)
Exemplo n.º 12
0
    def handle_deletions(self, session, resource_name, resource_id):
        target_subs = []
        sub_ids = set()
        resource_name = resource_name[:-1]

        target_sub = db_api.entity_get_all(models.Subscription,
                                           target_type=resource_name,
                                           target_id=resource_id,
                                           session=session)
        target_subs.extend(target_sub)

        for sub in target_subs:
            sub_ids.add(sub.id)

        for sub_id in sub_ids:
            db_api.entity_hard_delete(models.Subscription,
                                      sub_id,
                                      session=session)
Exemplo n.º 13
0
def user_update_preferences(user_id, preferences):
    for key in preferences:
        value = preferences[key]
        prefs = api_base.entity_get_all(models.UserPreference,
                                        user_id=user_id,
                                        key=key)

        matching_prefs = []
        if prefs:
            for p in prefs:
                if p.key == key:
                    # FIXME: We create a list here because there appears to
                    # currently be a bug which means that each preference may
                    # appear more than once per-user. We should fix that once
                    # we discover the cause.
                    matching_prefs.append(p)
        else:
            pref = None

        for pref in matching_prefs:
            # If the preference exists and it's null.
            if pref and value is None:
                api_base.entity_hard_delete(models.UserPreference, pref.id)
                continue

            # If the preference exists and has a new value.
            if pref and value is not None and pref.cast_value != value:
                pref.cast_value = value
                api_base.entity_update(
                    models.UserPreference, pref.id, dict(pref))
                continue

        # If the preference does not exist and a new value exists.
        if not matching_prefs and value is not None:
            api_base.entity_create(models.UserPreference, {
                'user_id': user_id,
                'key': key,
                'cast_value': value
            })

    return user_get_preferences(user_id)
Exemplo n.º 14
0
def user_update_preferences(user_id, preferences):
    for key in preferences:
        value = preferences[key]
        prefs = api_base.entity_get_all(models.UserPreference,
                                        user_id=user_id,
                                        key=key)

        matching_prefs = []
        if prefs:
            for p in prefs:
                if p.key == key:
                    # FIXME: We create a list here because there appears to
                    # currently be a bug which means that each preference may
                    # appear more than once per-user. We should fix that once
                    # we discover the cause.
                    matching_prefs.append(p)
        else:
            pref = None

        for pref in matching_prefs:
            # If the preference exists and it's null.
            if pref and value is None:
                api_base.entity_hard_delete(models.UserPreference, pref.id)
                continue

            # If the preference exists and has a new value.
            if pref and value is not None and pref.cast_value != value:
                pref.cast_value = value
                api_base.entity_update(
                    models.UserPreference, pref.id, dict(pref))
                continue

        # If the preference does not exist and a new value exists.
        if not matching_prefs and value is not None:
            api_base.entity_create(models.UserPreference, {
                'user_id': user_id,
                'key': key,
                'cast_value': value
            })

    return user_get_preferences(user_id)
Exemplo n.º 15
0
def task_delete(task_id):
    task = task_get(task_id)

    if task:
        stories_api.story_update_updated_at(task.story_id)
        api_base.entity_hard_delete(models.Task, task_id)
Exemplo n.º 16
0
def task_delete(task_id):
    task = task_get(task_id)

    if task:
        api_base.entity_hard_delete(models.Task, task_id)
Exemplo n.º 17
0
def authorization_code_delete(code):
    del_code = authorization_code_get(code)

    if del_code:
        api_base.entity_hard_delete(models.AuthorizationCode, del_code.id)
Exemplo n.º 18
0
def delete_filter(filter_id):
    filter = api_base.entity_get(models.WorklistFilter, filter_id)
    for criterion in filter.criteria:
        api_base.entity_hard_delete(models.FilterCriterion, criterion.id)
    api_base.entity_hard_delete(models.WorklistFilter, filter_id)
Exemplo n.º 19
0
def story_delete(story_id, current_user=None):
    story = story_get(story_id, current_user=current_user)

    if story:
        api_base.entity_hard_delete(models.Story, story_id)
Exemplo n.º 20
0
def subscription_delete(subscription_id):
    subscription = subscription_get(subscription_id)

    if subscription:
        api_base.entity_hard_delete(models.Subscription, subscription_id)
Exemplo n.º 21
0
def authorization_code_delete(code):
    del_code = authorization_code_get(code)

    if del_code:
        api_base.entity_hard_delete(models.AuthorizationCode, del_code.id)
Exemplo n.º 22
0
def subscription_events_delete(subscription_event_id):
    subscription = subscription_events_get(subscription_event_id)

    if subscription:
        api_base.entity_hard_delete(models.SubscriptionEvents,
                                    subscription_event_id)
Exemplo n.º 23
0
def story_delete(story_id):
    story = story_get(story_id)

    if story:
        api_base.entity_hard_delete(models.Story, story_id)
Exemplo n.º 24
0
def delete_filter(filter_id):
    filter = api_base.entity_get(models.WorklistFilter, filter_id)
    for criterion in filter.criteria:
        api_base.entity_hard_delete(models.FilterCriterion, criterion.id)
    api_base.entity_hard_delete(models.WorklistFilter, filter_id)
Exemplo n.º 25
0
def story_delete(story_id, current_user=None):
    story = story_get(story_id, current_user=current_user)

    if story:
        api_base.entity_hard_delete(models.Story, story_id)
Exemplo n.º 26
0
def subscription_delete(subscription_id):
    subscription = subscription_get(subscription_id)

    if subscription:
        api_base.entity_hard_delete(models.Subscription, subscription_id)