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)
 | 
			
		||||
| *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`
 | 
			
		||||
It must be installed to `/srv/walnut/packages/pages/issuer@oauth3.org`
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
git clone git@git.oauth3.org:OAuth3/org.oauth3.git /opt/walnut/packages/pages/issuer@oauth3.org
 | 
			
		||||
pushd /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 /srv/walnut/packages/pages/issuer@oauth3.org
 | 
			
		||||
bash ./install.sh
 | 
			
		||||
popd
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
```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
 | 
			
		||||
`/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;
 | 
			
		||||
  color: #FFFFFF;
 | 
			
		||||
}
 | 
			
		||||
/*override bootstrap fade*/
 | 
			
		||||
.fade {
 | 
			
		||||
  opacity: 1;
 | 
			
		||||
}
 | 
			
		||||
input.emailInput::placeholder {
 | 
			
		||||
  font-family : Brown Regular;
 | 
			
		||||
  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">
 | 
			
		||||
  </head>
 | 
			
		||||
 | 
			
		||||
  <body>
 | 
			
		||||
  <div class="fade mock-main">
 | 
			
		||||
  <body class="fade mock-main">
 | 
			
		||||
 | 
			
		||||
    <!-- STEP 1: ask the user where they want to log in -->
 | 
			
		||||
    <!-- 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>
 | 
			
		||||
      <img src="./img/sponsored-by.png" class="sponsored-by-logo">
 | 
			
		||||
    </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]-->
 | 
			
		||||
 | 
			
		||||
@ -2,12 +2,11 @@
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
set -u
 | 
			
		||||
# git clone https://git.oauth3.org/OAuth3/issuer.html.git /srv/walnut/packages/pages/issuer@oauth3.org
 | 
			
		||||
# git clone https://git.oauth3.org/OAuth3/azp.html.git /srv/walnut/packages/pages/azp@oauth3.org
 | 
			
		||||
# git clone https://git.daplie.com/OAuth3/org.oauth3.git /srv/walnut/packages/pages/azp@oauth3.org
 | 
			
		||||
 | 
			
		||||
mkdir -p assets
 | 
			
		||||
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
 | 
			
		||||
pushd ./assets/oauth3.org
 | 
			
		||||
  git checkout v1.2
 | 
			
		||||
 | 
			
		||||
@ -10,7 +10,7 @@ $(function () {
 | 
			
		||||
  var auth = OAUTH3.create();
 | 
			
		||||
 | 
			
		||||
  auth.init().then(function () {
 | 
			
		||||
    $('.mock-main').addClass('in');
 | 
			
		||||
    $('body').addClass('in');
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  auth.setProvider(providerUri).then(function () {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										22
									
								
								js/issuer.js
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								js/issuer.js
									
									
									
									
									
								
							@ -93,12 +93,10 @@ $(function () {
 | 
			
		||||
    var grantDescriptions = {
 | 
			
		||||
      // deprecated
 | 
			
		||||
      'oauth3_authn': "Basic secure authentication"
 | 
			
		||||
    , 'auth@oauth3.org': "Basic secure authentication"
 | 
			
		||||
    , 'wallet': "Access to payments and subscriptions"
 | 
			
		||||
    , 'bucket': "Access to file storage"
 | 
			
		||||
    , 'db': "Access to app data"
 | 
			
		||||
    , '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:ns': "Name Server management"
 | 
			
		||||
    , '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:ns@oauth3.org': "Name Server management"
 | 
			
		||||
    , 'dns@oauth3.org': "DNS records (A/AAAA, TXT, SRV, MX, etc)"
 | 
			
		||||
    , 'www@daplie.com': "Websites and webapps"
 | 
			
		||||
 | 
			
		||||
    , '*': "FULL ACCOUNT ACCESS"
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
@ -168,13 +164,8 @@ $(function () {
 | 
			
		||||
          $scope.find('.js-scope-desc').text(grantDescriptions[scope]);
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
          //This disables the check/checkbox when we have an unrecognized grant.
 | 
			
		||||
          //This is disabled for testing until we can discover grants automatically.
 | 
			
		||||
          //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-toggle').prop('checked', false);
 | 
			
		||||
          $scope.find('.js-scope-toggle').prop('disabled', true);
 | 
			
		||||
          $scope.find('.js-scope-desc').text(scope);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -397,13 +388,6 @@ $(function () {
 | 
			
		||||
      $('.js-logout-container').show();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (document.location.hash.slice(1) || document.location.search) {
 | 
			
		||||
      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');
 | 
			
		||||
    }
 | 
			
		||||
    $('body').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 () {
 | 
			
		||||
  '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) {
 | 
			
		||||
  'use strict';
 | 
			
		||||
  ev.preventDefault();
 | 
			
		||||
  ev.stopPropagation();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  var $this = $(this);
 | 
			
		||||
  var $hiddenCheckbox = $this.find('.js-auth-checkbox');
 | 
			
		||||
  var $img = $this.find('.check');
 | 
			
		||||
  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 );
 | 
			
		||||
  if ($this.find('.js-auth-checkbox').is(':checked') === true) {
 | 
			
		||||
    $this.find('.js-auth-checkbox').prop( "checked", false );
 | 
			
		||||
  } else {
 | 
			
		||||
    $img.attr("src", "./img/unpressed-check.png");
 | 
			
		||||
    $img.removeClass("is-checked");
 | 
			
		||||
    $hiddenCheckbox.prop( "checked", false );
 | 
			
		||||
    $this.find('.js-auth-checkbox').prop( "checked", true );
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user