- if (self::$user == null && class_exists('User')) {
- self::$user = User::getSilentWithValues(S::i('uid'), $_SESSION);
+ if (($forceFetch || self::$user == null) && class_exists('User')) {
+ if (S::has('user') && S::v('user') instanceof User) {
+ self::$user = S::v('user');
+ } else {
+ self::$user = User::getSilentWithValues(S::i('uid'), $_SESSION);
+ }