Class: Mks::Auth::UsersController
Instance Method Summary
collapse
#app_code, #current_user, #current_user_id, #logged_in?
Instance Method Details
#create ⇒ Object
33
34
35
36
37
38
39
40
41
42
|
# File 'app/controllers/mks/auth/users_controller.rb', line 33
def create
@user = User.new(user_params)
app_module = ApplicationModule.find_by(code: app_code)
@user.application_modules = [app_module]
if @user.save
render json: { success: true, data: @user }
else
render json: { success: false, error: @user.errors.full_messages[0] }, status: :uprocessable_entity
end
end
|
#index ⇒ Object
7
8
9
10
|
# File 'app/controllers/mks/auth/users_controller.rb', line 7
def index
@users = ApplicationModule.find_by(code: app_code).users
render json: @users
end
|
#login ⇒ Object
52
53
54
55
56
57
58
59
60
61
62
|
# File 'app/controllers/mks/auth/users_controller.rb', line 52
def login
user = User.find_by(email: auth_params[:email])
if user.authenticate(auth_params[:password]) &&
user.has_module(auth_params[:app_module])
jwt = TokenAuth.issue(user.to_token_payload)
render json: { jwt: jwt }
else
render json: {}, status: 400
end
end
|
#roles ⇒ Object
12
13
14
15
|
# File 'app/controllers/mks/auth/users_controller.rb', line 12
def roles
user = User.find(params[:id])
render json: user.roles
end
|
#save_selected_roles ⇒ Object
25
26
27
28
29
30
31
|
# File 'app/controllers/mks/auth/users_controller.rb', line 25
def save_selected_roles
@user.roles.delete_all
selected = save_selected_roles_params['roles'].select { |r| r['selected'] }.map{ |r| r['id'] }
roles = UserRole.where(id: selected)
@user.roles << roles
render json: { success: true }
end
|
#update ⇒ Object
44
45
46
47
48
49
50
|
# File 'app/controllers/mks/auth/users_controller.rb', line 44
def update
if @user.update(user_params)
render json: { success: true, data: @user }
else
render json: { success: false, error: @user.errors.full_messages[0] }, status: :unprocessable_entity
end
end
|
#user_roles ⇒ Object
A method to fetch all roles, with roles of a user marked as selected
19
20
21
22
23
|
# File 'app/controllers/mks/auth/users_controller.rb', line 19
def user_roles
all_roles = UserRole.joins(:application_module).where(mks_auth_application_modules: { code: app_code })
roles = all_roles.map { |r| { id: r.id, name: r.name, selected: @user.roles.include?(r) } }
render json: roles
end
|