# # Author:: Jay Mundrawala() # Copyright:: Copyright 2015 Chef Software # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # 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 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # require 'chef/win32/api/net' require 'chef/win32/error' require 'chef/mixin/wide_string' class Chef module ReservedNames::Win32 class Net include Chef::ReservedNames::Win32::API::Error extend Chef::ReservedNames::Win32::API::Error include Chef::ReservedNames::Win32::API::Net extend Chef::ReservedNames::Win32::API::Net include Chef::Mixin::WideString extend Chef::Mixin::WideString def self.default_user_info_3 ui3 = USER_INFO_3.new.tap do |s| { usri3_name: nil, usri3_password: nil, usri3_password_age: 0, usri3_priv: 0, usri3_home_dir: nil, usri3_comment: nil, usri3_flags: UF_SCRIPT|UF_DONT_EXPIRE_PASSWD|UF_NORMAL_ACCOUNT, usri3_script_path: nil, usri3_auth_flags: 0, usri3_full_name: nil, usri3_usr_comment: nil, usri3_parms: nil, usri3_workstations: nil, usri3_last_logon: 0, usri3_last_logoff: 0, usri3_acct_expires: -1, usri3_max_storage: -1, usri3_units_per_week: 0, usri3_logon_hours: nil, usri3_bad_pw_count: 0, usri3_num_logons: 0, usri3_logon_server: nil, usri3_country_code: 0, usri3_code_page: 0, usri3_user_id: 0, usri3_primary_group_id: DOMAIN_GROUP_RID_USERS, usri3_profile: nil, usri3_home_dir_drive: nil, usri3_password_expired: 0 }.each do |(k,v)| s.set(k, v) end end end def self.net_api_error!(code) msg = case code when NERR_InvalidComputer "The user does not have access to the requested information." when NERR_NotPrimary "The operation is allowed only on the primary domain controller of the domain." when NERR_SpeGroupOp "This operation is not allowed on this special group." when NERR_LastAdmin "This operation is not allowed on the last administrative account." when NERR_BadUsername "The user name or group name parameter is invalid." when NERR_BadPassword "The password parameter is invalid." when NERR_UserNotFound raise Chef::Exceptions::UserIDNotFound, code when NERR_PasswordTooShort <