clarion/app/controllers/management/users_controller.rb

85 lines
1.8 KiB
Ruby
Raw Normal View History

# TODO Needs to work with profiles, not with users
module Management
class UsersController < ManagementController
def index
2015-07-26 14:58:56 +03:00
@conference = find_conference
@profiles = @conference.participant_profiles
end
def toggle_admin
2015-07-26 14:58:56 +03:00
@conference = find_conference
@user = find_user
2014-09-17 17:48:46 +03:00
@user.toggle_admin!
2015-05-30 16:34:49 +03:00
redirect_to :back
2014-09-17 17:48:46 +03:00
end
def show
2015-07-26 14:58:56 +03:00
@conference = find_conference
@user = find_user
@profile = @user.personal_profile(@conference)
if not @profile
flash[:error] = "No profile, needs to be created"
redirect_to action: :edit
end
end
def edit
2015-07-26 14:58:56 +03:00
@conference = find_conference
@user = find_user
@profile = @user.personal_profile(@conference)
# TODO (2015-07-26) Totally not working, can't create new profile properly
if not @profile
@profile = @user.clone_recent_profile(@conference)
end
end
def update
@conference = find_conference
@user = find_user
if @user.update_attributes(user_params)
redirect_to [:management, @conference, @user]
else
render action: 'edit'
end
end
2015-05-25 11:29:22 +03:00
def destroy
@user = find_user
@user.destroy
redirect_to action: :index
end
private
2015-05-10 13:36:29 +03:00
def find_user
User.find(params[:id])
end
2015-07-26 14:58:56 +03:00
def find_conference
Conference.find(params[:conference_id])
end
def user_params
params.require(:user).permit(
:email,
personal_profiles_attributes: [
:picture,
:first_name,
:last_name,
:mobile_phone,
:biography,
:organisation,
:public_email,
:github,
:twitter,
]
)
end
end
end