forked from gecos-team/kitchen
/
home_users_controller.rb
38 lines (31 loc) · 1.13 KB
/
home_users_controller.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class HomeUsersController < ApplicationController
helper HomeUsersHelper
def index
@users = HomeUser.all
end
def edit
@user = HomeUser.find(params[:id])
if @user.kind_of? Array
@user = @user.first
end
@user.databag = Usermanagement.find("user_skel") if @user.databag.blank?
end
def update
@databag = Usermanagement.find_or_create(params[:id])
@user = HomeUser.find(params[:id])
if @user.kind_of? Array
@user = @user.first
end
#Insert id into json to load
params[:databag][:id] = @databag.id
params[:databag][:username] = @databag.username
#Ugly fix for multiple attributes. While form needs unique ids in inputs, json not. Try to parse it to get something similar to no-unique form ids.
@user.multiple_in_skel.each do |multiple|
attribute = params[:databag][multiple].keys.first
params[:databag][multiple][attribute] = params[:databag][multiple].values.map{|x| x.values}.flatten
end
r_hash = HomeUsersHelper.recursive_hash(params[:databag].to_hash, {})
Usermanagement.update(r_hash)
redirect_to edit_home_user_path(@user.username)
end
end