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 response = Deferred.AsyncResponse(async () =>
{ {
var owner = App.Plan?.Owner.Identifier;
var (_, planId, teamId) = await appUsageGate.GetPlanForAppAsync(App, HttpContext.RequestAborted); 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) if (teamId != null)
{ {
lockedReason = PlansLockedReason.ManagedByTeam; isLocked = PlansLockedReason.ManagedByTeam;
} }
else if (!Resources.CanChangePlan) 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 (isLocked == PlansLockedReason.None || isOwner)
if (lockedReason == PlansLockedReason.None)
{ {
linkUrl = await billingManager.GetPortalLinkAsync(UserId, App, HttpContext.RequestAborted); linkUrl = await billingManager.GetPortalLinkAsync(UserId, App, HttpContext.RequestAborted);
} }
var plans = billingPlans.GetAvailablePlans(); 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(); Response.Headers[HeaderNames.ETag] = App.ToEtag();

Loading…
Cancel
Save