diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 8fad4df..283a442 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -85,22 +85,28 @@ def admin_api_update if user_signed_in? && current_user.is_org_admin? then #iterate through all org users + user_ids = params[:api_user_ids].blank? ? [] : params[:api_user_ids].map(&:to_i) + admin_user_ids = params[:org_admin_ids].blank? ? [] : params[:org_admin_ids].map(&:to_i) current_user.organisation.users.each do |user| - if !params[:user_ids].nil? - user_ids = params[:user_ids].map(&:to_i) - # if user_id in passed params - if user_ids.include? user.id - # run generate_or_keep - user.keep_or_generate_token! - # if not in passed params - else - # remove the token - user.remove_token! - end + # if user_id in passed params + if user_ids.include? user.id + # run generate_or_keep + user.keep_or_generate_token! + # if not in passed params else - # no users selected so remove all tokens + # remove the token user.remove_token! end + # ORG_ADMINS + if admin_user_ids.include?( user.id) && !user.is_org_admin? + # add admin privleges + # MAGIC_STRING + user.roles << Role.find_by(name: "org_admin") + # if user_id not in passed, but user is an admin + elsif !admin_user_ids.include?(user.id) && user.is_org_admin? + # strip admin privleges + user.roles.delete(Role.find_by(name: "org_admin")) + end end #redirect_to admin_index else diff --git a/app/views/users/admin_api_update.html.erb b/app/views/users/admin_api_update.html.erb index e7e94f1..3f26ec2 100644 --- a/app/views/users/admin_api_update.html.erb +++ b/app/views/users/admin_api_update.html.erb @@ -13,6 +13,7 @@ <%= t('org_admin.user_name') %> <%= t('org_admin.last_logged_in') %> <%= t('org_admin.how_many_plans') %> + <%= t('org_admin.is_org_admin') %> <% if current_user.organisation.token_permission_types.count > 0 %> <%= t('org_admin.api_privleges') %> <% end %> @@ -42,15 +43,18 @@ <%= user.project_groups.count %> <% end %> + + <%= check_box_tag "org_admin_ids[]", user.id, user.is_org_admin? %> + <% if current_user.organisation.token_permission_types.count > 0 %> - <%= check_box_tag "user_ids[]", user.id, user.api_token !="" %> + <%= check_box_tag "api_user_ids[]", user.id, user.api_token !="" %> <% end %> <% end %> <% end %> - <%= submit_tag "Update API Privleges" %> + <%= submit_tag "Update Users" %> <% end %> \ No newline at end of file diff --git a/app/views/users/admin_index.html.erb b/app/views/users/admin_index.html.erb index e7e94f1..3f26ec2 100644 --- a/app/views/users/admin_index.html.erb +++ b/app/views/users/admin_index.html.erb @@ -13,6 +13,7 @@ <%= t('org_admin.user_name') %> <%= t('org_admin.last_logged_in') %> <%= t('org_admin.how_many_plans') %> + <%= t('org_admin.is_org_admin') %> <% if current_user.organisation.token_permission_types.count > 0 %> <%= t('org_admin.api_privleges') %> <% end %> @@ -42,15 +43,18 @@ <%= user.project_groups.count %> <% end %> + + <%= check_box_tag "org_admin_ids[]", user.id, user.is_org_admin? %> + <% if current_user.organisation.token_permission_types.count > 0 %> - <%= check_box_tag "user_ids[]", user.id, user.api_token !="" %> + <%= check_box_tag "api_user_ids[]", user.id, user.api_token !="" %> <% end %> <% end %> <% end %> - <%= submit_tag "Update API Privleges" %> + <%= submit_tag "Update Users" %> <% end %> \ No newline at end of file