Compare commits
	
		
			No commits in common. "master" and "v1.2.1" have entirely different histories.
		
	
	
		
	
		
| @ -1,5 +0,0 @@ | |||||||
| v1.2.1 - Authorization Dialog for ID Issuer |  | ||||||
|   * Resource Owner Password token exchange |  | ||||||
|   * Public / Private Keypair generation |  | ||||||
|   * Public key (remember device) syncing |  | ||||||
|   * BUG: Remember me is not operational |  | ||||||
							
								
								
									
										41
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								LICENSE
									
									
									
									
									
								
							| @ -1,41 +0,0 @@ | |||||||
| Copyright 2017 Daplie, Inc |  | ||||||
| 
 |  | ||||||
| This is open source software; you can redistribute it and/or modify it under the |  | ||||||
| terms of either: |  | ||||||
| 
 |  | ||||||
|    a) the "MIT License" |  | ||||||
|    b) the "Apache-2.0 License" |  | ||||||
| 
 |  | ||||||
| MIT License |  | ||||||
| 
 |  | ||||||
|    Permission is hereby granted, free of charge, to any person obtaining a copy |  | ||||||
|    of this software and associated documentation files (the "Software"), to deal |  | ||||||
|    in the Software without restriction, including without limitation the rights |  | ||||||
|    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
|    copies of the Software, and to permit persons to whom the Software is |  | ||||||
|    furnished to do so, subject to the following conditions: |  | ||||||
| 
 |  | ||||||
|    The above copyright notice and this permission notice shall be included in all |  | ||||||
|    copies or substantial portions of the Software. |  | ||||||
| 
 |  | ||||||
|    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |  | ||||||
|    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |  | ||||||
|    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |  | ||||||
|    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |  | ||||||
|    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |  | ||||||
|    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |  | ||||||
|    SOFTWARE. |  | ||||||
| 
 |  | ||||||
| Apache-2.0 License Summary |  | ||||||
| 
 |  | ||||||
|    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. |  | ||||||
							
								
								
									
										25
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								README.md
									
									
									
									
									
								
							| @ -1,30 +1,17 @@ | |||||||
| issuer.html | This is a WALNUT module representing the html package for the oauth3.org popup. | ||||||
| =========== |  | ||||||
| 
 | 
 | ||||||
