From c09a9734a75bf4d7a41de3395b2a0c99e6b7406b Mon Sep 17 00:00:00 2001 From: Patrick Pimentel Date: Wed, 3 Dec 2025 22:49:27 -0500 Subject: [PATCH] Added some more comments for clarity and small touchups. --- src/Core/Services/IUserService.cs | 11 +++++++++++ src/Core/Services/Implementations/UserService.cs | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Core/Services/IUserService.cs b/src/Core/Services/IUserService.cs index 66e569e65e..70c62cb79e 100644 --- a/src/Core/Services/IUserService.cs +++ b/src/Core/Services/IUserService.cs @@ -59,10 +59,21 @@ public interface IUserService Task CheckPasswordAsync(User user, string password); /// /// Checks if the user has access to premium features, either through a personal subscription or through an organization. + /// + /// This is the preferred way to definitively know if a user has access to premium features. /// /// user being acted on /// true if they can access premium; false otherwise. Task CanAccessPremium(User user); + + /// + /// Checks if the user has inherited access to premium features through an organization. + /// + /// This primarily serves as a means to communicate to the client when a user has inherited their premium status + /// through an organization. Feature gating logic probably should not be behind this check. + /// + /// + /// Task HasPremiumFromOrganization(User user); Task GenerateSignInTokenAsync(User user, string purpose); diff --git a/src/Core/Services/Implementations/UserService.cs b/src/Core/Services/Implementations/UserService.cs index 918c40ac0e..2d2a9f0ae7 100644 --- a/src/Core/Services/Implementations/UserService.cs +++ b/src/Core/Services/Implementations/UserService.cs @@ -1112,7 +1112,7 @@ public class UserService : UserManager, IUserService return false; } - return user.Premium || await this.HasPremiumFromOrganization(user); + return user.Premium || await HasPremiumFromOrganization(user); } public async Task HasPremiumFromOrganization(User user) @@ -1138,6 +1138,7 @@ public class UserService : UserManager, IUserService orgAbility.UsersGetPremium && orgAbility.Enabled); } + public async Task GenerateSignInTokenAsync(User user, string purpose) { var token = await GenerateUserTokenAsync(user, Options.Tokens.PasswordResetTokenProvider,