Browse Source

Always show link for owner.

pull/926/head
Sebastian 3 years ago
parent
commit
9e54f348d5
  1. 21
      backend/src/Squidex/Areas/Api/Controllers/Plans/AppPlansController.cs

21
backend/src/Squidex/Areas/Api/Controllers/Plans/AppPlansController.cs

@ -55,35 +55,34 @@ namespace Squidex.Areas.Api.Controllers.Plans
{
var response = Deferred.AsyncResponse(async () =>
{
var owner = App.Plan?.Owner.Identifier;
var (_, planId, teamId) = await appUsageGate.GetPlanForAppAsync(App, HttpContext.RequestAborted);
var lockedReason = PlansLockedReason.None;
var owner = App.Plan?.Owner.Identifier;
var isOwner = string.Equals(owner, UserId, StringComparison.Ordinal);
var isLocked = PlansLockedReason.None;
var linkUrl = (Uri?)null;
if (teamId != null)
{
lockedReason = PlansLockedReason.ManagedByTeam;
isLocked = PlansLockedReason.ManagedByTeam;
}
else if (!Resources.CanChangePlan)
{
lockedReason = PlansLockedReason.NoPermission;
isLocked = PlansLockedReason.NoPermission;
}
else if (owner != null && !string.Equals(owner, UserId, StringComparison.OrdinalIgnoreCase))
else if (owner != null && !isOwner)
{
lockedReason = PlansLockedReason.NotOwner;
isLocked = PlansLockedReason.NotOwner;
}
var linkUrl = (Uri?)null;
if (lockedReason == PlansLockedReason.None)
if (isLocked == PlansLockedReason.None || isOwner)
{
linkUrl = await billingManager.GetPortalLinkAsync(UserId, App, HttpContext.RequestAborted);
}
var plans = billingPlans.GetAvailablePlans();
return PlansDto.FromDomain(plans.ToArray(), owner, planId, linkUrl, lockedReason);
return PlansDto.FromDomain(plans.ToArray(), owner, planId, linkUrl, isLocked);
});
Response.Headers[HeaderNames.ETag] = App.ToEtag();

Loading…
Cancel
Save