| | [oauth3.js](https://git.oauth3.org/OAuth3/oauth3.js) | It must be installed to `/srv/walnut/packages/pages/issuer@oauth3.org` | ||||||
| | *issuer.html* |  | ||||||
| | [issuer.rest.walnut.js](https://git.oauth3.org/OAuth3/issuer.rest.walnut.js) |  | ||||||
| | [issuer.srv](https://git.oauth3.org/OAuth3/issuer.srv) |  | ||||||
| | Sponsored by [ppl](https://ppl.family) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| This is a browser application which implements the issuer side of the *authorization_dialog* flow for OAuth3. |  | ||||||
| 
 |  | ||||||
| It may be used client-side only (public key or granted scope syncing will be disabled), |  | ||||||
| or will the *issuer.rest.walnut.js* APIs on the backend for full functionality. |  | ||||||
| 
 |  | ||||||
| For use with walnut it must be installed to `/opt/walnut/packages/pages/issuer@oauth3.org` |  | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| git clone git@git.oauth3.org:OAuth3/org.oauth3.git /opt/walnut/packages/pages/issuer@oauth3.org | git clone git@git.daplie.com:OAuth3/org.oauth3.git /srv/walnut/packages/pages/issuer@oauth3.org | ||||||
| pushd /opt/walnut/packages/pages/issuer@oauth3.org | pushd /srv/walnut/packages/pages/issuer@oauth3.org | ||||||
| bash ./install.sh | bash ./install.sh | ||||||
| popd | popd | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| echo "issuer@oauth3.org" >> /opt/walnut/var/sites/EXAMPLE.COM | echo "issuer@oauth3.org" >> /srv/walnut/packages/sites/EXAMPLE.COM | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| This uses the OAuth3 JavaScript SDK `oauth3.js` as a subpackage in | This uses the OAuth3 JavaScript SDK `oauth3.js` as a subpackage in | ||||||
| `/opt/walnut/packages/pages/issuer@oauth3.org/assets/oauth3.org`. | `/srv/walnut/packages/pages/issuer@oauth3.org/assets/oauth3.org`. | ||||||
|  | |||||||
| @ -12,6 +12,10 @@ html, body { | |||||||
|   background-color: #282828; |   background-color: #282828; | ||||||
|   color: #FFFFFF; |   color: #FFFFFF; | ||||||
| } | } | ||||||
|  | /*override bootstrap fade*/ | ||||||
|  | .fade { | ||||||
|  |   opacity: 1; | ||||||
|  | } | ||||||
| input.emailInput::placeholder { | input.emailInput::placeholder { | ||||||
|   font-family : Brown Regular; |   font-family : Brown Regular; | ||||||
|   font-size : 14px; |   font-size : 14px; | ||||||
|  | |||||||
							
								
								
									
										46
									
								
								index.html
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								index.html
									
									
									
									
									
								
							| @ -11,8 +11,7 @@ | |||||||
|     <link rel="stylesheet" type="text/css" href="/css/daplie-installer-overrides.css"> |     <link rel="stylesheet" type="text/css" href="/css/daplie-installer-overrides.css"> | ||||||
|   </head> |   </head> | ||||||
| 
 | 
 | ||||||
|   <body> |   <body class="fade mock-main"> | ||||||
|   <div class="fade mock-main"> |  | ||||||
| 
 | 
 | ||||||
|     <!-- STEP 1: ask the user where they want to log in --> |     <!-- STEP 1: ask the user where they want to log in --> | ||||||
|     <!-- STEP 2: ask the user for their email --> |     <!-- STEP 2: ask the user for their email --> | ||||||
| @ -140,49 +139,6 @@ | |||||||
|       <button type="button" class="dap-full-button-green js-logout btn btn-primary">Sign Out</button> |       <button type="button" class="dap-full-button-green js-logout btn btn-primary">Sign Out</button> | ||||||
|       <img src="./img/sponsored-by.png" class="sponsored-by-logo"> |       <img src="./img/sponsored-by.png" class="sponsored-by-logo"> | ||||||
|     </div> |     </div> | ||||||
|   </div> |  | ||||||
| 
 |  | ||||||
|   <div class="fade mock-bare"> |  | ||||||
|     <div class="container"> |  | ||||||
|       <div class="jumbotron"> |  | ||||||
|         <h1>OAuth3 Playground</h1> |  | ||||||
|       </div> |  | ||||||
| 
 |  | ||||||
|       <div class="row"> |  | ||||||
|         <div class="col-md-3"> |  | ||||||
|           Login Status: |  | ||||||
|         </div> |  | ||||||
|         <div class="col-md-9"> |  | ||||||
|           ... |  | ||||||
|         </div> |  | ||||||
|       </div> |  | ||||||
|       <div class="row"> |  | ||||||
|         <div class="col-md-3"> |  | ||||||
|           Current Sessions: |  | ||||||
|         </div> |  | ||||||
|         <div class="col-md-9"> |  | ||||||
|           ... |  | ||||||
|         </div> |  | ||||||
|       </div> |  | ||||||
|       <div class="row"> |  | ||||||
|         <div class="col-md-3"> |  | ||||||
|           Approved Devices: |  | ||||||
|         </div> |  | ||||||
|         <div class="col-md-9"> |  | ||||||
|           ... |  | ||||||
|         </div> |  | ||||||
|       </div> |  | ||||||
|       <div class="row"> |  | ||||||
|         <div class="col-md-3"> |  | ||||||
|           Approved Applications: |  | ||||||
|         </div> |  | ||||||
|         <div class="col-md-9"> |  | ||||||
|           ... |  | ||||||
|         </div> |  | ||||||
|       </div> |  | ||||||
| 
 |  | ||||||
|     </div> |  | ||||||
|   </div> |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     <!--[if IE]><script src="bower_components/rsvp.js/rsvp.js"></script><![endif]--> |     <!--[if IE]><script src="bower_components/rsvp.js/rsvp.js"></script><![endif]--> | ||||||
|  | |||||||
| @ -2,12 +2,11 @@ | |||||||
| 
 | 
 | ||||||
| set -e | set -e | ||||||
| set -u | set -u | ||||||
| # git clone https://git.oauth3.org/OAuth3/issuer.html.git /srv/walnut/packages/pages/issuer@oauth3.org | # git clone https://git.daplie.com/OAuth3/org.oauth3.git /srv/walnut/packages/pages/azp@oauth3.org | ||||||
| # git clone https://git.oauth3.org/OAuth3/azp.html.git /srv/walnut/packages/pages/azp@oauth3.org |  | ||||||
| 
 | 
 | ||||||
| mkdir -p assets | mkdir -p assets | ||||||
| if ! [ -d ./assets/oauth3.org ]; then | if ! [ -d ./assets/oauth3.org ]; then | ||||||
|   git clone https://git.oauth3.org/OAuth3/oauth3.js.git ./assets/oauth3.org |   git clone https://git.daplie.com/OAuth3/oauth3.js.git ./assets/oauth3.org | ||||||
| fi | fi | ||||||
| pushd ./assets/oauth3.org | pushd ./assets/oauth3.org | ||||||
|   git checkout v1.2 |   git checkout v1.2 | ||||||
|  | |||||||
| @ -10,7 +10,7 @@ $(function () { | |||||||
|   var auth = OAUTH3.create(); |   var auth = OAUTH3.create(); | ||||||
| 
 | 
 | ||||||
|   auth.init().then(function () { |   auth.init().then(function () { | ||||||
|     $('.mock-main').addClass('in'); |     $('body').addClass('in'); | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   auth.setProvider(providerUri).then(function () { |   auth.setProvider(providerUri).then(function () { | ||||||
|  | |||||||
							
								
								
									
										22
									
								
								js/issuer.js
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								js/issuer.js
									
									
									
									
									
								
							| @ -93,12 +93,10 @@ $(function () { | |||||||
|     var grantDescriptions = { |     var grantDescriptions = { | ||||||
|       // deprecated
 |       // deprecated
 | ||||||
|       'oauth3_authn': "Basic secure authentication" |       'oauth3_authn': "Basic secure authentication" | ||||||
|     , 'auth@oauth3.org': "Basic secure authentication" |  | ||||||
|     , 'wallet': "Access to payments and subscriptions" |     , 'wallet': "Access to payments and subscriptions" | ||||||
|     , 'bucket': "Access to file storage" |     , 'bucket': "Access to file storage" | ||||||
|     , 'db': "Access to app data" |     , 'db': "Access to app data" | ||||||
|     , 'domains': "Domain registration (and Glue and NS records)" // TODO make an alias
 |     , 'domains': "Domain registration (and Glue and NS records)" // TODO make an alias
 | ||||||
|     , 'domains@oauth3.org': "Domain registration (and Glue and NS records)" // TODO make an alias
 |  | ||||||
|     , 'domains:glue': "Glue Record management (for vanity nameservers)" |     , 'domains:glue': "Glue Record management (for vanity nameservers)" | ||||||
|     , 'domains:ns': "Name Server management" |     , 'domains:ns': "Name Server management" | ||||||
|     , 'dns': "DNS records (A/AAAA, TXT, SRV, MX, etc)" |     , 'dns': "DNS records (A/AAAA, TXT, SRV, MX, etc)" | ||||||
| @ -113,8 +111,6 @@ $(function () { | |||||||
|     , 'domains:glue@oauth3.org': "Glue Record management (for vanity nameservers)" |     , 'domains:glue@oauth3.org': "Glue Record management (for vanity nameservers)" | ||||||
|     , 'domains:ns@oauth3.org': "Name Server management" |     , 'domains:ns@oauth3.org': "Name Server management" | ||||||
|     , 'dns@oauth3.org': "DNS records (A/AAAA, TXT, SRV, MX, etc)" |     , 'dns@oauth3.org': "DNS records (A/AAAA, TXT, SRV, MX, etc)" | ||||||
|     , 'www@daplie.com': "Websites and webapps" |  | ||||||
| 
 |  | ||||||
|     , '*': "FULL ACCOUNT ACCESS" |     , '*': "FULL ACCOUNT ACCESS" | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
| @ -168,13 +164,8 @@ $(function () { | |||||||
|           $scope.find('.js-scope-desc').text(grantDescriptions[scope]); |           $scope.find('.js-scope-desc').text(grantDescriptions[scope]); | ||||||
|         } |         } | ||||||
|         else { |         else { | ||||||
|           //This disables the check/checkbox when we have an unrecognized grant.
 |           $scope.find('.js-scope-toggle').prop('checked', false); | ||||||
|           //This is disabled for testing until we can discover grants automatically.
 |           $scope.find('.js-scope-toggle').prop('disabled', true); | ||||||
|           //TODO: Enable this when grants are discoverable
 |  | ||||||
|           //TODO: Indicate to user that this is disabled, not just unchecked.
 |  | ||||||
|           //$scope.find('.js-scope-toggle').prop('checked', false);
 |  | ||||||
|           //$scope.find('.check').attr("src", "./img/unpressed-check.png");
 |  | ||||||
|           //$scope.find('.js-scope-toggle').prop('disabled', true);
 |  | ||||||
|           $scope.find('.js-scope-desc').text(scope); |           $scope.find('.js-scope-desc').text(scope); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| @ -397,13 +388,6 @@ $(function () { | |||||||
|       $('.js-logout-container').show(); |       $('.js-logout-container').show(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (document.location.hash.slice(1) || document.location.search) { |     $('body').addClass('in'); | ||||||
|       console.log('[DEBUG] search:', document.location.search); |  | ||||||
|       console.log('[DEBUG] hash:', document.location.search); |  | ||||||
|       $('.mock-main').addClass('in'); |  | ||||||
|     } else { |  | ||||||
|       console.log('[DEBUG] not an auth window'); |  | ||||||
|       $('.mock-bare').addClass('in'); |  | ||||||
|     } |  | ||||||
|   }); |   }); | ||||||
| }); | }); | ||||||
|  | |||||||
							
								
								
									
										25
									
								
								js/script.js
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								js/script.js
									
									
									
									
									
								
							| @ -47,28 +47,25 @@ $('body').on('click', '.js-remember-label', function (ev) { | |||||||
| 
 | 
 | ||||||
| $('body').on('click', '.check', function () { | $('body').on('click', '.check', function () { | ||||||
|   'use strict'; |   'use strict'; | ||||||
|  |   var $img = $(this); | ||||||
|  |   if($img.attr("src") === "./img/pressed-check.png") { | ||||||
|  |     $img.attr("src", "./img/unpressed-check.png"); | ||||||
|  |     $img.removeClass("is-checked"); | ||||||
|  |   } else if($img.attr("src") === "./img/unpressed-check.png") { | ||||||
|  |     $img.attr("src", "./img/pressed-check.png"); | ||||||
|  |     $img.addClass("is-checked"); | ||||||
|  |   } | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| $('body').on('click', '.js-auth-li-enabled', function (ev) { | $('body').on('click', '.js-auth-li-enabled', function (ev) { | ||||||
|   'use strict'; |   'use strict'; | ||||||
|   ev.preventDefault(); |   ev.preventDefault(); | ||||||
|   ev.stopPropagation(); |   ev.stopPropagation(); | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|   var $this = $(this); |   var $this = $(this); | ||||||
|   var $hiddenCheckbox = $this.find('.js-auth-checkbox'); |   if ($this.find('.js-auth-checkbox').is(':checked') === true) { | ||||||
|   var $img = $this.find('.check'); |     $this.find('.js-auth-checkbox').prop( "checked", false ); | ||||||
|   var newStatus = $hiddenCheckbox.prop('checked') ? "unchecked" : "checked"; |  | ||||||
| 
 |  | ||||||
|   if(newStatus === 'checked') { |  | ||||||
| 
 |  | ||||||
|     $img.attr('src', './img/pressed-check.png'); |  | ||||||
|     $img.addClass("is-checked"); |  | ||||||
|     $hiddenCheckbox.prop( "checked", true ); |  | ||||||
|   } else { |   } else { | ||||||
|     $img.attr("src", "./img/unpressed-check.png"); |     $this.find('.js-auth-checkbox').prop( "checked", true ); | ||||||
|     $img.removeClass("is-checked"); |  | ||||||
|     $hiddenCheckbox.prop( "checked", false ); |  | ||||||
|   } |   } | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user