Sha256: 7176e46460c364aa3c78a0245fbd00a93853bd15e87396f70da3fa436e073090

Contents?: true

Size: 1.45 KB

Versions: 30

Compression:

Stored size: 1.45 KB

Contents

require 'chaltron/ldap/person'

class Chaltron::LdapController < ApplicationController
  before_action :authenticate_user!
  before_action :authorize_create_user

  default_log_category :user_admin

  def search
    @limit = default_limit
  end

  def multi_new
    @entries = []
    userid = params[:userid]
    if userid.present?
      entry = Chaltron::LDAP::Person.find_by_uid(userid)
      @entries << entry unless entry.nil?
    else
      res = Chaltron::LDAP::Person.find_by_fields(find_options)
      @entries = res
    end
  end

  def multi_create
    @created = []
    @error   = []
    (params[:uids] || []).each do |uid|
      user = Chaltron::LDAP::Person.find_by_uid(uid).create_user(params[:user][:roles])
      if user.new_record?
        @error << user
      else
        @created << user
      end
    end
    info I18n.t('chaltron.logs.users.ldap_created',
        current: current_user.display_name, count: @created.size,
        user: @created.map(&:display_name).join(', ')) if @created.size > 0
  end

  private
  def find_options
    department = params[:department]
    name       = params[:fullname]
    limit      = params[:limit].to_i

    ret = {}
    ret[:department] = "*#{department}*" unless department.blank?
    ret[:cn]         = "*#{name}*"       unless name.blank?
    ret[:limit]      = limit.zero? ? default_limit : limit
    ret
  end

  def default_limit
    100
  end

  def authorize_create_user
    authorize! :create, User
  end

end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
chaltron-0.2.11 app/controllers/chaltron/ldap_controller.rb
chaltron-1.0.10 app/controllers/chaltron/ldap_controller.rb
chaltron-0.2.10 app/controllers/chaltron/ldap_controller.rb
chaltron-1.0.9 app/controllers/chaltron/ldap_controller.rb
chaltron-1.0.8 app/controllers/chaltron/ldap_controller.rb
chaltron-1.0.7 app/controllers/chaltron/ldap_controller.rb
chaltron-0.2.9 app/controllers/chaltron/ldap_controller.rb
chaltron-1.0.6 app/controllers/chaltron/ldap_controller.rb
chaltron-1.0.5 app/controllers/chaltron/ldap_controller.rb
chaltron-1.0.4 app/controllers/chaltron/ldap_controller.rb
chaltron-0.2.8 app/controllers/chaltron/ldap_controller.rb
chaltron-0.2.7 app/controllers/chaltron/ldap_controller.rb
chaltron-1.0.3 app/controllers/chaltron/ldap_controller.rb
chaltron-1.0.2 app/controllers/chaltron/ldap_controller.rb
chaltron-1.0.1 app/controllers/chaltron/ldap_controller.rb
chaltron-0.2.6 app/controllers/chaltron/ldap_controller.rb
chaltron-1.0.0 app/controllers/chaltron/ldap_controller.rb
chaltron-0.2.5 app/controllers/chaltron/ldap_controller.rb
chaltron-0.2.4 app/controllers/chaltron/ldap_controller.rb
chaltron-0.2.3 app/controllers/chaltron/ldap_controller.rb