Skip to content

Commit

Permalink
Changed to labels rather than URIs for group ACL specification.
Browse files Browse the repository at this point in the history
  • Loading branch information
DavidASeibert committed Aug 28, 2018
1 parent c0e115f commit 2a6dc42
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 19 deletions.
33 changes: 32 additions & 1 deletion src/main/resources/static/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -514,7 +514,6 @@
</div>
<div class="s3TableWrapper">
<div class="s3TableTitle">Group ACLs</div>
<span class="s3Button s3AddGroupAclButton" title="Give a group access">Add</span>
<table class="table">
<tr class="row">
<th class="cell s3AclName s3AclNameHeader">Group Name</th>
Expand All @@ -526,6 +525,38 @@
</table>
<form>
<table class="table s3AclTable s3GroupAclTable">
<tr class="row">
<input type="hidden" class="s3AclUri" value="http://acs.amazonaws.com/groups/global/AuthenticatedUsers" />
<td class="cell s3AclName">Authenticated Users</td>
<td class="cell s3AclFC">
<input type="radio" name="Authenticated" value="FULL_CONTROL" class="s3AclValue"/>
</td>
<td class="cell s3AclWRITE">
<input type="radio" name="Authenticated" value="WRITE" class="s3AclValue"/>
</td>
<td class="cell s3AclREAD">
<input type="radio" name="Authenticated" value="READ" class="s3AclValue"/>
</td>
<td class="cell s3AclNONE">
<input type="radio" name="Authenticated" value="NONE" class="s3AclValue"/>
</td>
</tr>
<tr class="row">
<input type="hidden" class="s3AclUri" value="http://acs.amazonaws.com/groups/global/AllUsers" />
<td class="cell s3AclName">All Users</td>
<td class="cell s3AclFC">
<input type="radio" name="All" value="FULL_CONTROL" class="s3AclValue"/>
</td>
<td class="cell s3AclWRITE">
<input type="radio" name="All" value="WRITE" class="s3AclValue"/>
</td>
<td class="cell s3AclREAD">
<input type="radio" name="All" value="READ" class="s3AclValue"/>
</td>
<td class="cell s3AclNONE">
<input type="radio" name="All" value="NONE" class="s3AclValue"/>
</td>
</tr>
</table>
</form>
</div>
Expand Down
29 changes: 16 additions & 13 deletions src/main/resources/static/javascript/AclPage.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,25 @@
AclPage = function( entry, acl, util, templateEngine ) {
this.util = util;
this.templates = templateEngine;
this.$root = jQuery( templateEngine.get( 'aclPage' ).render( {}, ['.s3UserAclTable', '.s3GroupAclTable', '.s3AddUserAclButton', '.s3AddGroupAclButton', '.s3SaveButton', '.s3CancelButton'] ) );
this.$root = jQuery( templateEngine.get( 'aclPage' ).render( {}, ['.s3UserAclTable', '.s3GroupAclTable', '.s3AddUserAclButton', '.s3SaveButton', '.s3CancelButton'] ) );
this.$userAclTable = this.$root.find( '.s3UserAclTable' ).empty();
this.$groupAclTable = this.$root.find( '.s3GroupAclTable' ).empty();
this.$groupAclTable = this.$root.find( '.s3GroupAclTable' );
this.$groupAclTable.find( '.row' ).each( function() {
var $this = jQuery( this );
$this.find( 'input[value="NONE"]' ).prop( 'checked', true );
} );

for ( i = 0; i < acl.grants.length ; i++ ) {
var grant = acl.grants[i];
if ( grant.grantee.uri ) {
this.addAclEntry( this.$groupAclTable, grant.grantee.uri, grant.permission );
} else {
if ( grant.grantee.id ) {
this.addAclEntry( this.$userAclTable, grant.grantee.id, grant.permission );
} else {
this.$groupAclTable.find( '.row' ).each( function() {
var $this = jQuery( this );
if ( grant.grantee.uri == $this.find( '.s3AclUri' ).val() ) {
$this.find( 'input[value="' + grant.permission + '"]' ).prop( 'checked', true );
}
} );
}
}

Expand All @@ -38,12 +47,6 @@ AclPage = function( entry, acl, util, templateEngine ) {
page.addAclEntry( page.$userAclTable, name );
};

this.$root.find( '.s3AddGroupAclButton' )[0].onclick = function() {
var uri = page.util.prompt( 'groupAclUriPrompt', {}, page.util.validName, 'validNameError' );
if ( uri == null || uri.length == 0 ) return;
page.addAclEntry( page.$groupAclTable, uri );
};

this.$root.find( '.s3SaveButton' )[0].onclick = function() {
var newAcl = {
grants: [],
Expand All @@ -57,9 +60,9 @@ AclPage = function( entry, acl, util, templateEngine ) {
} );
page.$groupAclTable.find( '.row' ).each( function() {
var $this = jQuery( this );
var name = $this.find( '.s3AclName' ).text();
var uri = $this.find( '.s3AclUri' ).val();
var permission = $this.find( '.s3AclValue:checked' ).val();
newAcl.grants.push( new AclEntry( null, name, permission ) );
newAcl.grants.push( new AclEntry( null, uri, permission ) );
} );
page.util.setAcl( entry, newAcl, function() {
modalWindow.remove();
Expand Down
27 changes: 22 additions & 5 deletions src/main/resources/templates/index.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -483,18 +483,35 @@ permissions and limitations under the License.
<form>
<table class="table s3AclTable s3GroupAclTable">
<tr class="row">
<td class="cell s3AclName">other</td>
<input type="hidden" class="s3AclUri" value="http://acs.amazonaws.com/groups/global/AuthenticatedUsers" />
<td class="cell s3AclName">Authenticated Users</td>
<td class="cell s3AclFC">
<input type="radio" name="group" value="FULL_CONTROL" class="s3AclValue"/>
<input type="radio" name="%{name}" value="FULL_CONTROL" class="s3AclValue"/>
</td>
<td class="cell s3AclWRITE">
<input type="radio" name="group" value="WRITE" class="s3AclValue"/>
<input type="radio" name="%{name}" value="WRITE" class="s3AclValue"/>
</td>
<td class="cell s3AclREAD">
<input type="radio" name="group" value="READ" class="s3AclValue"/>
<input type="radio" name="%{name}" value="READ" class="s3AclValue"/>
</td>
<td class="cell s3AclNONE">
<input type="radio" name="group" value="NONE" class="s3AclValue"/>
<input type="radio" name="%{name}" value="NONE" class="s3AclValue"/>
</td>
</tr>
<tr class="row">
<input type="hidden" class="s3AclUri" value="http://acs.amazonaws.com/groups/global/AllUsers" />
<td class="cell s3AclName">All Users</td>
<td class="cell s3AclFC">
<input type="radio" name="%{name}" value="FULL_CONTROL" class="s3AclValue"/>
</td>
<td class="cell s3AclWRITE">
<input type="radio" name="%{name}" value="WRITE" class="s3AclValue"/>
</td>
<td class="cell s3AclREAD">
<input type="radio" name="%{name}" value="READ" class="s3AclValue"/>
</td>
<td class="cell s3AclNONE">
<input type="radio" name="%{name}" value="NONE" class="s3AclValue"/>
</td>
</tr>
</table>
Expand Down

0 comments on commit 2a6dc42

Please sign in to comment.