Projet

Général

Profil

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

Benjamin Dauvergne, 19 mai 2015 15:53

Télécharger (1,5 ko)

Voir les différences:

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

 wcs/qommon/saml2.py | 17 +++++++++++++++++
 1 file changed, 17 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
                    continue
475
                role_ids.append(str(role.id))
476
                names.append(role.name)
477
            if set(user.roles) != set(role_ids):
478
                user.roles = role_ids
479
                logger.info('enroling user %s in %s', user.id, ', '.join(names))
480
                save = True
481

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

  
468
-