As for assaults, no shelter is going to allow an assult to happen and if an assault does happen, the police would be called. If you believe assaults are common at shelters, which they are not, call a shelter or the related police station and ask how many assaults they have had reported in the past year.
Everywhere has rules and polices, including hotels. Shelters are free and they have reasons for the rules.