Only check for apps owncloud version requirment when there is a new owncloud version

This commit is contained in:
Bart Visscher 2012-06-16 20:50:52 +02:00
parent 46ad51cbe2
commit 8aa7ed39a5
2 changed files with 16 additions and 14 deletions

View File

@ -514,32 +514,33 @@ class OC_App{
$currentVersion=OC_App::getAppVersion($app); $currentVersion=OC_App::getAppVersion($app);
if ($currentVersion) { if ($currentVersion) {
if (version_compare($currentVersion, $installedVersion, '>')) { if (version_compare($currentVersion, $installedVersion, '>')) {
OC_Log::write($app,'starting app upgrade from '.$installedVersion.' to '.$currentVersion,OC_Log::DEBUG); OC_Log::write($app, 'starting app upgrade from '.$installedVersion.' to '.$currentVersion,OC_Log::DEBUG);
OC_App::updateApp($app); OC_App::updateApp($app);
OC_Appconfig::setValue($app,'installed_version',OC_App::getAppVersion($app)); OC_Appconfig::setValue($app, 'installed_version', OC_App::getAppVersion($app));
} }
} }
} }
}
// check if the current enabled apps are compatible with the current ownCloud version. disable them if not. /**
// this is important if you upgrade ownCloud and have non ported 3rd party apps installed * check if the current enabled apps are compatible with the current
$apps =OC_App::getEnabledApps(); * ownCloud version. disable them if not.
$version=OC_Util::getVersion(); * This is important if you upgrade ownCloud and have non ported 3rd
* party apps installed.
*/
public static function checkAppsRequirements($apps = array()){
if (empty($apps)) {
$apps = OC_App::getEnabledApps();
}
$version = OC_Util::getVersion();
foreach($apps as $app) { foreach($apps as $app) {
// check if the app is compatible with this version of ownCloud // check if the app is compatible with this version of ownCloud
$info=OC_App::getAppInfo($app); $info = OC_App::getAppInfo($app);
if(!isset($info['require']) or ($version[0]>$info['require'])){ if(!isset($info['require']) or ($version[0]>$info['require'])){
OC_Log::write('core','App "'.$info['name'].'" can\'t be used because it is not compatible with this version of ownCloud',OC_Log::ERROR); OC_Log::write('core','App "'.$info['name'].'" can\'t be used because it is not compatible with this version of ownCloud',OC_Log::ERROR);
OC_App::disable( $app ); OC_App::disable( $app );
} }
} }
} }
/** /**

View File

@ -237,6 +237,7 @@ class OC{
} }
OC_Config::setValue('version',implode('.',OC_Util::getVersion())); OC_Config::setValue('version',implode('.',OC_Util::getVersion()));
OC_App::checkAppsRequirements();
} }
OC_App::updateApps(); OC_App::updateApps();