1 2 module Model.VolumeAccess.Types 3 ( VolumeAccess(..) 4 , getShareFullDefault 5 ) where 6 7 import Data.Int (Int16) 8 9 import Model.Id.Types 10 import Model.Permission.Types 11 import Model.Volume.Types 12 import Model.Party.Types 13 14 data VolumeAccess = VolumeAccess 15 { volumeAccessIndividual, volumeAccessChildren :: Permission 16 , volumeAccessSort :: Maybe Int16 17 , volumeAccessShareFull :: Maybe Bool 18 , volumeAccessParty :: Party 19 , volumeAccessVolume :: Volume 20 } 21 22 getShareFullDefault :: Party -> Permission -> Maybe Bool 23 getShareFullDefault targetParty individualAccessLevel = 24 if (getPartyId targetParty, individualAccessLevel) == (nobodyId, PermissionPUBLIC) 25 then nobodyPublicLegacyDefault 26 else generalDefault 27 where 28 nobodyId :: Id Party 29 nobodyId = (getPartyId . accountParty . siteAccount) nobodySiteAuth 30 nobodyPublicLegacyDefault = Just True 31 generalDefault = Nothing