Projet

Général

Profil

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

Benjamin Dauvergne, 19 mai 2015 15:34

Télécharger (1,6 ko)

Voir les différences:

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

 wcs/qommon/saml2.py | 20 ++++++++++++++++++++
 1 file changed, 20 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
            for slug in m['role-slug']:
472
                role = Role.get_on_index(slug, 'slug', ignore_errors=True)
473
                if not role:
474
                    continue
475
                role_ids.append(role.id)
476
            if set(user.roles) != set(role_ids):
477
                user.roles = role_ids
478
                save = True
479
        else:
480
            sp_cfg = get_cfg('sp', {})
481
            if sp_cfg.get('idp-manage-user-attributes') and user.roles:
482
                user.roles = []
483
                save = True
484

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

  
468
-