public IActionResult EditPost(PostPatch parameters) { var userID = JWTUtility.GetUserID(HttpContext); var role = JWTUtility.GetRole(HttpContext); var post = (from posts in _context.Posts where posts.Id == parameters.ID select posts).Single(); if (role != RoleType.Admin && post.Userid != userID) { return(BadRequest(new { error = "You do not have permission to edit this post" })); } if (parameters.Post.Count() > _maxPostCharacterCount) { return(BadRequest(new { error = "Your post has too many characters" })); } post.Editdate = DateTime.Now; post.Post = parameters.Post; _context.SaveChanges(); return(Ok()); }
private bool AddUserToDB(RegisterPost userInfo) { //BCrypt bundles its salt in the hash var hash = BCrypt.Net.BCrypt.HashPassword(userInfo.Password); var newUser = new Users { Username = userInfo.Username.Trim(), Hash = hash, Access = "User" }; try { _context.Users.Add(newUser); _context.SaveChanges(); } catch (Exception e) { Console.WriteLine(e.Message); return(false); } return(true); }
public IActionResult PatchPassword(UpdateProfilePatch parameters) { if (parameters.New.Count() < 8) { return(BadRequest(new { error = "Password must be at least 8 characters long" })); } if (parameters.New != parameters.Confirm) { return(BadRequest(new { error = "Passwords do not match" })); } var userID = JWTUtility.GetUserID(HttpContext); var user = (from users in _context.Users where users.Id == userID select users).Single(); if (!BCrypt.Net.BCrypt.Verify(parameters.Current, user.Hash)) { return(BadRequest(new { error = "Current password incorrect" })); } var newHash = BCrypt.Net.BCrypt.HashPassword(parameters.New); user.Hash = newHash; _context.SaveChanges(); return(Ok()); }
public IActionResult PostComment(CommentPost parameters) { var userID = JWTUtility.GetUserID(HttpContext); var comment = new Comments { Comment = parameters.Comment, Userid = userID, Postid = parameters.PostID, Createdon = DateTime.Now }; _context.Comments.Add(comment); _context.SaveChanges(); return(Ok()); }
public IActionResult AddLike(LikesPut parameters) { var userID = JWTUtility.GetUserID(HttpContext); var queryCheckAlreadyLiked = (from likes in _context.Likes where likes.Userid == userID && likes.Postid == parameters.PostID select likes).FirstOrDefault(); if (queryCheckAlreadyLiked != null) { return(Ok()); // Ignore. No need to throw error. } var newLike = new Likes() { Userid = userID, Postid = parameters.PostID }; _context.Likes.Add(newLike); _context.SaveChanges(); return(Ok()); }
public IActionResult SubmitPost([FromBody] PostPost post) { if (post.Post.Count() > _maxPostCharacterCount) { return(BadRequest()); } var userID = JWTUtility.GetUserID(HttpContext); var newPost = new Posts() { Createdon = DateTime.Now, Userid = userID, Post = post.Post }; _context.Posts.Add(newPost); _context.SaveChanges(); return(Ok()); }