]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/accounts/recipes/default.rb
Merge remote-tracking branch 'github/pull/193'
[chef.git] / cookbooks / accounts / recipes / default.rb
index 50e3d375a6d95a2724d8f7347b68efb06ea759f3..ada3b08f8658148aac2955ee1a02118ab76864a1 100644 (file)
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
 #
 # Cookbook Name:: accounts
 # Recipe:: default
 #
 # Cookbook Name:: accounts
 # Recipe:: default
@@ -9,7 +8,7 @@
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
 #
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
 #
-#     http://www.apache.org/licenses/LICENSE-2.0
+#     https://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
@@ -18,9 +17,7 @@
 # limitations under the License.
 #
 
 # limitations under the License.
 #
 
-package "zsh" do
-  action :install
-end
+package "zsh"
 
 administrators = []
 
 
 administrators = []
 
@@ -30,11 +27,10 @@ search(:accounts, "*:*").each do |account|
 
   if details[:status]
     group_members = details[:members] || account["members"] || []
 
   if details[:status]
     group_members = details[:members] || account["members"] || []
-    user_home = details[:home] || account["home"] || "#{node[:accounts][:home]}/#{name.to_s}"
-    manage_home = details[:manage_home] || account["manage_home"] || node[:accounts][:manage_home]
-    groups = details[:groups] || account["groups"] || []
+    user_home = details[:home] || account["home"] || "#{node[:accounts][:home]}/#{name}"
+    manage_user_home = details.fetch(:manage_home, account.fetch("manage_home", node[:accounts][:manage_home]))
 
 
-    group_members = group_members.collect { |m| m.to_s }.sort
+    group_members = group_members.collect(&:to_s).sort
 
     case details[:status]
     when "role"
 
     case details[:status]
     when "role"
@@ -44,19 +40,17 @@ search(:accounts, "*:*").each do |account|
     end
 
     group name.to_s do
     end
 
     group name.to_s do
-      action :create
       gid account["uid"].to_i
       members group_members & node[:etc][:passwd].keys
     end
 
     user name.to_s do
       gid account["uid"].to_i
       members group_members & node[:etc][:passwd].keys
     end
 
     user name.to_s do
-      action :create
       uid account["uid"].to_i
       gid account["uid"].to_i
       comment account["comment"] if account["comment"]
       home user_home
       shell user_shell
       uid account["uid"].to_i
       gid account["uid"].to_i
       comment account["comment"] if account["comment"]
       home user_home
       shell user_shell
-      supports :manage_home => manage_home
+      manage_home manage_user_home
     end
 
     remote_directory "/home/#{name}" do
     end
 
     remote_directory "/home/#{name}" do
@@ -64,24 +58,22 @@ search(:accounts, "*:*").each do |account|
       source name.to_s
       owner name.to_s
       group name.to_s
       source name.to_s
       owner name.to_s
       group name.to_s
-      mode 0755
+      mode 0o755
       files_owner name.to_s
       files_group name.to_s
       files_owner name.to_s
       files_group name.to_s
-      files_mode 0644
+      files_mode 0o644
       only_if do
         begin
           cookbook = run_context.cookbook_collection[cookbook_name]
           files = cookbook.relative_filenames_in_preferred_directory(node, :files, name.to_s)
       only_if do
         begin
           cookbook = run_context.cookbook_collection[cookbook_name]
           files = cookbook.relative_filenames_in_preferred_directory(node, :files, name.to_s)
-          not files.empty?
+          !files.empty?
         rescue Chef::Exceptions::FileNotFound
           false
         end
       end
     end
 
         rescue Chef::Exceptions::FileNotFound
           false
         end
       end
     end
 
-    if details[:status] == "administrator"
-      administrators.push(name.to_s)
-    end
+    administrators.push(name.to_s) if details[:status] == "administrator"
   else
     user name.to_s do
       action :remove
   else
     user name.to_s do
       action :remove
@@ -93,7 +85,7 @@ search(:accounts, "*:*").each do |account|
   end
 end
 
   end
 end
 
-node[:accounts][:groups].each do |name,details|
+node[:accounts][:groups].each do |name, details|
   group name do
     action :modify
     members details[:members]
   group name do
     action :modify
     members details[:members]