예제 #1
0
    def _apply_session(_usr_name=None, _grp_name=None):
        """
        Apply operation using db session.
        """
        from magpie.api.management.user import user_utils as ut
        from magpie.api.management.group import group_utils as gt

        res = ResourceService.by_resource_id(resource_id,
                                             db_session=cookies_or_session)
        if _usr_name:
            usr = UserService.by_user_name(_usr_name,
                                           db_session=cookies_or_session)
            if create_perm:
                return ut.create_user_resource_permission_response(
                    usr, res, perm, db_session=cookies_or_session)
            else:
                return ut.delete_user_resource_permission_response(
                    usr, res, perm, db_session=cookies_or_session)
        if _grp_name:
            grp = GroupService.by_group_name(_grp_name,
                                             db_session=cookies_or_session)
            if create_perm:
                return gt.create_group_resource_permission_response(
                    grp, res, perm, db_session=cookies_or_session)
            else:
                return gt.delete_group_resource_permission_response(
                    grp, res, perm, db_session=cookies_or_session)
예제 #2
0
def create_user_service_permission_view(request):
    """
    Create a permission on a service for a user.
    """
    user = ar.get_user_matchdict_checked_or_logged(request)
    service = ar.get_service_matchdict_checked(request)
    permission = ar.get_permission_multiformat_post_checked(request, service)
    return uu.create_user_resource_permission_response(user, service,
                                                       permission, request.db)
예제 #3
0
def create_user_resource_permissions_view(request):
    """
    Create a permission on specific resource for a user.
    """
    user = ar.get_user_matchdict_checked_or_logged(request)
    resource = ar.get_resource_matchdict_checked(request)
    permission = ar.get_permission_multiformat_body_checked(request, resource)
    return uu.create_user_resource_permission_response(user,
                                                       resource,
                                                       permission,
                                                       request.db,
                                                       overwrite=False)
예제 #4
0
def replace_user_service_permissions_view(request):
    """
    Create or modify an existing permission on a service for a user.

    Can be used to adjust permission modifiers.
    """
    user = ar.get_user_matchdict_checked_or_logged(request)
    service = ar.get_service_matchdict_checked(request)
    permission = ar.get_permission_multiformat_body_checked(request, service)
    return uu.create_user_resource_permission_response(user,
                                                       service,
                                                       permission,
                                                       request.db,
                                                       overwrite=True)