Hello,
How do you remove user by using
./launcher enter app
and deleting the user by rake?
Just like you create admin with
rake admin:create
Is there a way to delete user like that?
Thanks,
NInetailz
Deleting a User from Discourse-Docker using SSH
To delete a user, you can use the following steps:
./launcher enter apprails cUser.find_by(username: "username").destroy zogstripAlternatively, you can delete a user by their ID using User.find_by(id: user_id).destroy chrisc, zogstrip
Exiting Rails Console
To exit the Rails console, type exit and press enter twice sam
Sanitizing User Data
After deleting a user, you may need to sanitize their data, including posts and likes. A simple query can delete the user’s posts, but sanitizing all data may take time yuquailon
Note: Deleting a user can cause internal server errors if their posts are not properly sanitized yuquailon
Hello,
How do you remove user by using
./launcher enter app
and deleting the user by rake?
Just like you create admin with
rake admin:create
Is there a way to delete user like that?
Thanks,
NInetailz
As you said, you can enter the container with
./launcher enter app
Then, you will need to launch the rails console with
rails c
Once you’re in the rails console, you can delete a user with
User.find_by(username: "foobar").destroy
So i did that and it did removed the user but it showed this (END) line when i kept pressing enter and i closed it by ctrl+z. Is that the right way to close rails c? something telling me its not ..
root@xxx:~# cd /var/xxx/
root@xxx:/var/xxx# ./launcher enter app
root@xxx-app:/# rails c
[1] pry(main)> User.find_by(username: “anon61470549”).destroy
=> #<User:0x007fc7283af178
id: -2,
username: “anon61470549”,
created_at: Thu, 07 Jan 2016 01:46:38 UTC +00:00,
updated_at: Tue, 12 Jan 2016 03:00:37 UTC +00:00,
name: nil,
seen_notification_id: 0,
last_posted_at: nil,
email: “anon61470549@example.com”,
password_hash:
“xxx”,
salt: “xx”,
active: false,
username_lower: “anon61470549”,
auth_token: nil,
last_seen_at: nil,
admin: false,
last_emailed_at: nil,
email_digests: false,
trust_level: 0,
email_private_messages: false,
email_direct: false,
approved: false,
approved_by_id: nil,
approved_at: nil,
digest_after_days: 7,
previous_visit_at: nil,
suspended_at: nil,
suspended_till: nil,
date_of_birth: nil,
auto_track_topics_after_msecs: 240000,
views: 0,
flag_level: 0,
ip_address: nil,
new_topic_duration_minutes: 2880,
external_links_in_new_tab: false,
enable_quoting: true,
moderator: false,
blocked: false,
dynamic_favicon: false,
title: nil,
uploaded_avatar_id: nil,
email_always: false,
mailing_list_mode: false,
locale: nil,
primary_group_id: nil,
registration_ip_address: nil,
last_redirected_to_top_at: nil,
disable_jump_reply: false,
edit_history_public: true,
trust_level_locked: false,
staged: false,
automatically_unpin_topics: true>
[1]+ Stopped rails c
No that is not the correct way… type:
exit enter
twice.
Hi,
I’ve tried the way @zogstrip told. The user is no more on the discourse yet I got internal server error when trying to open all of the topics that the user posted in.
The following lines are from production.log and it is the only log that I could fetch so far. What is going wrong?
Started GET "/t/bilginin-tamamina-sahip-olmadiginizda-fikir-sahibi-olmadan-once-yapmaniz-gereken-3-sey/10594" for 80.5.152.180 at 2016-01-12 21:36:57 +0000
Processing by TopicsController#show as HTML
Parameters: {"slug"=>"bilginin-tamamina-sahip-olmadiginizda-fikir-sahibi-olmadan-once-yapmaniz-gereken-3-sey", "topic_id"=>"10594"}
Completed 500 Internal Server Error in 170ms (ActiveRecord: 23.8ms)
NoMethodError (undefined method ``id`` for nil:NilClass)
/var/www/discourse/app/serializers/topic_post_count_serializer.rb:6:in ``id'
UPDATE:
The user’s posts are still on the posts table and the error is most likely because of that the user data
of the post could not be found. Well, deleting posts of the user is just a simple query and I guess it is going to solve this but sanitizing all the data (post, like counts etc.) would take some time to achieve. Is there any sort of script to delete (or anonymize) all post data associated with a specific user (or user_id)?
What would the syntax be to do this by user id?
User.find_by(id: "foobar").destroy
User.find_by(id: 1234).destroy