//[Authenticate(Forms, "/login/")] // Basic, Digest, Oauth, Api public override ViewBase Post(ControllerContext context) { User user; if (!UserService.TryAuthenticateUser(context.User, out user)) { return new StatusCodeView(HttpStatusCode.BadGateway); // TODO: return a better error code that doesn't cause forms authentication to overwrite our response } else if (!UserService.TryAuthorizeUser(user, UserRole.Admin)) { return new StatusCodeView(HttpStatusCode.Forbidden); } var config = new Config(); var updates = config.PopulateWithData(context.Form); using (var db = DataService.Connect()) using (var tx = db.OpenTransaction()) { db.Insert(config); ConfigService.InitializeWithConfig(config); FileService.PregenerateApp(); tx.Commit(); } return new JsonView(new AppViewModel()); }