Class: UnixUserManager
- Inherits:
-
Object
- Object
- UnixUserManager
- Defined in:
- lib/unix_user_manager.rb,
lib/unix_user_manager/version.rb
Defined Under Namespace
Modules: File Classes: Base, Groups, Users
Constant Summary collapse
- VERSION =
'0.1.1'.freeze
Instance Attribute Summary collapse
-
#group ⇒ Object
readonly
Returns the value of attribute group.
-
#groups ⇒ Object
readonly
Returns the value of attribute groups.
-
#passwd ⇒ Object
readonly
Returns the value of attribute passwd.
-
#shadow ⇒ Object
readonly
Returns the value of attribute shadow.
-
#users ⇒ Object
readonly
Returns the value of attribute users.
Instance Method Summary collapse
- #available_id(min_id: 100, max_id: 500, preffered_ids: [200, 300, 333, 400, 500], recursive: false) ⇒ Object
- #available_ids(min_id: 100, max_id: 500) ⇒ Object
-
#initialize(passwd:, shadow:, group:) ⇒ UnixUserManager
constructor
A new instance of UnixUserManager.
Constructor Details
#initialize(passwd:, shadow:, group:) ⇒ UnixUserManager
16 17 18 19 20 21 22 23 |
# File 'lib/unix_user_manager.rb', line 16 def initialize(passwd:, shadow:, group:) @passwd = UnixUserManager::File::Passwd.new passwd @shadow = UnixUserManager::File::Shadow.new shadow @group = UnixUserManager::File::Group.new group @users = UnixUserManager::Users.new(passwd: @passwd, shadow: @shadow) @groups = UnixUserManager::Groups.new(group: @group) end |
Instance Attribute Details
#group ⇒ Object (readonly)
Returns the value of attribute group.
13 14 15 |
# File 'lib/unix_user_manager.rb', line 13 def group @group end |
#groups ⇒ Object (readonly)
Returns the value of attribute groups.
13 14 15 |
# File 'lib/unix_user_manager.rb', line 13 def groups @groups end |
#passwd ⇒ Object (readonly)
Returns the value of attribute passwd.
13 14 15 |
# File 'lib/unix_user_manager.rb', line 13 def passwd @passwd end |
#shadow ⇒ Object (readonly)
Returns the value of attribute shadow.
13 14 15 |
# File 'lib/unix_user_manager.rb', line 13 def shadow @shadow end |
#users ⇒ Object (readonly)
Returns the value of attribute users.
13 14 15 |
# File 'lib/unix_user_manager.rb', line 13 def users @users end |
Instance Method Details
#available_id(min_id: 100, max_id: 500, preffered_ids: [200, 300, 333, 400, 500], recursive: false) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/unix_user_manager.rb', line 25 def available_id(min_id: 100, max_id: 500, preffered_ids: [200, 300, 333, 400, 500], recursive: false) ids = available_ids(min_id: min_id, max_id: max_id) new_id = (ids & preffered_ids).any? ? (ids & preffered_ids)[0] : ids[0] if recursive && new_id.nil? available_id(min_id: min_id, preffered_ids: preffered_ids, recursive: recursive, max_id: max_id + 100) else new_id end end |
#available_ids(min_id: 100, max_id: 500) ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/unix_user_manager.rb', line 37 def available_ids(min_id: 100, max_id: 500) # Service ids must be from 100 to 500 available_uid = (min_id..max_id).to_a - users.ids available_gid = (min_id..max_id).to_a - groups.ids available_uid & available_gid end |