def groups_users_add(request): """ Get list of permissions assigned to specific resources """ group = GroupService.by_id(request.matchdict.get("group_id")) user = UserService.by_user_name(request.unsafe_json_body.get("user_name")) if not user: user = UserService.by_email(request.unsafe_json_body.get("user_name")) if not group or not user: return HTTPNotFound() if user not in group.users: group.users.append(user) group.member_count = group.users_dynamic.count() props = [ "user_name", "id", "first_name", "last_name", "email", "last_login_date", "status", ] u_dict = user.get_dict(include_keys=props) u_dict["gravatar_url"] = UserService.gravatar_url(user, s=20) return u_dict
def test_gravatar_url(self, db_session): user = add_user(db_session) user.email = "*****@*****.**" assert ( UserService.gravatar_url(user) == "https://" "secure.gravatar.com/avatar/" "cbb6777e4a7ec0d96b33d2033e59fec6?d=mm" )
def gravatar_url(self, default='mm', **kwargs): """ .. deprecated:: 0.8 :param default: :param kwargs: :return: """ return UserService.gravatar_url(self, default, **kwargs)
def test_gravatar_url_with_params(self, db_session): # pylint: disable=E0401 import six.moves.urllib.parse as parser # pylint: enable=E0401 user = add_user(db_session) user.email = "[email protected]" gravatar_url = UserService.gravatar_url(user, s=100, r="pg") parsed_url = parser.urlparse(gravatar_url) qs_dict = parser.parse_qs(parsed_url.query) assert qs_dict == {"s": ["100"], "d": ["mm"], "r": ["pg"]}
def users_list(request): """ Returns users list """ props = [ "user_name", "id", "first_name", "last_name", "email", "last_login_date", "status", ] users = UserService.all() users_dicts = [] for user in users: u_dict = user.get_dict(include_keys=props) u_dict["gravatar_url"] = UserService.gravatar_url(user, s=20) users_dicts.append(u_dict) return users_dicts
def groups_users_list(request): """ Get list of permissions assigned to specific resources """ group = GroupService.by_id(request.matchdict.get("group_id")) if not group: return HTTPNotFound() props = [ "user_name", "id", "first_name", "last_name", "email", "last_login_date", "status", ] users_dicts = [] for user in group.users: u_dict = user.get_dict(include_keys=props) u_dict["gravatar_url"] = UserService.gravatar_url(user, s=20) users_dicts.append(u_dict) return users_dicts
def assigned_users(request): """ Returns list of users a specific report group is assigned for review """ report_group = request.context.report_group application = request.context.resource users = set( [p.user for p in ResourceService.users_for_perm(application, "view")]) currently_assigned = [u.user_name for u in report_group.assigned_users] user_status = {"assigned": [], "unassigned": []} # handle users for user in users: user_dict = { "user_name": user.user_name, "gravatar_url": UserService.gravatar_url(user), "name": "%s %s" % (user.first_name, user.last_name), } if user.user_name in currently_assigned: user_status["assigned"].append(user_dict) elif user_dict not in user_status["unassigned"]: user_status["unassigned"].append(user_dict) return user_status