     // MARK: dealing with system permissions
 
     public func statusLocationAlways() -> PermissionStatus {
+        if !CLLocationManager.locationServicesEnabled() {
+            return .Disabled
+        }
+        
         let status = CLLocationManager.authorizationStatus()
         switch status {
         case .AuthorizedAlways:


    func showDeniedAlert(permission: PermissionType) {
        var alert = UIAlertController(title: "Permission for \(permission.rawValue) was denied.",
            message: "Please enable access to \(permission.rawValue) in Settings",
            preferredStyle: .Alert)
        alert.addAction(UIAlertAction(title: "OK",
            style: .Cancel,

    case Authorized = "Authorized"
    case Unauthorized = "Unauthorized"
    case Unknown = "Unknown"
    case Disabled = "Disabled" // System-level
}

public enum PermissionDemands: String {
