def _getBranchVisibilityExpression(self, branch_class=Branch): """Return the where clauses for visibility. :param branch_class: The Branch class to use - permits using ClassAliases. """ return get_branch_privacy_filter(self._user, branch_class=branch_class)
def _getBranchVisibilityExpression(self, branch_class=Branch): """Return the where clauses for visibility. :param branch_class: The Branch class to use - permits using ClassAliases. """ return get_branch_privacy_filter(self._user, branch_class=branch_class)
def run(self): """See `IRemoveArtifactSubscriptionsJob`.""" logger = logging.getLogger() logger.info(self.getOperationDescription()) bug_filters = [] branch_filters = [] specification_filters = [] if self.branch_ids: branch_filters.append(Branch.id.is_in(self.branch_ids)) if self.specification_ids: specification_filters.append(Specification.id.is_in(self.specification_ids)) if self.bug_ids: bug_filters.append(BugTaskFlat.bug_id.is_in(self.bug_ids)) else: if self.information_types: bug_filters.append(BugTaskFlat.information_type.is_in(self.information_types)) branch_filters.append(Branch.information_type.is_in(self.information_types)) specification_filters.append(Specification.information_type.is_in(self.information_types)) if self.product: bug_filters.append(BugTaskFlat.product == self.product) branch_filters.append(Branch.product == self.product) specification_filters.append(Specification.product == self.product) if self.distro: bug_filters.append(BugTaskFlat.distribution == self.distro) branch_filters.append(Branch.distribution == self.distro) specification_filters.append(Specification.distribution == self.distro) if self.grantee: bug_filters.append( In( BugSubscription.person_id, Select(TeamParticipation.personID, where=TeamParticipation.team == self.grantee), ) ) branch_filters.append( In( BranchSubscription.personID, Select(TeamParticipation.personID, where=TeamParticipation.team == self.grantee), ) ) specification_filters.append( In( SpecificationSubscription.personID, Select(TeamParticipation.personID, where=TeamParticipation.team == self.grantee), ) ) if bug_filters: bug_filters.append(Not(Or(*get_bug_privacy_filter_terms(BugSubscription.person_id)))) bug_subscriptions = ( IStore(BugSubscription) .using(BugSubscription, Join(BugTaskFlat, BugTaskFlat.bug_id == BugSubscription.bug_id)) .find(BugSubscription, *bug_filters) .config(distinct=True) ) for sub in bug_subscriptions: sub.bug.unsubscribe(sub.person, self.requestor, ignore_permissions=True) if branch_filters: branch_filters.append(Not(Or(*get_branch_privacy_filter(BranchSubscription.personID)))) branch_subscriptions = ( IStore(BranchSubscription) .using(BranchSubscription, Join(Branch, Branch.id == BranchSubscription.branchID)) .find(BranchSubscription, *branch_filters) .config(distinct=True) ) for sub in branch_subscriptions: sub.branch.unsubscribe(sub.person, self.requestor, ignore_permissions=True) if specification_filters: specification_filters.append(Not(*get_specification_privacy_filter(SpecificationSubscription.personID))) tables = ( SpecificationSubscription, Join(Specification, Specification.id == SpecificationSubscription.specificationID), ) specifications_subscriptions = ( IStore(SpecificationSubscription) .using(*tables) .find(SpecificationSubscription, *specification_filters) .config(distinct=True) ) for sub in specifications_subscriptions: sub.specification.unsubscribe(sub.person, self.requestor, ignore_permissions=True)
def _getBranchVisibilityExpression(self, branch_class=Branch): """Return the where clauses for visibility.""" return get_branch_privacy_filter(None, branch_class=branch_class)
def _getBranchVisibilityExpression(self, branch_class=Branch): """Return the where clauses for visibility.""" return get_branch_privacy_filter(None, branch_class=branch_class)
def run(self): """See `IRemoveArtifactSubscriptionsJob`.""" logger = logging.getLogger() logger.info(self.getOperationDescription()) bug_filters = [] branch_filters = [] specification_filters = [] if self.branch_ids: branch_filters.append(Branch.id.is_in(self.branch_ids)) if self.specification_ids: specification_filters.append( Specification.id.is_in(self.specification_ids)) if self.bug_ids: bug_filters.append(BugTaskFlat.bug_id.is_in(self.bug_ids)) else: if self.information_types: bug_filters.append( BugTaskFlat.information_type.is_in(self.information_types)) branch_filters.append( Branch.information_type.is_in(self.information_types)) specification_filters.append( Specification.information_type.is_in( self.information_types)) if self.product: bug_filters.append(BugTaskFlat.product == self.product) branch_filters.append(Branch.product == self.product) specification_filters.append( Specification.product == self.product) if self.distro: bug_filters.append(BugTaskFlat.distribution == self.distro) branch_filters.append(Branch.distribution == self.distro) specification_filters.append( Specification.distribution == self.distro) if self.grantee: bug_filters.append( In( BugSubscription.person_id, Select(TeamParticipation.personID, where=TeamParticipation.team == self.grantee))) branch_filters.append( In( BranchSubscription.personID, Select(TeamParticipation.personID, where=TeamParticipation.team == self.grantee))) specification_filters.append( In( SpecificationSubscription.personID, Select(TeamParticipation.personID, where=TeamParticipation.team == self.grantee))) if bug_filters: bug_filters.append( Not( Or(*get_bug_privacy_filter_terms( BugSubscription.person_id)))) bug_subscriptions = IStore(BugSubscription).using( BugSubscription, Join(BugTaskFlat, BugTaskFlat.bug_id == BugSubscription.bug_id)).find( BugSubscription, *bug_filters).config(distinct=True) for sub in bug_subscriptions: sub.bug.unsubscribe(sub.person, self.requestor, ignore_permissions=True) if branch_filters: branch_filters.append( Not(Or( *get_branch_privacy_filter(BranchSubscription.personID)))) branch_subscriptions = IStore(BranchSubscription).using( BranchSubscription, Join(Branch, Branch.id == BranchSubscription.branchID)).find( BranchSubscription, *branch_filters).config(distinct=True) for sub in branch_subscriptions: sub.branch.unsubscribe(sub.person, self.requestor, ignore_permissions=True) if specification_filters: specification_filters.append( Not(*get_specification_privacy_filter( SpecificationSubscription.personID))) tables = (SpecificationSubscription, Join( Specification, Specification.id == SpecificationSubscription.specificationID)) specifications_subscriptions = IStore( SpecificationSubscription).using(*tables).find( SpecificationSubscription, *specification_filters).config(distinct=True) for sub in specifications_subscriptions: sub.specification.unsubscribe(sub.person, self.requestor, ignore_permissions=True)