Mercurial > hg > orthanc-authorization
diff Plugin/AuthorizationWebService.h @ 71:30fb3ce960d9
configurable user permissions
author | Alain Mazy <am@osimis.io> |
---|---|
date | Wed, 22 Feb 2023 13:13:38 +0100 |
parents | af44dce56328 |
children | e381ba725669 |
line wrap: on
line diff
--- a/Plugin/AuthorizationWebService.h Tue Feb 21 09:23:47 2023 +0100 +++ b/Plugin/AuthorizationWebService.h Wed Feb 22 13:13:38 2023 +0100 @@ -18,11 +18,12 @@ #pragma once -#include "IAuthorizationService.h" +#include "BaseAuthorizationService.h" +#include <Compatibility.h> namespace OrthancPlugins { - class AuthorizationWebService : public IAuthorizationService + class AuthorizationWebService : public BaseAuthorizationService { private: std::string url_; @@ -31,12 +32,23 @@ std::string identifier_; std::string userProfileUrl_; - bool IsGrantedInternal(unsigned int& validity, + protected: + virtual bool IsGrantedInternal(unsigned int& validity, OrthancPluginHttpMethod method, const AccessedResource& access, const Token* token, - const std::string& tokenValue); + const std::string& tokenValue) ORTHANC_OVERRIDE; + virtual bool GetUserProfileInternal(unsigned int& validity, + Json::Value& profile /* out */, + const Token* token, + const std::string& tokenValue) ORTHANC_OVERRIDE; + + virtual bool HasUserPermissionInternal(unsigned int& validity, + const std::string& permission, + const Token* token, + const std::string& tokenValue) ORTHANC_OVERRIDE; + public: AuthorizationWebService(const std::string& url) : url_(url) @@ -49,26 +61,5 @@ void SetIdentifier(const std::string& webServiceIdentifier); void SetUserProfileUrl(const std::string& url); - - virtual bool IsGranted(unsigned int& validity, - OrthancPluginHttpMethod method, - const AccessedResource& access, - const Token& token, - const std::string& tokenValue) - { - return IsGrantedInternal(validity, method, access, &token, tokenValue); - } - - virtual bool IsGranted(unsigned int& validity, - OrthancPluginHttpMethod method, - const AccessedResource& access) - { - return IsGrantedInternal(validity, method, access, NULL, ""); - } - - virtual bool GetUserProfile(Json::Value& profile /* out */, - const Token& token, - const std::string& tokenValue); - }; }