lib/superhosting/controller/container/admin.rb in superhosting-0.0.1 vs lib/superhosting/controller/container/admin.rb in superhosting-0.0.2
- old
+ new
@@ -1,23 +1,45 @@
module Superhosting
module Controller
class Container
class Admin < Base
- def initialize(name:, **kvargs)
+ def initialize(name:, **kwargs)
+ super(kwargs)
@container_name = name
- super(kvargs)
+ @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
\ No newline at end of file