Module: WpWrapper::Modules::Authorization

Included in:
Client
Defined in:
lib/wp_wrapper/modules/authorization.rb

Instance Method Summary collapse

Instance Method Details

#login(retries = 3) ⇒ Object



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
# File 'lib/wp_wrapper/modules/authorization.rb', line 6

def (retries = 3)
  success                 =   logged_in?

  if (!success && retries > 0)
                =   self.mechanize_client.open_url(get_url(:admin))
    agent                 =   self.mechanize_client.agent

    if ()
                =   .form_with(:name => 'loginform')

      if ()
        .field_with(:name => 'log').value = self.username
        .field_with(:name => 'pwd').value = self.password

        begin
          logged_in_page  =   .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 "#{Time.now}: Url: #{self.url}. Successfully logged in? #{self.logged_in}"
        
        rescue Exception => e
          puts "#{Time.now}: Url: #{self.url}. Failed to login. Error Class: #{e.class.name}. Error Message: #{e.message}"
          (retries - 1) if retries > 0
          raise WpWrapper::FailedLoginException, "Failed to login" if retries <= 0 && self.reraise_exceptions
        end

      else
        puts "\n\n#{Time.now}: Url: #{self.url}. Something's broken! Can't find wp-admin login form! Retrying...\n\n"
        (retries - 1) if retries > 0
      end
    end
  end

  return success
end