avoid crash when unauthenticated users make weather-related requests, mention it in UI

Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
pull/23043/head
Julien Veyssier 2020-09-25 10:42:30 +07:00
parent bd0b28d670
commit 5a6c0f64a6
No known key found for this signature in database
GPG Key ID: 4141FEE162030638
5 changed files with 30 additions and 11 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -46,7 +46,7 @@ class WeatherStatusController extends OCSController {
IRequest $request,
ILogger $logger,
WeatherStatusService $service,
string $userId) {
?string $userId) {
parent::__construct($appName, $request);
$this->userId = $userId;
$this->logger = $logger;

@ -105,7 +105,7 @@ class WeatherStatusService {
IUserManager $userManager,
IAppManager $appManager,
ICacheFactory $cacheFactory,
string $userId) {
?string $userId) {
$this->config = $config;
$this->userId = $userId;
$this->l10n = $l10n;

@ -240,7 +240,11 @@ export default {
console.info('The weather status request was cancelled because the user navigates.')
return
}
showError(t('weather_status', 'There was an error getting the weather status information.'))
if (err.response && err.response.status === 401) {
showError(t('weather_status', 'You are not logged in.'))
} else {
showError(t('weather_status', 'There was an error getting the weather status information.'))
}
console.error(err)
}
},
@ -309,8 +313,11 @@ export default {
this.loading = false
}
} catch (err) {
showError(t('weather_status', 'There was an error setting the location address.'))
console.debug(err)
if (err.response && err.response.status === 401) {
showError(t('weather_status', 'You are not logged in.'))
} else {
showError(t('weather_status', 'There was an error setting the location address.'))
}
this.loading = false
}
},
@ -320,7 +327,11 @@ export default {
this.address = loc.address
this.startLoop()
} catch (err) {
showError(t('weather_status', 'There was an error setting the location.'))
if (err.response && err.response.status === 401) {
showError(t('weather_status', 'You are not logged in.'))
} else {
showError(t('weather_status', 'There was an error setting the location.'))
}
console.debug(err)
}
},
@ -328,7 +339,11 @@ export default {
try {
await network.setMode(mode)
} catch (err) {
showError(t('weather_status', 'There was an error saving the mode.'))
if (err.response && err.response.status === 401) {
showError(t('weather_status', 'You are not logged in.'))
} else {
showError(t('weather_status', 'There was an error saving the mode.'))
}
console.debug(err)
}
},
@ -345,7 +360,11 @@ export default {
this.mode = MODE_MANUAL_LOCATION
this.startLoop()
} catch (err) {
showError(t('weather_status', 'There was an error using personal address.'))
if (err.response && err.response.status === 401) {
showError(t('weather_status', 'You are not logged in.'))
} else {
showError(t('weather_status', 'There was an error using personal address.'))
}
console.debug(err)
this.loading = false
}