public String getSymbol() { final StringBuilder symbolic = new StringBuilder(); symbolic.append(setuid ? user.implies(Action.execute) ? StringUtils.substring(user.symbolic, 0, 2) + "s" : StringUtils.substring(user.symbolic, 0, 2) + "S" : user.symbolic); symbolic.append(setgid ? group.implies(Action.execute) ? StringUtils.substring(group.symbolic, 0, 2) + "s" : StringUtils.substring(group.symbolic, 0, 2) + "S" : group.symbolic); symbolic.append(sticky ? other.implies(Action.execute) ? StringUtils.substring(other.symbolic, 0, 2) + "t" : StringUtils.substring(other.symbolic, 0, 2) + "T" : other.symbolic); return symbolic.toString(); }
private static Supplier<Stream<Boolean>> map(final Supplier<Stream<Permission>> permissions, final Function<Permission, Permission.Action> selector, final Permission.Action action) { return () -> permissions.get().map(permission -> selector.apply(permission).implies(action)); }
@Action public void chmodUploadTypePopupChanged(NSPopUpButton sender) { Permission p = null; if(sender.selectedItem().tag() == 0) { p = new Permission(preferences.getInteger("queue.upload.permissions.file.default")); } if(sender.selectedItem().tag() == 1) { p = new Permission(preferences.getInteger("queue.upload.permissions.folder.default")); } if(null == p) { log.error("No selected item for:" + sender); return; } Permission.Action ownerPerm = p.getUser(); Permission.Action groupPerm = p.getGroup(); Permission.Action otherPerm = p.getOther(); uownerr.setState(ownerPerm.implies(Permission.Action.read) ? NSCell.NSOnState : NSCell.NSOffState); uownerw.setState(ownerPerm.implies(Permission.Action.write) ? NSCell.NSOnState : NSCell.NSOffState); uownerx.setState(ownerPerm.implies(Permission.Action.execute) ? NSCell.NSOnState : NSCell.NSOffState); ugroupr.setState(groupPerm.implies(Permission.Action.read) ? NSCell.NSOnState : NSCell.NSOffState); ugroupw.setState(groupPerm.implies(Permission.Action.write) ? NSCell.NSOnState : NSCell.NSOffState); ugroupx.setState(groupPerm.implies(Permission.Action.execute) ? NSCell.NSOnState : NSCell.NSOffState); uotherr.setState(otherPerm.implies(Permission.Action.read) ? NSCell.NSOnState : NSCell.NSOffState); uotherw.setState(otherPerm.implies(Permission.Action.write) ? NSCell.NSOnState : NSCell.NSOffState); uotherx.setState(otherPerm.implies(Permission.Action.execute) ? NSCell.NSOnState : NSCell.NSOffState); }
@Override public Acl getDefault(final Local file) { final Permission permission; if(PreferencesFactory.get().getBoolean("queue.upload.permissions.default")) { if(file.isFile()) { permission = new Permission( PreferencesFactory.get().getInteger("queue.upload.permissions.file.default")); } else { permission = new Permission( PreferencesFactory.get().getInteger("queue.upload.permissions.folder.default")); } } else { // Read permissions from local file permission = file.attributes().getPermission(); } final Acl acl = new Acl(); if(permission.getOther().implies(Permission.Action.read)) { acl.addAll(new Acl.GroupUser(Acl.GroupUser.EVERYONE), new Acl.Role(Acl.Role.READ)); } if(permission.getGroup().implies(Permission.Action.read)) { acl.addAll(new Acl.GroupUser(Acl.GroupUser.AUTHENTICATED), new Acl.Role(Acl.Role.READ)); } if(permission.getGroup().implies(Permission.Action.write)) { acl.addAll(new Acl.GroupUser(Acl.GroupUser.AUTHENTICATED), new Acl.Role(Acl.Role.WRITE)); } return acl; } }
@Action public void chmodDownloadTypePopupChanged(NSPopUpButton sender) { Permission p = null; if(sender.selectedItem().tag() == 0) { p = new Permission(preferences.getInteger("queue.download.permissions.file.default")); } if(sender.selectedItem().tag() == 1) { p = new Permission(preferences.getInteger("queue.download.permissions.folder.default")); } if(null == p) { log.error("No selected item for:" + sender); return; } Permission.Action ownerPerm = p.getUser(); Permission.Action groupPerm = p.getGroup(); Permission.Action otherPerm = p.getOther(); downerr.setState(ownerPerm.implies(Permission.Action.read) ? NSCell.NSOnState : NSCell.NSOffState); downerw.setState(ownerPerm.implies(Permission.Action.write) ? NSCell.NSOnState : NSCell.NSOffState); downerx.setState(ownerPerm.implies(Permission.Action.execute) ? NSCell.NSOnState : NSCell.NSOffState); dgroupr.setState(groupPerm.implies(Permission.Action.read) ? NSCell.NSOnState : NSCell.NSOffState); dgroupw.setState(groupPerm.implies(Permission.Action.write) ? NSCell.NSOnState : NSCell.NSOffState); dgroupx.setState(groupPerm.implies(Permission.Action.execute) ? NSCell.NSOnState : NSCell.NSOffState); dotherr.setState(otherPerm.implies(Permission.Action.read) ? NSCell.NSOnState : NSCell.NSOffState); dotherw.setState(otherPerm.implies(Permission.Action.write) ? NSCell.NSOnState : NSCell.NSOffState); dotherx.setState(otherPerm.implies(Permission.Action.execute) ? NSCell.NSOnState : NSCell.NSOffState); }
private void createAndSetSpecifiedPermission() { Permission newPermission = this.createSpecifiedPermission(); if(newPermission != null) { file.setPermission(FTPFile.USER_ACCESS, FTPFile.READ_PERMISSION, newPermission.getUser().implies(Permission.Action.read)); file.setPermission(FTPFile.USER_ACCESS, FTPFile.WRITE_PERMISSION, newPermission.getUser().implies(Permission.Action.write)); file.setPermission(FTPFile.USER_ACCESS, FTPFile.EXECUTE_PERMISSION, newPermission.getUser().implies(Permission.Action.execute)); file.setPermission(FTPFile.GROUP_ACCESS, FTPFile.READ_PERMISSION, newPermission.getUser().implies(Permission.Action.read)); file.setPermission(FTPFile.GROUP_ACCESS, FTPFile.WRITE_PERMISSION, newPermission.getUser().implies(Permission.Action.write)); file.setPermission(FTPFile.GROUP_ACCESS, FTPFile.EXECUTE_PERMISSION, newPermission.getUser().implies(Permission.Action.execute)); file.setPermission(FTPFile.WORLD_ACCESS, FTPFile.READ_PERMISSION, newPermission.getUser().implies(Permission.Action.read)); file.setPermission(FTPFile.WORLD_ACCESS, FTPFile.WRITE_PERMISSION, newPermission.getUser().implies(Permission.Action.write)); file.setPermission(FTPFile.WORLD_ACCESS, FTPFile.EXECUTE_PERMISSION, newPermission.getUser().implies(Permission.Action.execute)); } }
public Permission.Action resolve(Permission.Action original) { Permission.Action result = Permission.Action.none; result = solve(result, Permission.Action.read, read == null ? original.implies(Permission.Action.read) : read); result = solve(result, Permission.Action.write, write == null ? original.implies(Permission.Action.write) : write); result = solve(result, Permission.Action.execute, execute == null ? original.implies(Permission.Action.execute) : execute); return result; }