api: remove unnecessary auth policies
This commit is contained in:
1 parent
99f095babe
commit
f5bb5d0716
2 files changed
+1
-47
No files matched your search
@@ -1,36 +0,0 @@
|
|||||||
/*
|
|
||||||
This file is part of the Notesnook Sync Server project (https://notesnook.com/)
|
|
||||||
|
|
||||||
Copyright (C) 2023 Streetwriters (Private) Limited
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the Affero GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
Affero GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the Affero GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Microsoft.AspNetCore.Authorization;
|
|
||||||
|
|
||||||
namespace Notesnook.API.Authorization
|
|
||||||
{
|
|
||||||
public class EmailVerifiedRequirement : AuthorizationHandler<EmailVerifiedRequirement>, IAuthorizationRequirement
|
|
||||||
{
|
|
||||||
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, EmailVerifiedRequirement requirement)
|
|
||||||
{
|
|
||||||
var isEmailVerified = context.User.HasClaim("verified", "true");
|
|
||||||
var isUserBasic = context.User.HasClaim("notesnook:status", "basic") || context.User.HasClaim("notesnook:status", "premium_expired");
|
|
||||||
if (!isUserBasic || isEmailVerified)
|
|
||||||
context.Succeed(requirement);
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -107,23 +107,13 @@ namespace Notesnook.API
|
|||||||
policy.RequireAuthenticatedUser();
|
policy.RequireAuthenticatedUser();
|
||||||
policy.Requirements.Add(new SyncRequirement());
|
policy.Requirements.Add(new SyncRequirement());
|
||||||
});
|
});
|
||||||
options.AddPolicy("Verified", policy =>
|
|
||||||
{
|
|
||||||
policy.AuthenticationSchemes.Add("introspection");
|
|
||||||
policy.RequireAuthenticatedUser();
|
|
||||||
policy.Requirements.Add(new EmailVerifiedRequirement());
|
|
||||||
});
|
|
||||||
options.AddPolicy("Pro", policy =>
|
options.AddPolicy("Pro", policy =>
|
||||||
{
|
{
|
||||||
policy.AuthenticationSchemes.Add("introspection");
|
policy.AuthenticationSchemes.Add("introspection");
|
||||||
policy.RequireAuthenticatedUser();
|
policy.RequireAuthenticatedUser();
|
||||||
|
policy.Requirements.Add(new SyncRequirement());
|
||||||
policy.Requirements.Add(new ProUserRequirement());
|
policy.Requirements.Add(new ProUserRequirement());
|
||||||
});
|
});
|
||||||
options.AddPolicy("BasicAdmin", policy =>
|
|
||||||
{
|
|
||||||
policy.AuthenticationSchemes.Add("BasicAuthentication");
|
|
||||||
policy.RequireClaim(ClaimTypes.Role, "Admin");
|
|
||||||
});
|
|
||||||
|
|
||||||
options.DefaultPolicy = options.GetPolicy("Notesnook");
|
options.DefaultPolicy = options.GetPolicy("Notesnook");
|
||||||
}).AddSingleton<IAuthorizationMiddlewareResultHandler, AuthorizationResultTransformer>(); ;
|
}).AddSingleton<IAuthorizationMiddlewareResultHandler, AuthorizationResultTransformer>(); ;
|
||||||
|
|||||||
Reference in new issue
Block a user