Fix employee adding
This commit is contained in:
@@ -30,7 +30,7 @@ module Suppliers
|
||||
raise CanCan::AccessDenied unless current_employee.active?
|
||||
@current_ability = ::Ability.new( current_employee )
|
||||
Array.wrap(after_authentication_hooks).each do |hook|
|
||||
next if hook[:options][:only].present? && !Array.wrap(hook[:options][:only].include?(action_name.to_sym))
|
||||
next if hook[:options][:only].present? && !Array.wrap(hook[:options][:only]).include?(action_name.to_sym)
|
||||
instance_eval &hook[:block]
|
||||
end
|
||||
end
|
||||
|
||||
@@ -20,10 +20,23 @@ module Suppliers
|
||||
# POST /employees
|
||||
# POST /employees.json
|
||||
def create
|
||||
@employee = Employee.find_by_email(employee_params[:email]) if employee_params[:email].present?
|
||||
valid = false
|
||||
if existing_employee = Employee.find_by_email(employee_params[:email])
|
||||
@employee = existing_employee
|
||||
if valid = @employee.valid?
|
||||
current_supplier.add_employee @employee
|
||||
@employee.update_attributes employee_params
|
||||
end
|
||||
else
|
||||
@employee = Employee.new(employee_params)
|
||||
@employee.password = SecureRandom.hex(8)
|
||||
if valid = @employee.save
|
||||
current_supplier.add_employee @employee
|
||||
@employee.update_attributes employee_params # needed for supplier specific settings
|
||||
end
|
||||
end
|
||||
|
||||
if @employee.save
|
||||
current_supplier.add_employee @employee unless current_supplier.employee_ids.include? @employee.id # already linked
|
||||
if valid
|
||||
render json: @employee, serializer: Suppliers::EmployeeSerializer, status: :created
|
||||
else
|
||||
render json: {errors: @employee.errors}, status: :unprocessable_entity
|
||||
|
||||
Reference in New Issue
Block a user