class Superhosting::Controller::Admin
Public Class Methods
new(**kwargs)
click to toggle source
Calls superclass method
Superhosting::Base::new
# File lib/superhosting/controller/admin.rb, line 4 def initialize(**kwargs) super(**kwargs) @admins_mapper = @config.admins end
Public Instance Methods
add(name:, generate: false)
click to toggle source
# File lib/superhosting/controller/admin.rb, line 25 def add(name:, generate: false) if (resp = self.not_existing_validation(name: name)).net_status_ok? admin_dir = @admins_mapper.f(name) admin_dir.create! admin_dir.passwd.put!(name) self.reindex_admin(name: name) self.command!("chmod 640 #{admin_dir.path}") self.passwd(name: name, generate: generate) else resp end end
container(name:)
click to toggle source
# File lib/superhosting/controller/admin.rb, line 68 def container(name:) self.get_controller(Container, name: name) end
delete(name:)
click to toggle source
# File lib/superhosting/controller/admin.rb, line 38 def delete(name:) if (resp = self.existing_validation(name: name)).net_status_ok? admin_container_controller = self.get_controller(Admin::Container, name: name) if (resp = admin_container_controller._delete_all_users).net_status_ok? admin_dir = @admins_mapper.f(name) admin_dir.delete! self.reindex_admin(name: name) end end resp end
existing_validation(name:)
click to toggle source
# File lib/superhosting/controller/admin.rb, line 72 def existing_validation(name:) (@admins_mapper.f(name)).nil? ? { error: :logical_error, code: :admin_does_not_exists, data: { name: name } } : {} end
index()
click to toggle source
# File lib/superhosting/controller/admin.rb, line 80 def index @@index ||= self.reindex end
list()
click to toggle source
# File lib/superhosting/controller/admin.rb, line 9 def list admins = {} @admins_mapper.grep_dirs.map do |dir_name| admin_name = dir_name.name container_admin_controller = self.get_controller(Admin::Container, name: admin_name) if (resp = container_admin_controller.list).net_status_ok? admins[admin_name] = resp[:data] else return resp end end { data: admins } end
not_existing_validation(name:)
click to toggle source
# File lib/superhosting/controller/admin.rb, line 76 def not_existing_validation(name:) self.existing_validation(name: name).net_status_ok? ? { error: :logical_error, code: :admin_exists, data: { name: name } } : {} end
passwd(name:, generate: false)
click to toggle source
# File lib/superhosting/controller/admin.rb, line 50 def passwd(name:, generate: false) if (resp = self.existing_validation(name: name)).net_status_ok? user_controller = self.get_controller(User) admin_dir = @admins_mapper.f(name) passwords = user_controller._create_password(generate: generate) admin_dir.passwd.put!("#{name}:#{passwords[:encrypted_password]}") users = self.index[name] users.each do |user_name| user_controller._update_password(name: user_name, encrypted_password: passwords[:encrypted_password]) end generate ? { data: passwords[:password] } : {} else resp end end
reindex()
click to toggle source
# File lib/superhosting/controller/admin.rb, line 84 def reindex @@index = {} @admins_mapper.grep_dirs.each {|dir_name| self.reindex_admin(name: dir_name.name) } @@index end
reindex_admin(name:)
click to toggle source
# File lib/superhosting/controller/admin.rb, line 90 def reindex_admin(name:) @@index ||= {} if @admins_mapper.f(name).nil? @@index.delete(name) else admin_container_controller = self.get_controller(Admin::Container, name: name) @@index[name] = admin_container_controller._users_list.net_status_ok![:data] || [] end end