Class: Mks::Auth::UserRolesController
- Inherits:
-
ApplicationController
- Object
- ActionController::API
- ApplicationController
- Mks::Auth::UserRolesController
- Defined in:
- app/controllers/mks/auth/user_roles_controller.rb
Instance Method Summary collapse
-
#assign_roles ⇒ Object
A method which assigns selected roles to a user.
- #assigned_roles ⇒ Object
-
#index ⇒ Object
GET /user_roles.
- #users ⇒ Object
Methods inherited from ApplicationController
#app_code, #current_user, #current_user_id, #logged_in?
Instance Method Details
#assign_roles ⇒ Object
A method which assigns selected roles to a user. This method expects that only selected roles (i.e. roles with ‘selected` attribute set to true). It removes all other roles and assigns those selected roles to the user.
38 39 40 41 42 43 44 45 46 |
# File 'app/controllers/mks/auth/user_roles_controller.rb', line 38 def assign_roles selected_roles = params[:roles]&.map { |r| r[:id] } user_roles = UserRole.where(id: selected_roles) @user.roles.destroy_all @user.roles = user_roles response = { success: true, message: 'Role assignment successful!' } render json: response end |
#assigned_roles ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'app/controllers/mks/auth/user_roles_controller.rb', line 19 def assigned_roles selected = @user.roles.map { |ur| { id: ur.id, name: ur.name, selected: true }} ids = @user.roles.map(&:id) user_roles = UserRole.joins(:application_module) .where("mks_auth_application_modules.code = '#{app_code}'") .where.not('mks_auth_user_roles.id IN (?)', ids) not_selected = user_roles.map { |ur| { id: ur.id, name: ur.name, selected: false }} data = (selected + not_selected).sort_by{ |r| r[:name] } response = { success: true, data: data } render json: response end |
#index ⇒ Object
GET /user_roles
8 9 10 11 12 13 |
# File 'app/controllers/mks/auth/user_roles_controller.rb', line 8 def index user_roles = UserRole.joins(:application_module) .where("mks_auth_application_modules.code = '#{app_code}'") .order(:name) render json: user_roles end |
#users ⇒ Object
15 16 17 |
# File 'app/controllers/mks/auth/user_roles_controller.rb', line 15 def users render json: @role.users end |