001    package org.trails.security;
002    
003    import org.trails.descriptor.IClassDescriptor;
004    
005    public class PropertySecurityRestriction extends SecurityRestriction
006    {
007            private String propertyName;
008    
009            public String getPropertyName()
010            {
011                    return propertyName;
012            }
013    
014            public void setPropertyName(String propertyName)
015            {
016                    this.propertyName = propertyName;
017            }
018    
019            @Override
020            protected void applyRestriction(IClassDescriptor classDescriptor)
021            {
022                    switch (getRestrictionType())
023                    {
024                            case VIEW:
025                                    classDescriptor.
026                                            getPropertyDescriptor(getPropertyName()).
027                                            setHidden(true);
028                                    break;
029                            case UPDATE:
030                                    classDescriptor.
031                                            getPropertyDescriptor(getPropertyName()).
032                                            setReadOnly(true);
033                                    break;
034                            case REMOVE:
035                                    classDescriptor.
036                                            getPropertyDescriptor(getPropertyName()).
037                                            setReadOnly(true);
038                                    break;
039                            default:
040                                    break;
041                    }
042            }
043    
044    
045    }