summaryrefslogtreecommitdiffstats
path: root/app.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app.rb')
-rw-r--r--app.rb15
1 files changed, 14 insertions, 1 deletions
diff --git a/app.rb b/app.rb
index 7ce9d22..192814a 100644
--- a/app.rb
+++ b/app.rb
@@ -939,7 +939,9 @@ post '/admin/people/:uuid/move' do
halt 404 unless member
people[src]['members'].delete(member)
- if to == 'new'
+ if to == 'remove'
+ # just drop it — already deleted from src above
+ elsif to == 'new'
new_uid = SecureRandom.uuid
people[new_uid] = { 'name' => nil, 'slug' => nil, 'members' => [member] }
else
@@ -947,12 +949,23 @@ post '/admin/people/:uuid/move' do
people[to]['members'] << member
end
+ people.delete(src) if people[src] && people[src]['members'].empty?
data['people'] = people
atomic_write(PEOPLE_PATH, JSON.pretty_generate(data))
people[src] ? redirect("/admin/people/#{src}") : redirect('/admin/people')
end
+post '/admin/people/:uuid/delete' do
+ require_admin!
+ data = load_people_data
+ people = data['people'] || {}
+ people.delete(params[:uuid])
+ data['people'] = people
+ atomic_write(PEOPLE_PATH, JSON.pretty_generate(data))
+ redirect '/admin/people'
+end
+
post '/admin/people/:uuid/merge' do
require_admin!
src = params[:uuid]