Projet

Général

Profil

0001-saml2-set-user-roles-from-the-SAML-attribute-role-sl.patch

Benjamin Dauvergne, 19 mai 2015 16:04

Télécharger (1,56 ko)

Voir les différences:

Subject: [PATCH] saml2: set user roles from the SAML attribute "role-slug"
 (#7281)

 wcs/qommon/saml2.py | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
wcs/qommon/saml2.py
35 35
from publisher import get_cfg, get_logger
36 36
from qommon import template
37 37
from template import error_page
38
from wcs.roles import Role
38 39

  
39 40
import errors
40 41

  
......
462 463
                user.form_data[field_id] = d[key]
463 464
                logger.info('setting field %s of user %s to value %r', field_id, user.id, d[key])
464 465
                save = True
466

  
467
        # update user roles from role-slug
468
        if 'role-slug' in m:
469
            role_ids = []
470
            names = []
471
            for slug in m['role-slug']:
472
                role = Role.get_on_index(slug, 'slug', ignore_errors=True)
473
                if not role:
474
                    logger.warn('role slug %s is unknown', slug)
475
                    continue
476
                role_ids.append(str(role.id))
477
                names.append(role.name)
478
            if set(user.roles) != set(role_ids):
479
                user.roles = role_ids
480
                logger.info('enrolling user %s in %s', user.id, ', '.join(names))
481
                save = True
482

  
465 483
        if save:
466 484
            user.store()
467 485

  
468
-