//[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()); }
public static void Initialize(bool overwrite = false) { #if DEBUG overwrite = true; #endif using (IDbConnection db = Connect()) { //bool userTableExists = db.TableExists("User"); bool fullTextSearchExists = db.TableExists("FullTextSearchIssue"); if (overwrite && fullTextSearchExists) { db.ExecuteSql("DROP TABLE FullTextSearchIssue"); fullTextSearchExists = false; } db.CreateTables(overwrite, typeof(User), typeof(Config), typeof(Issue), typeof(IssueComment)); if (!fullTextSearchExists) { db.ExecuteSql("CREATE VIRTUAL TABLE FullTextSearchIssue USING fts4(Title, Text, Comments)"); } #if DEBUG Config config = new Config() { Areas = new[] { "candle.exe", "light.exe" }, Releases = new[] { "v3.7", "v3.8", "v3.x", "v4.x" }, }; db.Insert(config); var fooUser = UserService.Create("*****@*****.**", "bar."); fooUser.FullName = "Foo User"; fooUser.Role = UserRole.Admin; db.Insert(fooUser); fooUser.Id = db.GetLastInsertId(); var barUser = UserService.Create("*****@*****.**", "foo"); barUser.UserName = "******"; barUser.FullName = "Bar User"; db.Insert(barUser); barUser.Id = db.GetLastInsertId(); var bazUser = UserService.Create("*****@*****.**", "foo"); bazUser.UserName = "******"; bazUser.FullName = "Baz User"; bazUser.Role = UserRole.User; db.Insert(bazUser); bazUser.Id = db.GetLastInsertId(); var issue = new Issue() { AssignedToUserId = fooUser.Id, CreatedByUserId = barUser.Id, CreatedAt = DateTime.UtcNow, Title = "This is the title.", Type = IssueType.Bug, Release = "v3.8", Text = "This is the text of the bug. It is a little longer than the title.", Votes = 4, }; db.Insert(issue); issue.Id = db.GetLastInsertId(); var issueSearch = new FullTextSearchIssue() { DocId = issue.Id, Text = issue.Text, Title = issue.Title, }; //db.SqlScalar<int>("INSERT INTO issue_text(docid, title, text) VALUES(@i, @t, @c)", // new { i = db.GetLastInsertId(), t = issue.Title, c = issue.Text }); db.Insert(issueSearch); var issueOld = new Issue() { CreatedByUserId = fooUser.Id, CreatedAt = DateTime.UtcNow, Title = "This is the title of old feature.", Type = IssueType.Feature, Release = "v3.7", Text = "This is the text of the feature. It is a little longer than the title and it's for older stuff.", Votes = 1, }; db.Insert(issueOld); issueOld.Id = db.GetLastInsertId(); var issueOldComment = new IssueComment() { IssueId = issueOld.Id, CommentByUserId = barUser.Id, CreatedAt = DateTime.UtcNow, Text = "This is the text of the comment. It is a little longer to provide some detail about the feature request.", }; db.Insert(issueOldComment); issueOldComment.Id = db.GetLastInsertId(); var issueOldSearch = new FullTextSearchIssue() { DocId = issueOldComment.IssueId, Text = issueOld.Text, Title = issueOld.Title, Comments = issueOldComment.Text, }; //db.SqlScalar<int>("INSERT INTO issue_text(docid, title, text) VALUES(@i, @t, @c)", // new { i = db.GetLastInsertId(), t = issue.Title, c = issue.Text }); db.Insert(issueOldSearch); #endif } }
public static void InitializeWithConfig(Config config) { if (config == null) { NoConfig = true; } else { AppName = config.ApplicationName; AppSubName = config.ApplicationSubName; areas = config.Areas; releases = config.Releases; breadcrumbs = config.ExternalBreadcrumbs; Mail = new MailConfig() { From = config.MailFrom ?? config.MailUsername, Server = config.MailServer, Port = config.MailPort, RequireSsl = config.MailSsl, Username = config.MailUsername, Password = config.MailPassword, }; } if (String.IsNullOrEmpty(AppName)) { AppName = WebConfigurationManager.AppSettings["app.name"] ?? "tinyBugs"; AppSubName = WebConfigurationManager.AppSettings["app.subname"] ?? "no issue is too small"; } }
public static void InitializeWithConfig(Config config) { if (config == null) { NoConfig = true; } else { AppName = config.ApplicationName; AppSubName = config.ApplicationSubName; areas = config.Areas; releases = config.Releases; breadcrumbs = config.ExternalBreadcrumbs; // If the mail server was not configured by the web.config, populate the mail // configuration from the provided config information. if (String.IsNullOrEmpty(Mail.Server)) { Mail = new MailConfig() { From = config.MailFrom ?? config.MailUsername, Server = config.MailServer, Port = config.MailPort, RequireSsl = config.MailSsl, Username = config.MailUsername, Password = config.MailPassword, }; } } if (String.IsNullOrEmpty(AppName)) { AppName = WebConfigurationManager.AppSettings["app.name"] ?? "tinyBugs"; AppSubName = WebConfigurationManager.AppSettings["app.subname"] ?? "no issue is too small"; } }