diff --git a/.circleci/config.yml b/.circleci/config.yml
index 5df734e32..429591bbf 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -2,7 +2,7 @@ version: 2
jobs:
fast_tests:
machine:
- image: ubuntu-2004:202111-02
+ image: ubuntu-2004:2024.11.1
steps:
- checkout
- run:
@@ -10,7 +10,7 @@ jobs:
cd .circleci && ./run-tests.sh "Fast=Fast|ThirdParty=ThirdParty" && ./can-build.sh
selenium_tests:
machine:
- image: ubuntu-2004:202111-02
+ image: ubuntu-2004:2024.11.1
steps:
- checkout
- run:
@@ -18,7 +18,7 @@ jobs:
cd .circleci && ./run-tests.sh "Selenium=Selenium"
integration_tests:
machine:
- image: ubuntu-2004:202111-02
+ image: ubuntu-2004:2024.11.1
steps:
- checkout
- run:
@@ -26,7 +26,7 @@ jobs:
cd .circleci && ./run-tests.sh "Integration=Integration"
trigger_docs_build:
machine:
- image: ubuntu-2004:202111-02
+ image: ubuntu-2004:2024.11.1
steps:
- run:
command: |
diff --git a/.circleci/run-tests.sh b/.circleci/run-tests.sh
index 8f37a38cd..acd577e84 100755
--- a/.circleci/run-tests.sh
+++ b/.circleci/run-tests.sh
@@ -2,8 +2,8 @@
set -e
cd ../BTCPayServer.Tests
-docker-compose -v
-docker-compose -f "docker-compose.altcoins.yml" down --v
+docker-compose --version
+docker-compose -f "docker-compose.altcoins.yml" down -v
# For some reason, docker-compose pull fails time to time, so we try several times
n=0
diff --git a/BTCPayServer.Abstractions/BTCPayServer.Abstractions.csproj b/BTCPayServer.Abstractions/BTCPayServer.Abstractions.csproj
index e1ecd781e..030613b3a 100644
--- a/BTCPayServer.Abstractions/BTCPayServer.Abstractions.csproj
+++ b/BTCPayServer.Abstractions/BTCPayServer.Abstractions.csproj
@@ -32,8 +32,8 @@
-
-
+
+
diff --git a/BTCPayServer.Client/BTCPayServer.Client.csproj b/BTCPayServer.Client/BTCPayServer.Client.csproj
index fbcd65a27..30c047653 100644
--- a/BTCPayServer.Client/BTCPayServer.Client.csproj
+++ b/BTCPayServer.Client/BTCPayServer.Client.csproj
@@ -30,8 +30,8 @@
-
-
+
+
diff --git a/BTCPayServer.Client/BTCPayServerClient.StoreUsers.cs b/BTCPayServer.Client/BTCPayServerClient.StoreUsers.cs
index 116cd6be6..2311418c7 100644
--- a/BTCPayServer.Client/BTCPayServerClient.StoreUsers.cs
+++ b/BTCPayServer.Client/BTCPayServerClient.StoreUsers.cs
@@ -29,4 +29,10 @@ public partial class BTCPayServerClient
if (request == null) throw new ArgumentNullException(nameof(request));
await SendHttpRequest($"api/v1/stores/{storeId}/users", request, HttpMethod.Post, token);
}
+
+ public virtual async Task UpdateStoreUser(string storeId, string userId, StoreUserData request, CancellationToken token = default)
+ {
+ if (request == null) throw new ArgumentNullException(nameof(request));
+ await SendHttpRequest($"api/v1/stores/{storeId}/users/{userId}", request, HttpMethod.Put, token);
+ }
}
diff --git a/BTCPayServer.Client/Models/StoreData.cs b/BTCPayServer.Client/Models/StoreData.cs
index ca6459e69..9f2e2b728 100644
--- a/BTCPayServer.Client/Models/StoreData.cs
+++ b/BTCPayServer.Client/Models/StoreData.cs
@@ -17,7 +17,25 @@ namespace BTCPayServer.Client.Models
///
public string UserId { get; set; }
+ ///
+ /// the store role of the user
+ ///
public string Role { get; set; }
+
+ ///
+ /// the email AND username of the user
+ ///
+ public string Email { get; set; }
+
+ ///
+ /// the name of the user
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// the image url of the user
+ ///
+ public string ImageUrl { get; set; }
}
public class RoleData
diff --git a/BTCPayServer.Common/BTCPayServer.Common.csproj b/BTCPayServer.Common/BTCPayServer.Common.csproj
index 023f30477..ac003c2de 100644
--- a/BTCPayServer.Common/BTCPayServer.Common.csproj
+++ b/BTCPayServer.Common/BTCPayServer.Common.csproj
@@ -2,7 +2,7 @@
-
+
diff --git a/BTCPayServer.Common/CustomThreadPool.cs b/BTCPayServer.Common/CustomThreadPool.cs
deleted file mode 100644
index 8117663f1..000000000
--- a/BTCPayServer.Common/CustomThreadPool.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-using System;
-using System.Collections.Concurrent;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace BTCPayServer
-{
- public class CustomThreadPool : IDisposable
- {
- readonly CancellationTokenSource _Cancel = new CancellationTokenSource();
- readonly TaskCompletionSource _Exited;
- int _ExitedCount = 0;
- readonly Thread[] _Threads;
- Exception _UnhandledException;
- readonly BlockingCollection<(Action, TaskCompletionSource