示例#1
0
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
示例#2
0
 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"
     )
示例#3
0
    def gravatar_url(self, default='mm', **kwargs):
        """

        .. deprecated:: 0.8

        :param default:
        :param kwargs:
        :return:
        """
        return UserService.gravatar_url(self, default, **kwargs)
示例#4
0
    def gravatar_url(self, default='mm', **kwargs):
        """

        .. deprecated:: 0.8

        :param default:
        :param kwargs:
        :return:
        """
        return UserService.gravatar_url(self, default, **kwargs)
示例#5
0
    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"]}
示例#6
0
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
示例#7
0
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
示例#8
0
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