Changeset 1402 for trunk


Ignore:
Timestamp:
06/04/19 14:29:49 (5 years ago)
Author:
bln4
Message:

Permission is now a triple rather than a pair. The new second bit is not yet used but will be used for group level permissions.

gazumpts

Location:
trunk/src/org/expeditee
Files:
10 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/auth/account/Create.java

    r1393 r1402  
    3838import org.expeditee.io.ExpReader;
    3939import org.expeditee.items.Item;
    40 import org.expeditee.items.PermissionPair;
     40import org.expeditee.items.PermissionTriple;
    4141import org.expeditee.items.Text;
    4242import org.expeditee.items.UserAppliedPermission;
     
    222222                        for (Text t: textItems) {
    223223                                if (t.getText().equals("Secrets")) {
    224                                         t.setPermission(new PermissionPair(UserAppliedPermission.followLinks, UserAppliedPermission.denied));
     224                                        t.setPermission(new PermissionTriple(UserAppliedPermission.followLinks, UserAppliedPermission.denied, UserAppliedPermission.denied));
    225225                                        break;
    226226                                }
  • trunk/src/org/expeditee/gui/AttributeUtils.java

    r1398 r1402  
    3333import org.expeditee.items.Item;
    3434import org.expeditee.items.Justification;
    35 import org.expeditee.items.PermissionPair;
     35import org.expeditee.items.PermissionTriple;
    3636import org.expeditee.items.Text;
    3737import org.expeditee.simple.IncorrectTypeException;
     
    146146                        Class<?>[] pIntArray = { int[].class };
    147147                        Class<?>[] pJustification = { Justification.class };
    148                         Class<?>[] pPermission = { PermissionPair.class };
     148                        Class<?>[] pPermission = { PermissionTriple.class };
    149149                        Class<?>[] pDotType = { DotType.class };
    150150                        Class<?>[] pEncPermission = { EncryptionPermissionTriple.class };
  • trunk/src/org/expeditee/gui/Frame.java

    r1374 r1402  
    5555import org.expeditee.items.ItemUtils;
    5656import org.expeditee.items.Line;
    57 import org.expeditee.items.PermissionPair;
     57import org.expeditee.items.PermissionTriple;
    5858import org.expeditee.items.Text;
    5959import org.expeditee.items.UserAppliedPermission;
     
    100100        private int _version = 0;
    101101
    102         private PermissionPair _permissionPair = null;
     102        private PermissionTriple _permissionTriple = null;
    103103       
    104104        private EncryptionPermissionTriple _encPermissionTriple = null;
     
    747747         *            The protection to use for this Frame.
    748748         */
    749         public void setPermission(PermissionPair permission)
    750         {
    751                 if (_permissionPair != null && !_permissionPair.getPermission(this._owner).equals(permission.getPermission(this._owner))) {
     749        public void setPermission(PermissionTriple permission) {
     750                List<String> groupMembers = new ArrayList<String>();
     751               
     752                if (_permissionTriple != null && !_permissionTriple.getPermission(this._owner, groupMembers).equals(permission.getPermission(this._owner, groupMembers))) {
    752753                        _protectionChanged = true;
    753754                }
    754755
    755                 _permissionPair = new PermissionPair(permission);
     756                _permissionTriple = new PermissionTriple(permission);
    756757
    757758                if (_body.size() > 0) {
    758                         refreshItemPermissions(permission.getPermission(_owner));
     759                        refreshItemPermissions(permission.getPermission(_owner, groupMembers));
    759760                }
    760761        }
     
    11921193        }
    11931194
    1194         public PermissionPair getPermission()
    1195         {
    1196                 return _permissionPair;
     1195        public PermissionTriple getPermission()
     1196        {
     1197                return _permissionTriple;
    11971198        }
    11981199       
     
    12041205        public UserAppliedPermission getUserAppliedPermission(UserAppliedPermission defaultPermission)
    12051206        {
    1206                 if (_permissionPair == null) {
     1207                if (_permissionTriple == null) {
    12071208                        return defaultPermission;
    12081209                }
    12091210
    1210                 return _permissionPair.getPermission(_owner);
     1211                return _permissionTriple.getPermission(_owner, new ArrayList<String>());
    12111212        }
    12121213
     
    27252726        }
    27262727       
    2727         public void moveItemFromBodyHiddenDueToPermission(Item i, PermissionPair newPermission) {
     2728        public void moveItemFromBodyHiddenDueToPermission(Item i, PermissionTriple newPermission) {
    27282729                if (_bodyHiddenDueToPermissions.contains(i)) {
    27292730                        _bodyHiddenDueToPermissions.remove(i);
  • trunk/src/org/expeditee/gui/FrameIO.java

    r1399 r1402  
    6767import org.expeditee.items.ItemUtils;
    6868import org.expeditee.items.Justification;
    69 import org.expeditee.items.PermissionPair;
     69import org.expeditee.items.PermissionTriple;
    7070import org.expeditee.items.Text;
    7171import org.expeditee.items.UserAppliedPermission;
     
    13301330                                        original.setFrameset(oldFramesetName);
    13311331                                        original.setFrameNumber(nextnum);
    1332                                         original.setPermission(new PermissionPair(UserAppliedPermission.copy));
     1332                                        original.setPermission(new PermissionTriple(UserAppliedPermission.copy));
    13331333                                        original.change();
    13341334                                        SaveFrame(original, false, false);
  • trunk/src/org/expeditee/gui/FrameUtils.java

    r1393 r1402  
    7171import org.expeditee.items.JSItem;
    7272import org.expeditee.items.Line;
    73 import org.expeditee.items.PermissionPair;
     73import org.expeditee.items.PermissionTriple;
    7474import org.expeditee.items.Picture;
    7575import org.expeditee.items.Text;
     
    491491                }
    492492
    493                 final PermissionPair framePermissions = toDisplay.getPermission();
     493                final PermissionTriple framePermissions = toDisplay.getPermission();
    494494                if (framePermissions != null
    495                                 && framePermissions.getPermission(toDisplay.getOwner()) == UserAppliedPermission.denied) {
     495                                && framePermissions.getPermission(toDisplay.getOwner(), new ArrayList<String>()) == UserAppliedPermission.denied) {
    496496                        MessageBay.errorMessage("Insufficient permissions to navigate to frame: " + toDisplay.getName());
    497497                        return;
     
    10201020                                                        String level = new AttributeValuePair(i.getText()).getValue();
    10211021                                                        // default permission (if none is specified)
    1022                                                         PermissionPair permissionLevel = new PermissionPair(level,
     1022                                                        PermissionTriple permissionLevel = new PermissionTriple(level,
    10231023                                                                        UserAppliedPermission.followLinks);
    10241024
     
    10291029                                                                if (existingOverlay == null) {
    10301030                                                                        Overlay newOverlay = new Overlay(overlayFrame,
    1031                                                                                         permissionLevel.getPermission(overlayFrame.getOwner()));
     1031                                                                                        permissionLevel.getPermission(overlayFrame.getOwner(), new ArrayList<String>()));
    10321032                                                                        i.setOverlay(newOverlay);
    10331033                                                                        overlays.add(newOverlay);
  • trunk/src/org/expeditee/io/DefaultFrameReader.java

    r1398 r1402  
    4141import org.expeditee.items.Justification;
    4242import org.expeditee.items.Line;
    43 import org.expeditee.items.PermissionPair;
     43import org.expeditee.items.PermissionTriple;
    4444import org.expeditee.items.Text;
    4545
     
    6969        protected static Class[] pItem = { Item.class };
    7070        protected static Class[] pJustification = { Justification.class };
    71         protected static Class[] pPermission = { PermissionPair.class };
     71        protected static Class[] pPermission = { PermissionTriple.class };
    7272        protected static Class[] pDotType = { DotType.class };
    7373        protected static Class[] pEncPermission = { EncryptionPermissionTriple.class };
  • trunk/src/org/expeditee/items/Circle.java

    r1143 r1402  
    313313
    314314        @Override
    315         public void setPermission(PermissionPair permissionPair) {
     315        public void setPermission(PermissionTriple permissionPair) {
    316316                super.setPermission(permissionPair);
    317317                _center.setPermission(permissionPair);
  • trunk/src/org/expeditee/items/Item.java

    r1398 r1402  
    217217        private List<String> _actionLeaveFrame = null;
    218218
    219         private PermissionPair _permissionPair = null;
     219        private PermissionTriple _permissionTriple = null;
    220220       
    221221        private UserAppliedPermission _overlayPermission = null;
     
    494494        }
    495495
    496         public void setPermission(PermissionPair permissionPair)
    497         {
    498                 _permissionPair = permissionPair;
    499                 if (_permissionPair.getPermission(_owner) == UserAppliedPermission.denied) {
     496        public void setPermission(PermissionTriple permissionPair)
     497        {
     498                _permissionTriple = permissionPair;
     499                if (_permissionTriple.getPermission(_owner, new ArrayList<String>()) == UserAppliedPermission.denied) {
    500500                        this.getParent().moveItemToBodyHiddenDueToPermission(this);
    501501                }
    502502        }
    503503       
    504         public PermissionPair getPermission() {
    505                 return _permissionPair;
     504        public PermissionTriple getPermission() {
     505                return _permissionTriple;
    506506        }
    507507
    508508        public UserAppliedPermission getUserAppliedPermission() {
    509509                String owner = _owner != null ? _owner : _parent != null ? _parent.getOwner() : null;
    510                 if(_permissionPair != null) return _permissionPair.getPermission(owner);
     510                if(_permissionTriple != null) return _permissionTriple.getPermission(owner, new ArrayList<String>());
    511511                if(_overlayPermission != null) return _overlayPermission;
    512512                if(_parent != null) return _parent.getUserAppliedPermission();
  • trunk/src/org/expeditee/items/Line.java

    r1143 r1402  
    12231223
    12241224        @Override
    1225         public void setPermission(PermissionPair permissionPair) {
     1225        public void setPermission(PermissionTriple permissionPair) {
    12261226                _start.setPermission(permissionPair);
    12271227                _end.setPermission(permissionPair);
  • trunk/src/org/expeditee/items/PermissionTriple.java

    r1401 r1402  
    1919package org.expeditee.items;
    2020
     21import java.util.Arrays;
     22import java.util.List;
     23
    2124import org.expeditee.settings.UserSettings;
    2225
    23 public class PermissionPair {
     26public class PermissionTriple {
    2427
    2528        private UserAppliedPermission ownerPermission;
    26         private UserAppliedPermission notOwnerPermission;
     29        private UserAppliedPermission groupPermission;
     30        private UserAppliedPermission otherPermission;
    2731
    28         public PermissionPair(String permissionCode, UserAppliedPermission defaultPermission) {
     32        public PermissionTriple(String permissionCode, UserAppliedPermission defaultPermission) {
    2933                ownerPermission = defaultPermission;
    30                 notOwnerPermission = defaultPermission;
     34                groupPermission = defaultPermission;
     35                otherPermission = defaultPermission;
     36               
     37                if (permissionCode != null && permissionCode.length() > 0) {
     38                        permissionCode = permissionCode.trim().toLowerCase();
     39                       
     40                        int numberOfMinuses = permissionCode.chars().reduce(0, (a, b) -> b == '-' ? a + 1 : a);
     41                        String[] codes = new String[3];
     42                        Arrays.fill(codes, "");
     43                        if (permissionCode.length() == 1 + numberOfMinuses) {
     44                                codes[0] = permissionCode;
     45                        } else {
     46                                int i = 0;
     47                                for (char c : permissionCode.toCharArray()) {
     48                                        try {
     49                                                int asInt = Integer.parseInt(c + "");
     50                                                codes[i] += asInt + "";
     51                                                i++;
     52                                        } catch (NumberFormatException e) {
     53                                                if (c == '-') {
     54                                                        codes[i] += c + "";
     55                                                }
     56                                        }
     57                                }
     58                        }
    3159
    32                 if (permissionCode != null) {
    33 
    34                         permissionCode = permissionCode.trim().toLowerCase();
    35                         if (permissionCode.length() != 0) {
    36 
    37                                 if (permissionCode.length() == 1 || (permissionCode.length() == 2 && permissionCode.startsWith("-"))) {
    38                                         // replicate it to cover ifOwner/ifNotOwner
    39                                         permissionCode += permissionCode;
    40                                 }
    41                                
    42                                 final int ownerPermissionIndexStart = 0;
    43                                 final int ownerPermissionIndexEnd = permissionCode.charAt(ownerPermissionIndexStart) == '-' ?
    44                                                                 ownerPermissionIndexStart + 2 : ownerPermissionIndexStart + 1;
    45                                 final int notOwnerPermissionIndexStart = ownerPermissionIndexEnd;
    46                                 final int notOwnerPermissionIndexEnd = permissionCode.charAt(notOwnerPermissionIndexStart) == '-' ?
    47                                                 notOwnerPermissionIndexStart + 2 : notOwnerPermissionIndexStart + 1;
    48                                 final String ownerPermissionCode = permissionCode.substring(ownerPermissionIndexStart, ownerPermissionIndexEnd);
    49                                 final String notOwnerPermissionCode = permissionCode.substring(notOwnerPermissionIndexStart, notOwnerPermissionIndexEnd);
    50                                 ownerPermission = UserAppliedPermission.getPermission(ownerPermissionCode, defaultPermission);
    51                                 notOwnerPermission = UserAppliedPermission.getPermission(notOwnerPermissionCode, defaultPermission);
     60                        this.ownerPermission = UserAppliedPermission.getPermission(codes[0], this.ownerPermission);
     61                        if (codes[1].length() == 0) { // If there is only a permission code for owner.
     62                                this.groupPermission = UserAppliedPermission.getPermission(codes[0], this.groupPermission);
     63                                this.otherPermission = UserAppliedPermission.getPermission(codes[0], this.otherPermission);
     64                        } else if (codes[2].length() == 0) { // If there is only two of three permission codes specified.
     65                                this.groupPermission = UserAppliedPermission.getPermission(codes[1], this.groupPermission);
     66                                this.otherPermission = UserAppliedPermission.getPermission(codes[1], this.otherPermission);
     67                        } else { // If all permission codes are specified.
     68                                this.groupPermission = UserAppliedPermission.getPermission(codes[1], this.groupPermission);
     69                                this.otherPermission = UserAppliedPermission.getPermission(codes[2], this.otherPermission);
    5270                        }
    5371                }
    5472        }
    5573
    56         public PermissionPair(UserAppliedPermission ownerPermission, UserAppliedPermission notOwnerPermission) {
     74        public PermissionTriple(UserAppliedPermission ownerPermission, UserAppliedPermission groupPermission, UserAppliedPermission otherPermission) {
    5775                this.ownerPermission = ownerPermission;
    58                 this.notOwnerPermission = notOwnerPermission;
     76                this.groupPermission = groupPermission;
     77                this.otherPermission = otherPermission;
    5978        }
    6079
    61         public PermissionPair(UserAppliedPermission ownerPermissionForBoth) {
    62                 this(ownerPermissionForBoth, ownerPermissionForBoth);
     80        public PermissionTriple(UserAppliedPermission permissionForAll) {
     81                this(permissionForAll, permissionForAll, permissionForAll);
    6382        }
    6483
    65         public PermissionPair(PermissionPair pp) {
    66                 ownerPermission = pp.ownerPermission;
    67                 notOwnerPermission = pp.notOwnerPermission;
     84        public PermissionTriple(PermissionTriple pt) {
     85                this.ownerPermission = pt.ownerPermission;
     86                this.groupPermission = pt.groupPermission;
     87                this.otherPermission = pt.otherPermission;
    6888        }
    6989
    70         public UserAppliedPermission getPermission(String ownerOfItem) {
    71 
     90        public UserAppliedPermission getPermission(String ownerOfItem, List<String> group) {
    7291                if (UserSettings.UserName.get().equals(ownerOfItem)) {
    7392                        return ownerPermission;
     93                } else if (group.contains(UserSettings.UserName.get())) {
     94                        return groupPermission;
    7495                } else {
    75                         return notOwnerPermission;
     96                        return otherPermission;
    7697                }
    7798        }
     
    86107         *         defined in Item
    87108         */
    88         public static PermissionPair convertString(String permissionCode) {
    89                 PermissionPair pp = new PermissionPair(permissionCode, UserAppliedPermission.full);
    90 
    91                 return pp;
     109        public static PermissionTriple convertString(String permissionCode) {
     110                PermissionTriple pt = new PermissionTriple(permissionCode, UserAppliedPermission.full);
     111                return pt;
    92112        }
    93113
    94114        public String getCode() {
    95                 return Integer.toString(ownerPermission.getCode()) + Integer.toString(notOwnerPermission.getCode());
     115                return Integer.toString(ownerPermission.getCode()) + Integer.toString(groupPermission.getCode()) + Integer.toString(otherPermission.getCode());
    96116        }
    97117
    98118        @Override
    99119        public String toString() {
    100                 return ownerPermission.toString() + ":" + notOwnerPermission.toString();
     120                return ownerPermission + ":" + groupPermission + ":" + otherPermission;
    101121        }
    102122}
  • trunk/src/org/expeditee/items/XRayable.java

    r1258 r1402  
    320320       
    321321        @Override
    322         public void setPermission(PermissionPair permissionPair) {
     322        public void setPermission(PermissionTriple permissionPair) {
    323323                _source.setPermission(permissionPair);
    324324        }
Note: See TracChangeset for help on using the changeset viewer.