5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/wp_wrapper/modules/authorization.rb', line 5
def login(force: false, retries: 3)
success = force ? false : logged_in?
if !success
login_page = self.mechanize_client.open_url(get_url(:admin))
agent = self.mechanize_client.agent
if login_page
upgraded = upgrade_if_necessary(login_page)
login(retries) if upgraded
login_form = login_page.form_with(name: 'loginform')
if login_form
login_form.field_with(name: 'log').value = self.username
login_form.field_with(name: 'pwd').value = self.password
begin
logged_in_page = login_form.submit
log_out_link = logged_in_page.link_with(href: /wp-login\.php\?action=logout/i)
self.logged_in = !log_out_link.nil?
success = self.logged_in
puts "[WpWrapper::Modules::Authorization] - #{Time.now}: Url: #{self.url}. Successfully logged in? #{self.logged_in}"
rescue Exception => e
puts "[WpWrapper::Modules::Authorization] - #{Time.now}: Url: #{self.url}. Failed to login. Error Class: #{e.class.name}. Error Message: #{e.message}"
login(force: force, retries: retries - 1) if retries > 0
raise WpWrapper::FailedLoginException, "Failed to login" if retries <= 0 && self.reraise_exceptions
end
else
puts "[WpWrapper::Modules::Authorization] - #{Time.now}: Url: #{self.url}. Something's broken! Can't find wp-admin login form! Retrying...\n\n"
login(force: force, retries: retries - 1) if retries > 0
raise WpWrapper::FailedLoginException, "Failed to login" if retries <= 0 && self.reraise_exceptions
end
end
end
success = !(retries <= 0)
return success
end
|