class OrganizationsController < ApplicationController 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 @organization_membership = OrganizationMembership.create!(organization_id: @organization.id, user_id: current_user.id, type_of_user: "admin") flash[:settings_notice] = "Your organization was successfully created and you are an admin." redirect_to "/settings/organization/#{@organization.id}" else render template: "users/edit" end end def update @user = current_user @tab = "organization" @tab_list = @user.settings_tab_list set_organization if @organization.update(organization_params.merge(profile_updated_at: Time.current)) flash[:settings_notice] = "Your organization was successfully updated." redirect_to "/settings/organization" else render template: "users/edit" end end def generate_new_secret set_organization @organization.secret = @organization.generated_random_secret @organization.save flash[:settings_notice] = "Your org secret was updated" redirect_to "/settings/organization" end private def permitted_params accessible = %i[ id 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 cta_button_text cta_button_url cta_body_markdown ] 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 def set_organization @organization = Organization.find_by(id: organization_params[:id]) authorize @organization end end