Moved user_to_dict() function out of pillar.web.jinja module

This commit is contained in:
2019-05-31 10:23:25 +02:00
parent 3705b60f25
commit e57ec4bede
2 changed files with 18 additions and 18 deletions

View File

@@ -163,6 +163,20 @@ class UserClass(flask_login.UserMixin):
return bool(self._has_organizations) return bool(self._has_organizations)
def frontend_info(self) -> dict:
"""Return a dictionary of user info for injecting into the page."""
return {
'user_id': str(self.user_id),
'username': self.username,
'full_name': self.full_name,
'gravatar': self.gravatar,
'email': self.email,
'capabilities': list(self.capabilities),
'badges_html': self.badges_html,
'is_authenticated': self.is_authenticated,
}
class AnonymousUser(flask_login.AnonymousUserMixin, UserClass): class AnonymousUser(flask_login.AnonymousUserMixin, UserClass):
def __init__(self): def __init__(self):

View File

@@ -1,7 +1,6 @@
"""Our custom Jinja filters and other template stuff.""" """Our custom Jinja filters and other template stuff."""
import functools import functools
import json
import logging import logging
import typing import typing
import urllib.parse import urllib.parse
@@ -212,29 +211,16 @@ def do_yesno(value, arg=None):
return no return no
def user_to_dict(user: auth.UserClass) -> dict: def do_json(some_object: typing.Any) -> str:
return dict(
user_id=str(user.user_id),
username=user.username,
full_name=user.full_name,
gravatar=user.gravatar,
email=user.email,
capabilities=list(user.capabilities),
badges_html=user.badges_html,
is_authenticated=user.is_authenticated
)
def do_json(some_object) -> str:
import pillar.auth import pillar.auth
if isinstance(some_object, LocalProxy): if isinstance(some_object, LocalProxy):
return do_json(some_object._get_current_object()) return do_json(some_object._get_current_object())
if isinstance(some_object, pillarsdk.Resource): if isinstance(some_object, pillarsdk.Resource):
some_object = some_object.to_dict() some_object = some_object.to_dict()
if isinstance(some_object, auth.UserClass): if isinstance(some_object, pillar.auth.UserClass):
some_object = user_to_dict(some_object) some_object = some_object.frontend_info()
return json.dumps(some_object) return pillar.api.utils.dumps(some_object)
def setup_jinja_env(jinja_env, app_config: dict): def setup_jinja_env(jinja_env, app_config: dict):