def register(self, criterion, indices): if isinstance(indices, StringType): indices = (indices,) indices = tuple(indices) if indices == (): indices = ALL_INDICES assert IATTopicCriterion.implementedBy(criterion) registerType(criterion, PROJECTNAME) crit_id = criterion.meta_type self[crit_id] = criterion self.portaltypes[criterion.portal_type] = criterion self.criterion2index[crit_id] = indices for index in indices: value = self.index2criterion.get(index, ()) self.index2criterion[index] = value + (crit_id,)
def register(self, criterion, indices): if type(indices) is StringType: indices = (indices,) indices = tuple(indices) if indices == (): indices = ALL_INDICES assert IATTopicCriterion.implementedBy(criterion) registerType(criterion, PROJECTNAME) crit_id = criterion.meta_type self[crit_id] = criterion self.portaltypes[criterion.portal_type] = criterion self.criterion2index[crit_id] = indices for index in indices: value = self.index2criterion.get(index, ()) self.index2criterion[index] = value + (crit_id,)
def wireAddPermissions(): """Creates a list of add permissions for all types in this project Must be called **after** all types are registered! """ global permissions atct_types = listTypes(PROJECTNAME) for atct in atct_types: if IATTopic.implementedBy(atct['klass']): permission = AddTopics elif IATTopicCriterion.implementedBy(atct['klass']): permission = "%s Topic: Add %s" % (PROJECTNAME, atct['portal_type']) setDefaultRoles(permission, CRITERION_ROLES) else: permission = "%s: Add %s" % (PROJECTNAME, atct['portal_type']) setDefaultRoles(permission, TYPE_ROLES) permissions[atct['portal_type']] = permission return permissions