package ilarkesto.auth; public class Auth { public static boolean isVisible(Object entity, AUser user) { if (entity instanceof ViewProtected) return ((ViewProtected) entity).isVisibleFor(user); if (entity instanceof Ownable) return ((Ownable) entity).isOwner(user); return true; } public static boolean isEditable(Object entity, AUser user) { if (entity instanceof EditProtected) return ((EditProtected) entity).isEditableBy(user); return isVisible(entity, user); } public static boolean isDeletable(Object entity, AUser user) { if (entity instanceof DeleteProtected) return ((DeleteProtected) entity).isDeletableBy(user); return isEditable(entity, user); } private Auth() {} }