Sha256: 7cdd313130e237cc72dcb6285194f33e364c0d6d2aa0f6adcbe30f96d136e3f8

Contents?: true

Size: 1.44 KB

Versions: 1

Compression:

Stored size: 1.44 KB

Contents

module Superhosting
  module Controller
    class Container
      class Admin < Base
        def initialize(name:, **kwargs)
          super(kwargs)
          @container_name = name
          @user_controller = self.get_controller(User)
          @admin_controller = self.get_controller(Controller::Admin)
        end

        def list
          container_admins = self._list
          { data: container_admins }
        end

        def _list
          self._list_users.map do |user|
            { admin: user[/(?<=#{@container_name}_admin_)(.*)/], user: user }
          end
        end

        def add(name:)
          if (resp = @admin_controller.existing_validation(name: name)).net_status_ok?
            admin_container_controller = self.get_controller(Controller::Admin::Container, name: name)
            resp = admin_container_controller.add(name: @container_name)
          end
          resp
        end

        def delete(name:)
          if (resp = @admin_controller.existing_validation(name: name)).net_status_ok?
            admin_container_controller = self.get_controller(Controller::Admin::Container, name: name)
            resp = admin_container_controller.delete(name: @container_name)
          end
          resp
        end

        def _list_users
          users = @user_controller._group_get_users_names(name: @container_name)
          users.select {|user| user.start_with? "#{@container_name}_admin_" }
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
superhosting-0.0.2 lib/superhosting/controller/container/admin.rb