0001-saml2-set-user-roles-from-the-SAML-attribute-role-sl.patch
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 |
- |