private string DeleteTopic() { int topicId = -1; int forumId = -1; if (Params.ContainsKey("topicid") && SimulateIsNumeric.IsNumeric(Params["topicid"])) { topicId = int.Parse(Params["topicid"].ToString()); } if (topicId > 0) { TopicsController tc = new TopicsController(); TopicInfo t = tc.Topics_Get(PortalId, ModuleId, topicId); Data.ForumsDB db = new Data.ForumsDB(); forumId = db.Forum_GetByTopicId(topicId); ForumController fc = new ForumController(); Forum f = fc.Forums_Get(forumId, this.UserId, true); if (f != null) { if (Permissions.HasPerm(f.Security.ModDelete, ForumUser.UserRoles) || (t.Author.AuthorId == this.UserId && Permissions.HasAccess(f.Security.Delete, ForumUser.UserRoles))) { tc.Topics_Delete(PortalId, ModuleId, forumId, topicId, MainSettings.DeleteBehavior); return(BuildOutput(string.Empty, OutputCodes.Success, true)); } } } return(BuildOutput(string.Empty, OutputCodes.UnsupportedRequest, false)); }
private string DeleteTopic() { int topicId = -1; int forumId = -1; if (Params.ContainsKey("topicid") && SimulateIsNumeric.IsNumeric(Params["topicid"])) { topicId = int.Parse(Params["topicid"].ToString()); } if (topicId > 0) { TopicsController tc = new TopicsController(); TopicInfo t = tc.Topics_Get(PortalId, ModuleId, topicId); Data.ForumsDB db = new Data.ForumsDB(); forumId = db.Forum_GetByTopicId(topicId); ForumController fc = new ForumController(); Forum f = fc.Forums_Get(forumId, this.UserId, true); if (f != null) { if (Permissions.HasPerm(f.Security.ModDelete, ForumUser.UserRoles) || (t.Author.AuthorId == this.UserId && Permissions.HasAccess(f.Security.Delete, ForumUser.UserRoles))) { tc.Topics_Delete(PortalId, ModuleId, forumId, topicId, MainSettings.DeleteBehavior); return BuildOutput(string.Empty, OutputCodes.Success, true); } } } return BuildOutput(string.Empty, OutputCodes.UnsupportedRequest, false); }