adp-product-userinfo 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +4 -0
  5. data/CODE_OF_CONDUCT.md +42 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE +201 -0
  8. data/README.md +253 -0
  9. data/Rakefile +6 -0
  10. data/adp-product-userinfo.gemspec +41 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/democlient/Gemfile +16 -0
  14. data/democlient/Gemfile.lock +47 -0
  15. data/democlient/LICENSE +201 -0
  16. data/democlient/README.md +2 -0
  17. data/democlient/Rakefile +9 -0
  18. data/democlient/adp_userinfo_ruby.rb +216 -0
  19. data/democlient/config.ru +24 -0
  20. data/democlient/config/authorizationcode_config.yml +15 -0
  21. data/democlient/config/certs/apiclient_iat.key +27 -0
  22. data/democlient/config/certs/apiclient_iat.pem +45 -0
  23. data/democlient/config/certs/apiclient_iat.pfx +0 -0
  24. data/democlient/config/clientcredential_config.yml +11 -0
  25. data/democlient/public/favicon.ico +0 -0
  26. data/democlient/public/images/.gitkeep +0 -0
  27. data/democlient/public/images/ADP_logo_tagline.png +0 -0
  28. data/democlient/public/images/busy.gif +0 -0
  29. data/democlient/public/images/hazel_icon.png +0 -0
  30. data/democlient/public/images/hazel_small.png +0 -0
  31. data/democlient/public/javascripts/.gitkeep +0 -0
  32. data/democlient/public/stylesheets/.gitkeep +0 -0
  33. data/democlient/public/stylesheets/main.css +225 -0
  34. data/democlient/spec/adp_connection_ruby_spec.rb +14 -0
  35. data/democlient/spec/spec_helper.rb +23 -0
  36. data/democlient/views/authorization_code.erb +128 -0
  37. data/democlient/views/client_credentials.erb +76 -0
  38. data/democlient/views/layout.erb +52 -0
  39. data/democlient/views/welcome.erb +33 -0
  40. data/lib/adp/product/dto/user_info.rb +30 -0
  41. data/lib/adp/product/userinfo.rb +11 -0
  42. data/lib/adp/product/userinfo/helper.rb +40 -0
  43. data/lib/adp/product/userinfo/version.rb +7 -0
  44. metadata +162 -0
