Projet

Général

Profil

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

Benjamin Dauvergne, 19 mai 2015 15:51

Télécharger (1,61 ko)

Voir les différences:

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

 wcs/qommon/saml2.py | 19 +++++++++++++++++++
 1 file changed, 19 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 or wipe them if
468
        # idp-manage-user-attributes is True
469
        if 'role-slug' in m:
470
            role_ids = []
471
            roles = []
472
            for slug in m['role-slug']:
473
                role = Role.get_on_index(slug, 'slug', ignore_errors=True)
474
                if not role:
475
                    continue
476
                role_ids.append(str(role.id))
477
                roles.append(role)
478
            if set(user.roles) != set(role_ids):
479
                user.roles = role_ids
480
                role_list = ', '.join(role.name for role in roles)
481
                logger.info('enroling user %s in %s', user.id, role_list)
482
                save = True
483

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

  
468
-