active_directory_login 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/active_directory_login/client.rb +13 -12
- data/lib/active_directory_login/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 35dbce9c799a3b240d53d37db932486d6b13b138
         | 
| 4 | 
            +
              data.tar.gz: 897280b514e3103f8be0fbf6ea37f2482064458a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: a59a6f2317c42c66fbf0773a435a64ec474c3bca2a7ff64bb0d6c4ef9e9f03e72a576e565cd879d25bb995b642ac75a0c8ff07ad51f41507d3545719becf9187
         | 
| 7 | 
            +
              data.tar.gz: e628d1e43fe5e7d8ea607a66cf43de44810377cacc1d35fd333cd5dd4bee9bfd49c19dfad41e3dc2297c5adb4a0241e7cebaad42958355cfb1171517e58dd550
         | 
| @@ -62,10 +62,9 @@ module ActiveDirectoryLogin | |
| 62 62 |  | 
| 63 63 | 
             
                def with_user(username_or_email, password, &block)
         | 
| 64 64 | 
             
                  raise Error, "block required" if block.nil?
         | 
| 65 | 
            -
                    
         | 
| 66 65 | 
             
                  @ad_user = find_user(username_or_email)
         | 
| 67 66 | 
             
                  @ad_user_password = password
         | 
| 68 | 
            -
                  @query = query | 
| 67 | 
            +
                  @query = query
         | 
| 69 68 | 
             
                  @app_user = @query.first
         | 
| 70 69 |  | 
| 71 70 | 
             
                  value = block.call
         | 
| @@ -93,10 +92,9 @@ module ActiveDirectoryLogin | |
| 93 92 | 
             
                  @ad_user.try(:authenticate, @ad_user_password)
         | 
| 94 93 | 
             
                end
         | 
| 95 94 |  | 
| 96 | 
            -
                def query | 
| 97 | 
            -
                   | 
| 98 | 
            -
             | 
| 99 | 
            -
                    User.where { (provider == User::LDAP) & (username =~ username_or_email) }
         | 
| 95 | 
            +
                def query
         | 
| 96 | 
            +
                  ad_email = @ad_user.mail.downcase
         | 
| 97 | 
            +
                  @query =  User.where { (provider == User::LDAP) & (email =~ ad_email) }
         | 
| 100 98 | 
             
                end
         | 
| 101 99 |  | 
| 102 100 | 
             
                def create_or_update_user
         | 
| @@ -105,7 +103,7 @@ module ActiveDirectoryLogin | |
| 105 103 | 
             
                    name:      "#{@ad_user.givenname} #{@ad_user.sn}",
         | 
| 106 104 | 
             
                    email:     @ad_user.mail.downcase,
         | 
| 107 105 | 
             
                    username:  @ad_user[:sAMAccountName]
         | 
| 108 | 
            -
             | 
| 106 | 
            +
                    )
         | 
| 109 107 |  | 
| 110 108 | 
             
                  # Update the user's password and permissions (can't use update_attributes as it might not be saved yet)
         | 
| 111 109 | 
             
                  user.password              = @ad_user_password
         | 
| @@ -127,6 +125,10 @@ module ActiveDirectoryLogin | |
| 127 125 |  | 
| 128 126 | 
             
                  ad_key  = (username_or_email =~ /@/) ? :mail : :sAMAccountName
         | 
| 129 127 | 
             
                  ad_user = ActiveDirectory::User.find(:first, ad_key => username_or_email)
         | 
| 128 | 
            +
                  if ad_user.nil? # User hasnt used their primary email so try the secondary
         | 
| 129 | 
            +
                    ad_user = ActiveDirectory::User.find(:first,  "msrtcsip-primaryuseraddress" => "sip:#{username_or_email}")
         | 
| 130 | 
            +
                  end
         | 
| 131 | 
            +
                  ad_user
         | 
| 130 132 | 
             
                end
         | 
| 131 133 |  | 
| 132 134 |  | 
| @@ -183,7 +185,7 @@ module ActiveDirectoryLogin | |
| 183 185 | 
             
                    staff_unchanged_emails = staff_unchanged.collect(&:email)
         | 
| 184 186 |  | 
| 185 187 | 
             
                    # create any new staff
         | 
| 186 | 
            -
                    pending = Array(staff_member_emails - staff_allowed_emails -  | 
| 188 | 
            +
                    pending = Array(staff_member_emails - staff_allowed_emails - staff_unchanged_emails)
         | 
| 187 189 | 
             
                    pending.each do |pending_email|
         | 
| 188 190 | 
             
                      with_user(pending_email, SecureRandom.hex){ create_or_update_user }
         | 
| 189 191 | 
             
                    end
         | 
| @@ -207,8 +209,8 @@ module ActiveDirectoryLogin | |
| 207 209 | 
             
                    superuser_unchanged_emails = superuser_unchanged.collect(&:email)
         | 
| 208 210 |  | 
| 209 211 | 
             
                    # create any new superuser
         | 
| 210 | 
            -
                    pending = Array(superuser_member_emails - superuser_allowed_emails -  | 
| 211 | 
            -
             | 
| 212 | 
            +
                    pending = Array(superuser_member_emails - superuser_allowed_emails - superuser_unchanged_emails)
         | 
| 213 | 
            +
                    pending.each do |pending_email|
         | 
| 212 214 | 
             
                      with_user(pending_email, SecureRandom.hex){ create_or_update_user }
         | 
| 213 215 | 
             
                    end
         | 
| 214 216 | 
             
                    superuser_created_emails = pending
         | 
| @@ -218,7 +220,6 @@ module ActiveDirectoryLogin | |
| 218 220 |  | 
| 219 221 | 
             
                    ## update users
         | 
| 220 222 | 
             
                    user_group = find_group(user_dn)
         | 
| 221 | 
            -
             | 
| 222 223 | 
             
                    member_emails = user_group.member.collect(&:mail).map(&:downcase)
         | 
| 223 224 | 
             
                    member_emails = member_emails - superuser_member_emails - staff_member_emails
         | 
| 224 225 |  | 
| @@ -234,7 +235,7 @@ module ActiveDirectoryLogin | |
| 234 235 | 
             
                    user_unchanged_emails = user_unchanged.collect(&:email)
         | 
| 235 236 |  | 
| 236 237 | 
             
                    #create any new user
         | 
| 237 | 
            -
                    pending = Array( | 
| 238 | 
            +
                    pending = Array(member_emails - user_allowed_emails - user_unchanged_emails)
         | 
| 238 239 | 
             
                    pending.each do |pending_email|
         | 
| 239 240 | 
             
                      with_user(pending_email, SecureRandom.hex){ create_or_update_user }
         | 
| 240 241 | 
             
                    end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: active_directory_login
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.5
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Brad Murray
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014-03- | 
| 11 | 
            +
            date: 2014-03-16 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         |