class OrganizationsController < ApplicationController before_action :authenticate_user!, except: [:show] after_action :verify_authorized def create @tab = "organization" @user = current_user @tab_list = @user.settings_tab_list @organization = Organization.new(organization_params) authorize @organization if @organization.save current_user.update(organization_id: @organization.id, org_admin: true) redirect_to "/settings/organization", notice: "Your organization was successfully created and you are an admin." else @tab = "switch-organizations" if @user.has_role?(:switch_between_orgs) render template: "users/edit" end end # GET /users/:id/edit def update @user = current_user @tab = "organization" @tab_list = @user.settings_tab_list @organization = @user.organization authorize @organization if @organization.update(organization_params) redirect_to "/settings/organization", notice: "Your organization was successfully updated." else render template: "users/edit" end end def generate_new_secret raise unless current_user.org_admin @organization = current_user.organization authorize @organization @organization.secret = @organization.generated_random_secret @organization.save redirect_to "/settings/organization", notice: "Your org secret was updated" end private def permitted_params accessible = %i[ name summary tag_line slug url proof profile_image location company_size tech_stack email story bg_color_hex text_color_hex twitter_username github_username ] approved_params = %i(cta_button_text cta_button_url cta_body_markdown) @organization&.approved ? accessible + approved_params : accessible end def organization_params params.require(:organization).permit(permitted_params). transform_values do |value| if value.class.name == "String" ActionController::Base.helpers.strip_tags(value) else value end end end end