@@ -0,0 +1,24 @@
1
+ # Load path and gems/bundler
2
+ $LOAD_PATH << File.expand_path(File.dirname(__FILE__))
3
+ $LOAD_PATH << File.expand_path(File.dirname(__FILE__))+'../pkg'
4
+
5
+ require "bundler"
6
+ Bundler.require
7
+
8
+ # Local config
9
+ require "find"
10
+
11
+ # %w{config/initializers lib}.each do |load_path|
12
+ # Find.find(load_path) { |f|
13
+ # require f unless f.match(/\/\..+$/) || File.directory?(f)
14
+ # }
15
+ # end
16
+
17
+
18
+ use Rack::Session::Pool
19
+ set :protection, :session => true
20
+
21
+ # Load app
22
+ require "adp_userinfo_ruby"
23
+ #run AdpConnectionRuby
24
+ AdpConnectionRuby.run!
@@ -0,0 +1,15 @@
1
+ clientID: ec762f06-7410-4f6d-aa82-969902c1836a
2
+ clientSecret: 6daf2cd7-4604-46c0-ab43-a645a6571d34
3
+ sslCertPath: config/certs/apiclient_iat.pem
4
+ sslKeyPath: config/certs/apiclient_iat.key
5
+ sslKeyPass: adpadp10
6
+ tokenServerURL: https://iat-api.adp.com/auth/oauth/v2/token
7
+ disconnectURL: https://iat-accounts.adp.com/auth/oauth/v2/logout
8
+ apiRequestURL: https://iat-api.adp.com
9
+ baseAuthorizationURL: https://iat-accounts.adp.com/auth/oauth/v2/authorize
10
+ redirectURL: http://localhost:8889/callback
11
+ accessScope: hr.workerInformationManagement.workerManagement.workerViewing.worker.read hr.workerInformationManagement.workerManagement.associateManagment.associate.read hr.workerInformationManagement.workerManagement.employeeManagement.employee.read,
12
+ responseType: code
13
+ scope: openid
14
+ defaultexpiration: 3600
15
+ grantType: authorization_code
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEpAIBAAKCAQEA5KnQ/0vmU/PZCs3Cw/chQMjzBELDUC/yOXfPRsXness3PXij
3
+ vPO/ROnQUJ3GY4A32gT6Cw3TjWOyOhWLN5/0ly9aeUSWM+sDWYYSyKp4XRQEc802
4
+ WvOh9oVjRptU3ACPqVaEMq3UF7GNc/F1ms+yI0fdcKabCNiL1tLmQ3u0yZpn1bjG
5
+ Hh0ynqWNf14Mz9hJnXt+SBZc2qIewUH8bYLFJDlC7RHBI62idWXcUW5bSE/9wxE5
6
+ SrUQZCymA7udIYY+7eaAJQXEYlmhRNS/05D6O+71qiIPFOz01rjmg/Dw6F9ZtusY
7
+ DSIFI3F1XogxYODwxRtA6e8/Ldg1gkJqozqDwwIDAQABAoIBAErvT7tqPygCAH2m
8
+ 4o3f3fjiIamiy2jq3YFxvu6dindWQ1sUvuv8IRFPYmIY4lvXN/ZtrReUR2DNbCnW
9
+ x5HKDJjC/u5AyMxo1ucupdc27kzqc28TsB1sPAaSve70loGmeW3wGVCWYKwHFqkJ
10
+ VxYNvH4NXgc9wg7LEECtSqKQ1rU+EuMb9EkHC16lFj6039MqqeTzwz/3r2k76dZv
11
+ CqJDPGFwLtEOE256QnOHeXTBrKs6LTmKQAsZ5jTbQb4sjErkI1ZOWGWCdnP+WKZA
12
+ 8pz0SzhzIgKlEsZKkh3Bgt+pUB6uTFYezU5I0KJqFVw65CZH5AI6bZbWRGrc2UDY
13
+ smiwRwECgYEA+a8MY+uBY1il6gJutsM/UJ7betlabrhwyru4Gf6GLkMVSB3qWjNi
14
+ OXBgT/w8O3rSH4E+FK9zTN1fZMS4s3rbo6uUhp0aS3MaWbSqEsGqSyGbAu78WBER
15
+ LTAyTf2kGhbjmHk2C9qTPoGg6YaisdyRwR7w2Tu6z8HlbbwcLyrm7YECgYEA6nKj
16
+ wsueRbYoZLutzprXfapwqnR67WtaI/gVKmzRn31IQqWFA4ucwFWKUnvNX6VcGyuZ
17
+ ykxliwq5S0oRxWLQb92vjFL5W/zu9O2uiJ7da5eyBmzSYQuvh2xQcupyjkZgDZ4f
18
+ zr0EDhmce8uwC6evxKsJHYlf5DvEAYdbV/Qd20MCgYEA4LAGFmT4Ks67f7pwp0dM
19
+ 0uAh4ot2Ne0Ek2waYEoLtdXocN1653EWE1ptUY1LJruAG5nSpAq/V4xfK+9bxyfo
20
+ P4FIR1tZLkyGifNqmTZuaO308M7fhuDU9DVLD6QQ6OlwJuXtHP21Q6qjg4MFJcm3
21
+ 4HJXiyWVFyEFtZpyQn/5EAECgYBeBtQ+z8MOWlwg6lRuxBMgxzagZk7W4XMpcdmr
22
+ RjFcMbbFY/TQ0zFuwd/T7OsVLRCfpQDs7W7cMNTXqUEvVM4bz2EUekKf7fU4LgsN
23
+ qAlNmW1Avmwxl6oyOfKZ5AVFolvrmjtPgucZcJQd4jcctYf87EufmPToaD/YDR1J
24
+ TRKcWQKBgQCQN7GPScLsLPjB7OL8eyvw+ZQpmtxxX6QrQ73uXCyF4tFa+teSpbkj
25
+ 9r35IGo9Asa8VK7gLvS7NuACgzPz6vO6KRllRVBbGjmS03u8mRYj/c0RhlRarOg1
26
+ DbuyN75TupfTdOCPa8eG1I71FUOsBsMDQ60S2KGAH0MSI0EheXaBBQ==
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,45 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIH6zCCBdOgAwIBAgIKZr3kwAAAAAAKpjANBgkqhkiG9w0BAQwFADB3MRMwEQYK
3
+ CZImiZPyLGQBGRYDY29tMRMwEQYKCZImiZPyLGQBGRYDQURQMRIwEAYKCZImiZPy
4
+ LGQBGRYCQUQxEjAQBgoJkiaJk/IsZAEZFgJFUzEjMCEGA1UEAxMaQURQIEludGVy
5
+ bmFsIElzc3VpbmcgQ0EgMDEwHhcNMTYwMjE3MTYzNjE5WhcNMTgwMjE2MTYzNjE5
6
+ WjCBxjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxETAPBgNVBAcT
7
+ CFJvc2VsYW5kMScwJQYDVQQKEx5BdXRvbWF0aWMgRGF0YSBQcm9jZXNzaW5nLCBJ
8
+ bmMxGDAWBgNVBAsTD0lubm92YXRpb24gTGFiczEkMCIGA1UEAxMbTGFicyBBUEkg
9
+ Q2xpZW50IENlcnRpZmljYXRlMSYwJAYJKoZIhvcNAQkBFhd3aWxsaWFtLm55cXVp
10
+ c3RAYWRwLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOSp0P9L
11
+ 5lPz2QrNwsP3IUDI8wRCw1Av8jl3z0bF53rLNz14o7zzv0Tp0FCdxmOAN9oE+gsN
12
+ 041jsjoVizef9JcvWnlEljPrA1mGEsiqeF0UBHPNNlrzofaFY0abVNwAj6lWhDKt
13
+ 1BexjXPxdZrPsiNH3XCmmwjYi9bS5kN7tMmaZ9W4xh4dMp6ljX9eDM/YSZ17fkgW
14
+ XNqiHsFB/G2CxSQ5Qu0RwSOtonVl3FFuW0hP/cMROUq1EGQspgO7nSGGPu3mgCUF
15
+ xGJZoUTUv9OQ+jvu9aoiDxTs9Na45oPw8OhfWbbrGA0iBSNxdV6IMWDg8MUbQOnv
16
+ Py3YNYJCaqM6g8MCAwEAAaOCAycwggMjMB0GA1UdDgQWBBQFzk1EYEhaT60rKMur
17
+ Sy2a928RADAfBgNVHSMEGDAWgBQqCSRfiwi+a3Yo4qkvugtqSgHyQTCCATMGA1Ud
18
+ HwSCASowggEmMIIBIqCCAR6gggEahoHSbGRhcDovLy9DTj1BRFAlMjBJbnRlcm5h
19
+ bCUyMElzc3VpbmclMjBDQSUyMDAxLENOPURDMVBSUEtJU1VCQ0ExLENOPUNEUCxD
20
+ Tj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxDTj1Db25maWd1
21
+ cmF0aW9uLERDPUFELERDPUFEUCxEQz1jb20/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
22
+ TGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50hkNodHRw
23
+ Oi8vcGtpLmVzLmFkLmFkcC5jb20vQ0RQL0FEUCUyMEludGVybmFsJTIwSXNzdWlu
24
+ ZyUyMENBJTIwMDEuY3JsMIIBKQYIKwYBBQUHAQEEggEbMIIBFzCBwwYIKwYBBQUH
25
+ MAKGgbZsZGFwOi8vL0NOPUFEUCUyMEludGVybmFsJTIwSXNzdWluZyUyMENBJTIw
26
+ MDEsQ049QUlBLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2Vz
27
+ LENOPUNvbmZpZ3VyYXRpb24sREM9QUQsREM9QURQLERDPWNvbT9jQUNlcnRpZmlj
28
+ YXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlvbkF1dGhvcml0eTBPBggr
29
+ BgEFBQcwAoZDaHR0cDovL3BraS5lcy5hZC5hZHAuY29tL0FJQS9BRFAlMjBJbnRl
30
+ cm5hbCUyMElzc3VpbmclMjBDQSUyMDAxLmNydDAOBgNVHQ8BAf8EBAMCBaAwOwYJ
31
+ KwYBBAGCNxUHBC4wLAYkKwYBBAGCNxUIh8uaRoWIo3mJnzPt/z2gqRiBfIenqFWE
32
+ hfd9AgFkAgEGMBMGA1UdJQQMMAoGCCsGAQUFBwMBMBsGCSsGAQQBgjcVCgQOMAww
33
+ CgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEMBQADggIBADIiHvrqYlYyuyJlvoupZM5r
34
+ bbx2miegyE7iQeSZx9Li5bkkJpQ4hZFfKeGWWFE/5Dkv0tRdbpbOt+F7Jild3rH5
35
+ azZXuhznkeLb//e7dF9w0F7DTmfWA8NASRjNadkWWe9JcyHw+jieVtePE95oCg1b
36
+ jFYoek1Hy4hBdAKpQZBhEe6VivKrVwiBLMV+Quwxdf4IKK4IdGBtW5eizDpu806p
37
+ 6ZkxF6lTeznRxYa2bikZUs1sF4vlNI4g40+WugUtyR/KMRx6aLAaLyFJ3gqbBwsk
38
+ 8k2g/DgPum36NfXtlAEkQd/rAu2bkct6wuzHdKQq5b3+f1bjO2twVt6n4vlS6hAJ
39
+ 9fdxnTayKOZbFlSKkNl4uCeY4PnE/brnz5CHsArFGW6N5Fxa7Q8FDuRMhLDqi2tw
40
+ eF6sqrDzf70c0uxtA1l8ScA0iaZ3uEoe/y2TAXxJ4GfWIpdZisVaWaJbfYmEXneQ
41
+ hDBmwdfNAEsEkCgq5eqMOLDxcXOsSHdLWL8K0Q6LpZOyd/yWSws9wN0mwRoftnSe
42
+ DNIvLBbhIJGy+XFjQWQBmG19V/Gpo1Z+cSSiZA0qzZlsUqv8j6ZwuuKRZoSmHK/7
43
+ gsNNU2qrfprQOvrBO4sOHGrRwT6aAnW2ATkh5kPQdun9o2FtxqlXRKGm17Pa+1LT
44
+ yxZqfRg+TMQYhmzGoICk
45
+ -----END CERTIFICATE-----
@@ -0,0 +1,11 @@
1
+ clientID: 88a73992-07f2-4714-ab4b-de782acd9c4d
2
+ clientSecret: a130adb7-aa51-49ac-9d02-0d4036b63541
3
+ sslCertPath: config/certs/apiclient_iat.pem
4
+ sslKeyPath: config/certs/apiclient_iat.key
5
+ sslKeyPass: adpadp10
6
+ tokenServerURL: https://iat-api.adp.com/auth/oauth/v2/token
7
+ disconnectURL: https://iat-accounts.adp.com/auth/oauth/v2/logout
8
+ apiRequestURL: https://iat-api.adp.com
9
+ responseType: code
10
+ defaultexpiration: 3600
11
+ grantType: client_credentials
Binary file
File without changes
Binary file
File without changes
File without changes
@@ -0,0 +1,225 @@
1
+ @media screen {
2
+ /* --- Reset Styles --- */
3
+ * {
4
+ list-style: none;
5
+ margin: 0;
6
+ padding: 0;
7
+ }
8
+
9
+ html, body {
10
+ height: 100%;
11
+ width: 100%;
12
+ background: #0769ad;
13
+ margin: 0 auto;
14
+ padding: 0 20px;
15
+ }
16
+
17
+ #container {
18
+ background: #0769ad;
19
+ margin: 0 auto;
20
+ padding: 0 20px;
21
+ }
22
+
23
+ /* --- Welcome Page Styles --- */
24
+ body {
25
+ background: #0769ad;
26
+ color: #333;
27
+ font-family: Sans-Serif;
28
+ line-height: 18px;
29
+ }
30
+
31
+ .wrapper {
32
+ background: #fff;
33
+ -moz-box-shadow: 0 0 10px rgba(0,0,0,.3);
34
+ -webkit-box-shadow: 0 0 10px rgba(0,0,0,.3);
35
+ box-shadow: 0 0 10px rgba(0,0,0,.3);
36
+ margin: 16px auto;
37
+ max-width: 960px;
38
+ padding: 2.25%; /* 18px / 800px */
39
+ width: 85%;
40
+ }
41
+
42
+ h1 {
43
+ font-size: 36px;
44
+ line-height: 54px;
45
+ }
46
+
47
+ h2 {
48
+ border-bottom: 2px solid #ccc;
49
+ font-size: 24px;
50
+ line-height: 36px;
51
+ margin-bottom: 16px;
52
+ }
53
+
54
+ h3 {
55
+ font-size: 18px;
56
+ line-height: 36px;
57
+ }
58
+
59
+ p {
60
+ margin-bottom: 18px;
61
+ }
62
+
63
+ .main {
64
+ overflow: hidden;
65
+ }
66
+
67
+ .content {
68
+ float: left;
69
+ width: 470px; /* 480px / 800px */
70
+ }
71
+
72
+ .sidebar_logo {
73
+ float: right;
74
+ }
75
+
76
+ .sidebar {
77
+ background: #eee;
78
+ border: 1px solid #ccc;
79
+ float: right;
80
+ padding: 2.08333333333%; /* 5px / 240px */
81
+ width: 390px; /* 240px / 800px */
82
+ min-height: 170px;
83
+ height: 240px;
84
+ position:relative;
85
+ }
86
+
87
+ .sidebar ul {
88
+ font-size: 14px;
89
+ }
90
+
91
+ .results_footer {
92
+ background-color: #ccc;
93
+ width:95%;
94
+ height:65px;
95
+ bottom: 0px;
96
+ left: 10px;
97
+ position: absolute;
98
+ }
99
+
100
+ .branding {
101
+ clear: both;
102
+ }
103
+
104
+ footer.branding {
105
+ border-top: 2px solid #ccc;
106
+ margin-top: 20px;
107
+ padding-top: 20px;
108
+ }
109
+
110
+ table.success {
111
+ max-width:300px;
112
+ }
113
+ table.success th {
114
+ text-align: left;
115
+ }
116
+ table.success td {
117
+ text-align: left;
118
+ width: 200px;
119
+ }
120
+ .truncate {
121
+ width: 250px;
122
+ white-space: nowrap;
123
+ overflow: hidden;
124
+ text-overflow: ellipsis;
125
+ }
126
+
127
+ .menu a {
128
+ color: #428bca;
129
+ text-decoration: none;
130
+ font-size: 1.3em;
131
+ width: 200px;
132
+ height: 32px;
133
+ display: inline-block;
134
+ background-color: #ccc;
135
+ padding: 10px 10px 10px 5px;
136
+ text-align: center;
137
+ vertical-align: middle;
138
+ }
139
+
140
+ .menu a:hover {
141
+ text-decoration: underline;
142
+ }
143
+
144
+ .menu span {
145
+ text-decoration: none;
146
+ font-size: 1.3em;
147
+ width: 200px;
148
+ height: 32px;
149
+ display: inline-block;
150
+ background-color: #ccc;
151
+ padding: 10px 10px 10px 5px;
152
+ text-align: center;
153
+ vertical-align: middle;
154
+ }
155
+
156
+ .content code {
157
+ font-family: Monaco, Monospace;
158
+ display: block;
159
+ padding: 1em;
160
+ margin-left: 25px;
161
+ background: #2f1f1e;
162
+ font-size: 0.1em;
163
+ font-weight: bold;
164
+ color: #CEC8AA;
165
+ -webkit-border-radius: 12px;
166
+ -moz-border-radius: 12px;
167
+ border-radius: 12px;
168
+ }
169
+
170
+ .busy_icon {
171
+ /*
172
+ width: 24px;
173
+ height: 24px;
174
+ */
175
+ /* margin-top: -20px; */
176
+ margin-left: 10px;
177
+ display: inline-block;
178
+ background-color: transparent;
179
+ }
180
+ .busy_icon img {
181
+ border-radius: 5px;
182
+ box-shadow: 0 1px 3px rgba(0,0,0,0.3);
183
+ margin: 5px auto;
184
+ background: url("../images/busy.gif");
185
+ vertical-align: middle;
186
+ }
187
+
188
+ .message {
189
+ background-color: oldlace;
190
+ padding: 20px;
191
+ color: green;
192
+ }
193
+ }
194
+
195
+ @media screen and (max-width: 600px) {
196
+ .wrapper {
197
+ -moz-box-shadow: none;
198
+ -webkit-box-shadow: none;
199
+ box-shadow: none;
200
+ width: auto;
201
+ }
202
+
203
+ .content, .sidebar {
204
+ float: none;
205
+ width: 100%;
206
+ }
207
+
208
+ .sidebar {
209
+ background: transparent;
210
+ border: none;
211
+ border-top: 2px solid #ccc;
212
+ padding: 0;
213
+ }
214
+
215
+ h1 {
216
+ font-size: 24px;
217
+ line-height: 36px;
218
+ }
219
+
220
+ h2 {
221
+ font-size: 18px;
222
+ line-height: 24px;
223
+ }
224
+ }
225
+
@@ -0,0 +1,14 @@
1
+ require_relative "spec_helper"
2
+ require_relative "../adp_userinfo_ruby.rb"
3
+
4
+ def app
5
+ AdpConnectionRuby
6
+ end
7
+
8
+ describe AdpConnectionRuby do
9
+ it "responds with a welcome message" do
10
+ get '/'
11
+
12
+ last_response.body.must_include 'Welcome to the Sinatra Template!'
13
+ end
14
+ end
@@ -0,0 +1,23 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'bundler'
4
+
5
+ Bundler.setup
6
+ Bundler.require
7
+
8
+ ENV["RACK_ENV"] = "test"
9
+
10
+ require 'minitest/pride'
11
+ require 'minitest/autorun'
12
+ require 'minitest/spec'
13
+ require 'rack/test'
14
+
15
+
16
+ require "find"
17
+ %w{./config/initializers ./lib}.each do |load_path|
18
+ Find.find(load_path) { |f| require f if f.match(/\.rb$/) }
19
+ end
20
+
21
+ class MiniTest::Spec
22
+ include Rack::Test::Methods
23
+ end
@@ -0,0 +1,128 @@
1
+ <div class="menu">
2
+ <p>
3
+ <strong>Authorization </strong><br/>
4
+ <a href="/client_credentials" >Client Credential</a> &nbsp; &nbsp;
5
+ <span href="authorization_code" >Authentication Code</span>
6
+ </p>
7
+ </div>
8
+
9
+ <div class="content">
10
+ <ol>
11
+ <li><b>1.</b>
12
+ <% if session["AuthorizationCode"].nil? %>
13
+ <a href="/authorization_code/login">Login</a>
14
+ <% else %>
15
+ <a>Loged in</a>
16
+ <% end %>
17
+ <br/>
18
+ <code>
19
+ <pre>
20
+ authorizationcode_config = AuthorizationCodeConfiguration.new(config);
21
+ connection = ADPApiConnectionFactory::createConnection(authorizationcode_config)
22
+ authorizationurl = connection.get_authorization_url
23
+ redirect authorizationurl unless authorizationurl.nil?
24
+ </pre>
25
+ </code>
26
+ </li>
27
+ <br/>
28
+ <li><b>2.</b>
29
+ <% if session["AuthorizationCode"].nil? || session["AuthorizationCode"].connection_configuration.authorizationCode.nil? %>
30
+ <a>Get Token</a>
31
+ <% else %>
32
+ <a href="/authorization_code/get_token">Get Token</a>
33
+ <% end %>
34
+ <br/>
35
+ <code>
36
+ <pre>
37
+ #store callback code
38
+ connection.connection_configuration.authorizationCode = params[:code]
39
+ #then connect
40
+ connection.connect()
41
+ </pre>
42
+ </code>
43
+ </li>
44
+ <% if session["AuthorizationCode"].nil? || session["AuthorizationCode"].connection_configuration.authorizationCode.nil? || session["AuthorizationCode"].access_token.nil? %>
45
+ <br/>
46
+ <% else %>
47
+ <br/>
48
+ <li><b>3.</b>
49
+ <a href="/authorization_code/get_userinfo">Get UserInfo</a>
50
+ <br/>
51
+ <code>
52
+ <pre>
53
+ #create new helper with a valid, connected connection
54
+ helper = UserInfoHelper.new(connection)
55
+ #then get the data and put it in a user defined PORO (plain old Ruby Object)
56
+ json_data = helper.get_user_info()
57
+ results[:userinfo] = UserInfo.new(json_data)
58
+ </pre>
59
+ </code>
60
+ </li>
61
+ <% end %>
62
+ <!--
63
+ <li><b>3.</b> <a>Get UserInfo</3.a></li>
64
+ <br/>
65
+ -->
66
+
67
+ <% if !(session["AuthorizationCode"].nil? || session["AuthorizationCode"].connection_configuration.authorizationCode.nil?) %>
68
+
69
+ <li><b>4.</b>
70
+ <a href="/authorization_code/logout">Logout</a>
71
+ <code>
72
+
73
+ connection.logout()
74
+
75
+ </code>
76
+ </li>
77
+ <% end %>
78
+
79
+ </ol>
80
+
81
+ <p>
82
+ <% if (!(session["AuthorizationCode"].nil? || session["AuthorizationCode"].connection_configuration.authorizationCode.nil? || view_bag[:userinfo].nil?)) %>
83
+ <article style="border: 1px ridge #ccc;">
84
+ <table class="success">
85
+ <tr><th>Sub</th> <td class="truncate"><p><%= view_bag[:userinfo].sub %></p></td></tr>
86
+ <tr><th>Organization OID</th> <td><%= view_bag[:userinfo].organizationOID %></td></tr>
87
+ <tr><th>Associate ID</th> <td><%= view_bag[:userinfo].associateOID %></td></tr>
88
+ <tr><th>Given Name</th> <td><%= view_bag[:userinfo].givenName %></td></tr>
89
+ <tr><th>Family Name</th> <td><%= view_bag[:userinfo].familyName %></td></tr>
90
+ <tr><th>Name</th> <td><%= view_bag[:userinfo].name %></td></tr>
91
+ <tr><th>Email</th> <td><%= view_bag[:userinfo].email %></td></tr>
92
+ </table>
93
+ <!-- <b>Picture</b> <dd>@Model.picture</dd> -->
94
+ </article>
95
+ <% end %>
96
+ </p>
97
+ </div>
98
+
99
+ <div class="sidebar">
100
+ <h3>Results...</h3>
101
+ <ul>
102
+ <!--
103
+ <li><b>Ruby:</b> <%= RUBY_VERSION %></li>
104
+ <li><b>Environment:</b> <%= ENV["RACK_ENV"] %></li>
105
+ <li><b>Server:</b> <%= @env["SERVER_SOFTWARE"] %></li>
106
+ <li><b>Port:</b> <%= @env["SERVER_PORT"] %></li>
107
+ -->
108
+ <% if session["AuthorizationCode"].nil? %>
109
+ <li><b>Access token:</b> not logged in</li>
110
+ <li>&nbsp;</li>
111
+ <li>&nbsp;</li>
112
+ <li>&nbsp;</li>
113
+ <li>&nbsp;</li>
114
+ <% else %>
115
+ <li><b>Authorization code:</b> <%= session["AuthorizationCode"].connection_configuration.authorizationCode %> </li>
116
+ <% unless session["AuthorizationCode"].access_token.nil? %>
117
+ <li><b>Access token:</b> <%= session["AuthorizationCode"].access_token.token %> </li>
118
+ <li><b>Token type:</b> <%= session["AuthorizationCode"].access_token.token_type %> </li>
119
+ <li><b>Expires in:</b> <%= session["AuthorizationCode"].access_token.expires_in %> </li>
120
+ <li><b>Scope:</b> <%= session["AuthorizationCode"].access_token.scope %> </li>
121
+ <li><b>Expires on:</b> <%= session["AuthorizationCode"].access_token.expires_on %> </li>
122
+ <% end %>
123
+ <% end %>
124
+ </ul>
125
+ <div class="results_footer" style="">
126
+ <a href="https://github.com/adplabs/adp-userinfo-ruby.git"><img class="sidebar_logo" src="/images/ADP_logo_tagline.png" alt="Marketplace/Ruby/Library" /></a>
127
+ </div>
128
+ </div>