misc: add $prefix_user_nameid variable (#41463)

This commit is contained in:
Frédéric Péters 2020-04-08 16:15:56 +02:00
parent 500793ee46
commit 4be26e7d16
3 changed files with 31 additions and 1 deletions

View File

@ -11,6 +11,7 @@ from quixote import cleanup
from wcs import publisher
from wcs import fields
from wcs.variables import LazyUser
from utilities import create_temporary_pub
@ -42,6 +43,25 @@ def test_get_users_with_name_identifier():
assert pub.user_class.get_users_with_name_identifier('foo')[0].name == 'Pierre'
def test_user_substitution_variables():
pub.user_class.wipe()
user = pub.user_class()
user.name = 'Pierre'
user.email = 'test@example.net'
user.name_identifiers = ['foo']
user.store()
assert user.get_substitution_variables().get('session_user_display_name') == 'Pierre'
assert user.get_substitution_variables().get('session_user_nameid') == 'foo'
assert user.get_substitution_variables().get('session_user_email') == 'test@example.net'
lazy_user = LazyUser(user)
assert lazy_user.email == user.email
assert lazy_user.nameid == user.name_identifiers[0]
assert lazy_user.display_name == user.name
def test_get_users_with_role():
pub.user_class.wipe()

View File

@ -88,6 +88,10 @@ class User(StorableObject):
return _('Unknown User')
display_name = property(get_display_name)
@property
def nameid(self):
return self.name_identifiers[0] if self.name_identifiers else None
def get_roles(self):
return (self.roles or [])
@ -181,6 +185,8 @@ class User(StorableObject):
d[prefix + 'user_admin_access'] = self.can_go_in_admin()
d[prefix + 'user_backoffice_access'] = self.can_go_in_backoffice()
for i, name_identifier in enumerate(self.name_identifiers):
if i == 0:
d[prefix + 'user_nameid'] = name_identifier
d[prefix + 'user_name_identifier_%d' % i] = name_identifier
return d

View File

@ -772,7 +772,7 @@ class LazyUser(object):
self._user = user
def inspect_keys(self):
return ['display_name', 'email', 'var']
return ['display_name', 'email', 'var', 'nameid']
@property
def display_name(self):
@ -801,6 +801,10 @@ class LazyUser(object):
d[str(i)] = name_identifier
return d
@property
def nameid(self):
return self._user.nameid
def __getitem__(self, key):
return getattr(self, key)