public ActionResult <JObject> Delete(string id) { return(WrapWithAuthorizationCheck(() => { try { TweezersObject objectMetadata = TweezersSchemaFactory.Find(CollectionName, WithInternalObjects, true); JObject role = objectMetadata.GetById(TweezersSchemaFactory.DatabaseProxy, id, true); if (role == null) { return TweezersOk(TweezersGeneralResponse.Create("Deleted")); } if (role["isBuiltInRole"]?.ToString().ToLower() == "true") { return TweezersBadRequest("Cannot delete a built-in role"); } long count = IdentityManager.GetUsersByRoleId(id).Count; if (count > 0) { return TweezersBadRequest( $"Role is being used by {count} users, please change their role first."); } bool deleted = objectMetadata.Delete(TweezersSchemaFactory.DatabaseProxy, id); return TweezersOk(); } catch (TweezersValidationException e) { return TweezersBadRequest(e.Message); } }, "Delete", DefaultPermission.Edit, CollectionName)); }
private ActionResult DoChangePassword(JObject user, ChangePasswordRequest changePasswordRequest) { JObject passwordChange = new JObject() { ["passwordHash"] = Hash.Create(changePasswordRequest.NewPassword) }; try { TweezersObject usersObjectMetadata = TweezersSchemaFactory.Find(IdentityManager.UsersCollectionName, true); usersObjectMetadata.Update(TweezersSchemaFactory.DatabaseProxy, user["_id"].ToString(), passwordChange); return(TweezersOk(TweezersGeneralResponse.Create("OK"))); } catch { return(TweezersBadRequest("Could not update password")); } }
protected ActionResult <JObject> Delete(string collection, string id, DefaultPermission?minimalPermission = null) { return(WrapWithAuthorizationCheck(() => { try { TweezersObject objectMetadata = TweezersSchemaFactory.Find(collection, WithInternalObjects); if (objectMetadata.GetById(TweezersSchemaFactory.DatabaseProxy, id) == null) { return TweezersOk(TweezersGeneralResponse.Create("Deleted")); } bool deleted = objectMetadata.Delete(TweezersSchemaFactory.DatabaseProxy, id); return TweezersOk(); } catch (TweezersValidationException e) { return TweezersBadRequest(e.Message); } }, "Delete", minimalPermission ?? DefaultPermission.Edit, collection)); }
protected ActionResult TweezersOk(object obj = null) { return(StatusCode(200, ResolveByContract(obj ?? TweezersGeneralResponse.Create("Ok")))); }