/// <summary> /// Verifica se determinado usuário possui determinada permissão. /// Caso não possua a permissão, será lançada uma exceção <see cref="PermissionDeniedException"/>. /// </summary> /// <param name="principal">O usuário</param> /// <param name="permission">A permissão a verificar. Se não for especificada ou estiver em branco, a verificação retorna, sem erros</param> /// <param name="errorMessage">A mensagem de erro a exibir, caso a permissão falhe</param> /// <param name="errorMessageArguments">Os argumentos para montar a mensagem de erro</param> /// <exception cref="PermissionDeniedException">Caso o usuário não possua a permissão solicitada</exception> /// <exception cref="ArgumentNullException">Caso não seja especificado o <paramref name="principal"/></exception> public void CheckPermission(IExtendedPrincipal principal, string permission, string errorMessage, params object[] errorMessageArguments) { if (String.IsNullOrEmpty(permission)) { return; } if (principal == null) { throw new ArgumentNullException("principal", "Parâmetro 'principal' não pode ser nulo"); } #pragma warning disable 618,612 if (PermissionChecker.HasPermission(principal, permission)) { return; } #pragma warning restore 618,612 throw new PermissionDeniedException(String.Format(errorMessage, errorMessageArguments)); }
public bool Test(IExtendedPrincipal user) { return(PermissionChecker.HasPermission(user, this)); }
public static bool HasPermission(IPermission perm) { return(PermissionChecker.HasPermission(CurrentUser, perm)); }