anchor.diff:  %% Throws exception when call to the datastore fails.
   %% @end
   %%--------------------------------------------------------------------
  --spec remove(GroupId :: od_user:id()) ->
  +-spec remove(GroupId :: od_group:id()) ->
       true.
   remove(GroupId) ->
       {ok, #document{value = #od_group{users = Users, spaces = Spaces}}} = od_group:get(GroupId),
  
positive.code: %% Throws exception when call to the datastore fails, or user doesn't exist.
  %% @end
  %%--------------------------------------------------------------------
  -spec get_user(GroupId :: od_user:id(), UserId :: binary()) ->
      {ok, [proplists:property()]}.
  get_user(_GroupId, UserId) ->
      user_logic:get_data(UserId, provider).
  
negative.code: %% Throws exception when call to the datastore fails, or group doesn't exist.
  %% @end
  %%--------------------------------------------------------------------
  -spec has_effective_user(GroupId :: od_group:id(), UserId :: od_user:id()) ->
      boolean().
  has_effective_user(GroupId, UserId) ->
      case od_group:get(GroupId) of
  