Files
Disco/Disco.Services/Authorization/DiscoAuthorizeAllAttribute.cs
T
Gary Sharp 9784c5d282 Plugin Base WebViewPage #22 & Authorization #24
Plugins have a base WebViewPage to inherit, this offers integration with
various Disco services. Plugins can also add Authorization attributes to
their Web Handlers and Controller Methods.
2013-10-14 20:13:00 +11:00

37 lines
1.0 KiB
C#

using Disco.Services.Users;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Mvc;
namespace Disco.Services.Authorization
{
public class DiscoAuthorizeAllAttribute : DiscoAuthorizeBaseAttribute
{
string[] authorizedClaims;
public DiscoAuthorizeAllAttribute(params string[] AuthorisedClaims)
{
if (AuthorisedClaims == null || AuthorisedClaims.Length == 0)
throw new ArgumentNullException("AuthorisedClaims");
this.authorizedClaims = AuthorisedClaims;
}
public override bool IsAuthorized(System.Web.HttpContextBase httpContext)
{
if (Token == null)
return false; // No Current User
return Token.HasAll(authorizedClaims);
}
public override string HandleUnauthorizedMessage()
{
return AuthorizationToken.BuildRequireAllMessage(authorizedClaims);
}
}
}