forked from extern/egroupware
* Admin: new function "Clear cache and register hooks", also called automatic when restoring a backup
This commit is contained in:
parent
6e374a4697
commit
b514745d01
@ -98,7 +98,7 @@ class admin_prefs_sidebox_hooks
|
|||||||
|
|
||||||
if (! $GLOBALS['egw']->acl->check('applications_access',16,'admin'))
|
if (! $GLOBALS['egw']->acl->check('applications_access',16,'admin'))
|
||||||
{
|
{
|
||||||
$file['Find and Register all Application Hooks'] = egw::link('/index.php','menuaction=admin.admin_prefs_sidebox_hooks.register_all_hooks');
|
$file['Clear cache and register hooks'] = egw::link('/index.php','menuaction=admin.admin_prefs_sidebox_hooks.register_all_hooks');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $GLOBALS['egw']->acl->check('asyncservice_access',1,'admin'))
|
if (! $GLOBALS['egw']->acl->check('asyncservice_access',1,'admin'))
|
||||||
@ -141,6 +141,8 @@ class admin_prefs_sidebox_hooks
|
|||||||
{
|
{
|
||||||
$GLOBALS['egw']->redirect_link('/index.php');
|
$GLOBALS['egw']->redirect_link('/index.php');
|
||||||
}
|
}
|
||||||
|
egw_cache::flush(egw_cache::INSTANCE);
|
||||||
|
|
||||||
$GLOBALS['egw']->hooks->register_all_hooks();
|
$GLOBALS['egw']->hooks->register_all_hooks();
|
||||||
|
|
||||||
common::delete_image_map();
|
common::delete_image_map();
|
||||||
|
@ -132,6 +132,7 @@ check categories for not (longer) existing accounts admin de Prüfe Kategorien a
|
|||||||
check ip address of all sessions admin de IP-Adresse für alle Sessions überprüfen
|
check ip address of all sessions admin de IP-Adresse für alle Sessions überprüfen
|
||||||
check items to <b>%1</b> to %2 for %3 admin de Durch Abhaken %3 in %2 <b>%1</b>
|
check items to <b>%1</b> to %2 for %3 admin de Durch Abhaken %3 in %2 <b>%1</b>
|
||||||
children admin de Kinder
|
children admin de Kinder
|
||||||
|
clear cache and register hooks admin de Cache löschen und Hooks registrieren
|
||||||
click to select a color admin de Anklicken um eine Farbe auszuwählen
|
click to select a color admin de Anklicken um eine Farbe auszuwählen
|
||||||
color admin de Farbe
|
color admin de Farbe
|
||||||
command scheduled to run at %1 admin de Ausführung des Befehls eingeplant am/um %1
|
command scheduled to run at %1 admin de Ausführung des Befehls eingeplant am/um %1
|
||||||
@ -289,7 +290,6 @@ false admin de Falsch
|
|||||||
field '%1' already exists !!! admin de Feld '%1' existiert bereits !!!
|
field '%1' already exists !!! admin de Feld '%1' existiert bereits !!!
|
||||||
file space admin de Speicherplatz
|
file space admin de Speicherplatz
|
||||||
file space must be an integer admin de Speicherplatz muss eine Zahl sein
|
file space must be an integer admin de Speicherplatz muss eine Zahl sein
|
||||||
find and register all application hooks admin de Suchen und registrieren der "Hooks" aller Anwendungen
|
|
||||||
for the times above admin de für die oben angegebenen Zeiten
|
for the times above admin de für die oben angegebenen Zeiten
|
||||||
for the times below (empty values count as '*', all empty = every minute) admin de für die darunter angegebenen Zeiten (leere Felder zählen als "*", alles leer = jede Minute)
|
for the times below (empty values count as '*', all empty = every minute) admin de für die darunter angegebenen Zeiten (leere Felder zählen als "*", alles leer = jede Minute)
|
||||||
force password strength (1-5, default empty: no check against rules for a strong password)? admin de Erzwinge eine gewisse Qualität der Passwörter im Passwort-Ändern Dialog (1-5, 1:gering, 5=stark; Default=leer kein Check gegen Regeln zur Passwortqualität)
|
force password strength (1-5, default empty: no check against rules for a strong password)? admin de Erzwinge eine gewisse Qualität der Passwörter im Passwort-Ändern Dialog (1-5, 1:gering, 5=stark; Default=leer kein Check gegen Regeln zur Passwortqualität)
|
||||||
|
@ -132,6 +132,7 @@ check categories for not (longer) existing accounts admin en Check categories fo
|
|||||||
check ip address of all sessions admin en Check IP address of all sessions
|
check ip address of all sessions admin en Check IP address of all sessions
|
||||||
check items to <b>%1</b> to %2 for %3 admin en Check items to <b>%1</b> to %2 for %3
|
check items to <b>%1</b> to %2 for %3 admin en Check items to <b>%1</b> to %2 for %3
|
||||||
children admin en Children
|
children admin en Children
|
||||||
|
clear cache and register hooks admin en Clear cache and register hooks
|
||||||
click to select a color admin en Click to select a color
|
click to select a color admin en Click to select a color
|
||||||
color admin en Color
|
color admin en Color
|
||||||
command scheduled to run at %1 admin en Command scheduled to run at %1
|
command scheduled to run at %1 admin en Command scheduled to run at %1
|
||||||
@ -289,7 +290,6 @@ false admin en False
|
|||||||
field '%1' already exists !!! admin en Field '%1' already exists!
|
field '%1' already exists !!! admin en Field '%1' already exists!
|
||||||
file space admin en File space
|
file space admin en File space
|
||||||
file space must be an integer admin en File space must be an integer
|
file space must be an integer admin en File space must be an integer
|
||||||
find and register all application hooks admin en Find and register all application hooks
|
|
||||||
for the times above admin en For the times above
|
for the times above admin en For the times above
|
||||||
for the times below (empty values count as '*', all empty = every minute) admin en For the times below: empty values count as '*', all empty = every minute.
|
for the times below (empty values count as '*', all empty = every minute) admin en For the times below: empty values count as '*', all empty = every minute.
|
||||||
force password strength (1-5, default empty: no check against rules for a strong password)? admin en Set required password strength. 1 = weak, up to 5 = very strong. Default = empty, no password strength checked
|
force password strength (1-5, default empty: no check against rules for a strong password)? admin en Set required password strength. 1 = weak, up to 5 = very strong. Default = empty, no password strength checked
|
||||||
|
@ -620,12 +620,12 @@ class db_backup
|
|||||||
{
|
{
|
||||||
return lang('Restore failed');
|
return lang('Restore failed');
|
||||||
}
|
}
|
||||||
|
// flush instance cache
|
||||||
|
egw_cache::flush(egw_cache::INSTANCE);
|
||||||
|
|
||||||
// search-and-register-hooks
|
// search-and-register-hooks
|
||||||
$GLOBALS['egw']->hooks->register_all_hooks();
|
$GLOBALS['egw']->hooks->register_all_hooks();
|
||||||
|
|
||||||
// invalidate categories cache, it's instance wide
|
|
||||||
categories::invalidate_cache();
|
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -512,6 +512,62 @@ class egw_cache
|
|||||||
return $GLOBALS['egw_info']['server'][$name];
|
return $GLOBALS['egw_info']['server'][$name];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flush (delete) whole (instance) cache or application/class specific part of it
|
||||||
|
*
|
||||||
|
* @param $string $level=self::INSTANCE
|
||||||
|
* @param string $app=null
|
||||||
|
*/
|
||||||
|
static public function flush($level=self::INSTANCE, $app=null)
|
||||||
|
{
|
||||||
|
$ret = true;
|
||||||
|
if (!($provider = self::get_provider($level)))
|
||||||
|
{
|
||||||
|
$ret = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$keys = array($level);
|
||||||
|
if ($app) $keys[] = $app;
|
||||||
|
if (!$provider->flush($keys))
|
||||||
|
{
|
||||||
|
if ($level == self::INSTANCE)
|
||||||
|
{
|
||||||
|
self::generate_instance_key();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$ret = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//error_log(__METHOD__."('$level', '$app') returning ".array2string($ret));
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Key used for instance specific data
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private static $instance_key;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a new instance key and by doing so effectivly flushes whole instance cache
|
||||||
|
*
|
||||||
|
* @return string new key also stored in self::$instance_key
|
||||||
|
*/
|
||||||
|
static public function generate_instance_key()
|
||||||
|
{
|
||||||
|
$install_id = self::get_system_config('install_id');
|
||||||
|
|
||||||
|
self::$instance_key = self::INSTANCE.'-'.$install_id.'-'.microtime(true);
|
||||||
|
self::setTree(__CLASS__, $install_id, self::$instance_key);
|
||||||
|
|
||||||
|
//error_log(__METHOD__."() install_id='$install_id' returning '".self::$instance_key."'");
|
||||||
|
return self::$instance_key;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get keys array from $level, $app and $location
|
* Get keys array from $level, $app and $location
|
||||||
*
|
*
|
||||||
@ -537,7 +593,13 @@ class egw_cache
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case self::INSTANCE:
|
case self::INSTANCE:
|
||||||
$bases[$level] = $level.'-'.self::get_system_config('install_id');
|
if (!isset(self::$instance_key))
|
||||||
|
{
|
||||||
|
self::$instance_key = self::getTree(__CLASS__, self::get_system_config('install_id'));
|
||||||
|
//error_log(__METHOD__."('$level',...) instance_key read from tree-cache=".array2string(self::$instance_key));
|
||||||
|
if (!isset(self::$instance_key)) self::generate_instance_key();
|
||||||
|
}
|
||||||
|
$bases[$level] = self::$instance_key;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -596,6 +658,16 @@ interface egw_cache_provider
|
|||||||
* @return boolean true on success, false on error (eg. $key not set)
|
* @return boolean true on success, false on error (eg. $key not set)
|
||||||
*/
|
*/
|
||||||
function delete(array $keys);
|
function delete(array $keys);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete all data under given keys
|
||||||
|
*
|
||||||
|
* Providers can return false, if they do not support flushing part of the cache (eg. memcache)
|
||||||
|
*
|
||||||
|
* @param array $keys eg. array($level,$app,$location)
|
||||||
|
* @return boolean true on success, false on error (eg. $key not set)
|
||||||
|
*/
|
||||||
|
function flush(array $keys);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -722,6 +794,19 @@ abstract class egw_cache_provider_check implements egw_cache_provider
|
|||||||
|
|
||||||
return $failed;
|
return $failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete all data under given keys
|
||||||
|
*
|
||||||
|
* Providers can return false, if they do not support flushing part of the cache (eg. memcache)
|
||||||
|
*
|
||||||
|
* @param array $keys eg. array($level,$app,$location)
|
||||||
|
* @return boolean true on success, false on error (eg. $key not set)
|
||||||
|
*/
|
||||||
|
function flush(array $keys)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// some testcode, if this file is called via it's URL
|
// some testcode, if this file is called via it's URL
|
||||||
|
Loading…
Reference in New Issue
Block a user