Ejemplo n.º 1
0
        /// <summary>
        /// Handles the request
        /// </summary>
        /// <returns>The awaitable task.</returns>
        /// <param name="context">The requests context.</param>
        public override async Task <bool> HandleAsync(IHttpContext context)
        {
            var res = await base.HandleAsync(context);

            if (string.IsNullOrWhiteSpace(context.Request.UserID) || !await DB.RunInTransactionAsync(db => Services.AdminHelper.IsAdmin(db, context.Request.UserID)))
            {
                context.Request.UserID      = null;
                context.Response.StatusCode = HttpStatusCode.Forbidden;
                return(true);
            }

            return(res);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Handles a request for the privacy policy document
        /// </summary>
        /// <param name="context">The http context</param>
        /// <returns><c>true</c></returns>
        public async Task <bool> HandleAsync(IHttpContext context)
        {
            var data = await Cache.PrivacyPolicy.TryGetValueAsync();

            var encoding    = System.Text.Encoding.UTF8;
            var contenttype = "text/html";

            if (data == null)
            {
                data = await DB.RunInTransactionAsync(db => Services.TextHelper.GetTextFromDb(db, TextConstants.PrivacyPolicy, "en"));

                data = Services.MarkdownRenderer.RenderAsHtml((data ?? string.Empty));
                await Cache.PrivacyPolicy.SetValueAsync(data);
            }

            await context.Response.WriteAllAsync(data, encoding, string.Format("{0}; charset={1}", contenttype, encoding.BodyName));

            return(true);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Checks if the user is an admin
 /// </summary>
 /// <param name="instance">The database instance to use</param>
 /// <param name="userid">The ID of the user to check</param>
 /// <returns>A flag indicating if the user is admin</returns>
 public static Task <bool> IsAdminAsync(DatabaseInstance instance, string userid)
 {
     return(instance.RunInTransactionAsync(db => db.IsAdmin(userid)));
 }