Mercurial > hg > orthanc-authorization
changeset 345:4d9e8a4773ca
Added support for inbox-links
| author | Alain Mazy <am@orthanc.team> |
|---|---|
| date | Thu, 20 Aug 2026 10:54:01 +0200 |
| parents | 47e6b454ef43 |
| children | f2ae8fe9933c |
| files | NEWS Plugin/AuthorizationWebService.cpp Plugin/AuthorizationWebService.h Plugin/CachedAuthorizationService.h Plugin/DefaultConfiguration.json Plugin/IAuthorizationService.h Plugin/Plugin.cpp |
| diffstat | 7 files changed, 31 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/NEWS Mon Aug 10 10:18:23 2026 +0200 +++ b/NEWS Thu Aug 20 10:54:01 2026 +0200 @@ -1,3 +1,9 @@ +Pending changes +=============== + +* Added support for inbox-links (new permission: create-inbox-links) + + 2026-07-23 - v 0.11.4 =====================
--- a/Plugin/AuthorizationWebService.cpp Mon Aug 10 10:18:23 2026 +0200 +++ b/Plugin/AuthorizationWebService.cpp Thu Aug 20 10:54:01 2026 +0200 @@ -261,7 +261,8 @@ bool AuthorizationWebService::CreateToken(IAuthorizationService::CreatedToken& response, const std::string& tokenType, - const std::string& id, + const std::string& id, + const std::string& username, const std::vector<IAuthorizationService::OrthancResource>& resources, const std::string& expirationDateString, const uint64_t& validityDuration) @@ -279,6 +280,11 @@ body["id"] = id; } + if (!username.empty()) + { + body["username"] = username; + } + AddServerId(body, serverId_); body["resources"] = Json::arrayValue;
--- a/Plugin/AuthorizationWebService.h Mon Aug 10 10:18:23 2026 +0200 +++ b/Plugin/AuthorizationWebService.h Thu Aug 20 10:54:01 2026 +0200 @@ -93,7 +93,8 @@ virtual bool CreateToken(IAuthorizationService::CreatedToken& response, const std::string& tokenType, - const std::string& id, + const std::string& id, + const std::string& username, const std::vector<IAuthorizationService::OrthancResource>& resources, const std::string& expirationDateString, const uint64_t& validityDuration) ORTHANC_OVERRIDE;
--- a/Plugin/CachedAuthorizationService.h Mon Aug 10 10:18:23 2026 +0200 +++ b/Plugin/CachedAuthorizationService.h Thu Aug 20 10:54:01 2026 +0200 @@ -88,7 +88,8 @@ virtual bool CreateToken(IAuthorizationService::CreatedToken& response, const std::string& tokenType, - const std::string& id, + const std::string& id, + const std::string& username, const std::vector<IAuthorizationService::OrthancResource>& resources, const std::string& expirationDateString, const uint64_t& validityDuration) ORTHANC_OVERRIDE @@ -96,6 +97,7 @@ return decorated_->CreateToken(response, tokenType, id, + username, resources, expirationDateString, validityDuration);
--- a/Plugin/DefaultConfiguration.json Mon Aug 10 10:18:23 2026 +0200 +++ b/Plugin/DefaultConfiguration.json Thu Aug 20 10:54:01 2026 +0200 @@ -86,8 +86,9 @@ // share a link to open a study ["put", "^/auth/tokens/(stone-viewer-publication|meddream-viewer-publication|osimis-viewer-publication|ohif-viewer-publication|volview-viewer-publication)$", "all|share"], - ["get", "^/ui/api/emails/templates/(.*)$", "all|share"], - ["post", "^/ui/api/emails/send$", "all|share"], + ["put", "^/auth/tokens/inbox-link$", "all|create-inbox-links"], + ["get", "^/ui/api/emails/templates/(.*)$", "all|share|create-inbox-links"], + ["post", "^/ui/api/emails/send$", "all|share|create-inbox-links"], // uploads ["post", "^/instances$", "all|upload"],
--- a/Plugin/IAuthorizationService.h Mon Aug 10 10:18:23 2026 +0200 +++ b/Plugin/IAuthorizationService.h Thu Aug 20 10:54:01 2026 +0200 @@ -40,6 +40,7 @@ std::string orthancId; std::string url; std::string level; + std::string username; }; struct CreatedToken @@ -103,7 +104,8 @@ virtual bool CreateToken(CreatedToken& response, const std::string& tokenType, - const std::string& id, + const std::string& id, + const std::string& username, const std::vector<OrthancResource>& resources, const std::string& expirationDateString, const uint64_t& validityDuration) = 0;
--- a/Plugin/Plugin.cpp Mon Aug 10 10:18:23 2026 +0200 +++ b/Plugin/Plugin.cpp Thu Aug 20 10:54:01 2026 +0200 @@ -2043,7 +2043,7 @@ throw Orthanc::OrthancException(Orthanc::ErrorCode_BadFileFormat, "A JSON payload was expected"); } - std::string id; + std::string id, username; std::vector<OrthancPlugins::IAuthorizationService::OrthancResource> resources; std::string expirationDateString; uint64_t validityDuration; @@ -2053,6 +2053,11 @@ id = body["ID"].asString(); } + if (body.isMember("Username")) + { + username = body["Username"].asString(); + } + for (Json::ArrayIndex i = 0; i < body["Resources"].size(); ++i) { const Json::Value& jsonResource = body["Resources"][i]; @@ -2091,6 +2096,7 @@ if (authorizationService_->CreateToken(createdToken, tokenType, id, + username, resources, expirationDateString, validityDuration))
