Ignore:
Timestamp:
27 Aug 2015, 08:37:25 (9 years ago)
Author:
Henrik Bettermann
Message:

Do also remove old student ids.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.kofa/trunk/src/waeup/kofa/applicants/root.py

    r13226 r13233  
    9797            #    logger.info(
    9898            #        '%s: description_dict added to root.' % self.log_prefix)
     99
     100            # Add container_code index
    99101            try:
    100102                cat = getUtility(ICatalog, name='applicants_catalog')
     
    109111                pass
    110112
     113            # Remove old applicant ids from global role map.
    111114            try:
    112115                removed_applicant_ids = []
     
    128131                        '%s: %s removed from global role map.'
    129132                        % (self.log_prefix, removed_applicant_ids))
     133            except ComponentLookupError: # in unit tests
     134                pass
     135
     136            # Remove old student ids from global role map.
     137            try:
     138                removed_student_ids = []
     139                cat = getUtility(ICatalog, name='students_catalog')
     140                role_manager = IPrincipalRoleManager(grok.getSite())
     141                principals = role_manager.getPrincipalsForRole('waeup.Student')
     142                for principal in principals:
     143                    student_id = principal[0]
     144                    results = cat.searchResults(student_id=(student_id, student_id))
     145                    if len(results):
     146                        continue
     147                    # The student does no longer exist.
     148                    nothing_to_do = False
     149                    role_manager.unsetRoleForPrincipal(
     150                        'waeup.Student', student_id)
     151                    removed_student_ids.append(student_id)
     152                if len(removed_student_ids):
     153                    logger.info(
     154                        '%s: %s removed from global role map.'
     155                        % (self.log_prefix, removed_student_ids))
    130156            except ComponentLookupError: # in unit tests
    131157                pass
Note: See TracChangeset for help on using the changeset viewer.