anchor.diff:      ?assertMatch(true, length(Ended(P2)) =:= FilesNum, ?ATTEMPTS),
   
       ?assertMatch(AllTransfers, lists:sort(Ended(P1)), ?ATTEMPTS),
  -    ?assertMatch(AllTransfers, lists:sort(Ended(P2)), ?ATTEMPTS).
  +    ?assertMatch(AllTransfers, lists:sort(Ended(P2)), ?ATTEMPTS),
  +
  +    AllPrivs = privileges:space_privileges(),
  +    ErrorForbidden = rest_test_utils:get_rest_error(?ERROR_FORBIDDEN),
  +
  +    % listing transfers without SPACE_VIEW_TRANSFERS privilege should fail
  +    initializer:testmaster_mock_space_user_privileges(Workers, <<"space4">>, <<"user1">>, AllPrivs -- [?SPACE_VIEW_TRANSFERS]),
  +    ?assertMatch(ErrorForbidden, Ended(P1), ?ATTEMPTS),
  +    ?assertMatch(ErrorForbidden, Ended(P2), ?ATTEMPTS).
   
   track_transferred_files(Config) ->
       [Provider1, Provider2] = ?config(op_worker_nodes, Config),
  
positive.code:         }
      ])),
  
      % when
      {ok, 200, _, Body} = rest_test_utils:request(WorkerP1, <<"metrics/space/space2?metric=storage_quota">>, get, ?USER_1_AUTH_HEADERS(Config), []),
      DecodedBody = json_utils:decode(Body),
  
      % then
  
negative.code:     test_utils:mock_expect(WorkerP1, rrd_utils, export_rrd, fun(_, _, _) ->
          {ok, <<"{\"test\":\"rrd\"}">>}
      end),
      OldPrivs = rpc:call(WorkerP1, initializer, node_get_mocked_space_user_privileges, [<<"space2">>, <<"user1">>]),
      init_per_testcase(all, [{old_privs, OldPrivs} | Config]);
  
  init_per_testcase(list_transfers, Config) ->
      [_WorkerP2, WorkerP1] = ?config(op_worker_nodes, Config),
      OldPrivs = rpc:call(WorkerP1, initializer, node_get_mocked_space_user_privileges, [<<"space4">>, <<"user1">>]),
      init_per_testcase(all, [{old_privs, OldPrivs} | Config]);
  
  init_per_testcase(Case, Config) when Case =:= create_share orelse
          Case =:= create_share_id orelse
  