+function isAdmin($aLogin=null) {
+ if (is_null($aLogin)) {
+ global $Login;
+ $aLogin = $Login;
+ }
+ return !empty($aLogin) && is_a($aLogin, 'Login') && $aLogin->getUL()>=100;
+}
+
+function isImpersonating() {
+ return isSess('_UserId') && isSess('UserId');
+}
+
+function impersonate($userId=null) {
+ $wasImpersonating = isImpersonating();
+ if ($wasImpersonating) {
+ if (is_null($userId) || empty($userId)) {
+ sess('UserId',sess('_UserId'));
+ sess('_UserId','');
+ } elseif ($userId>0) {
+ sess('UserId',$userId);
+ } else {
+ return false;
+ }
+ } elseif (isLoggedIn()) {
+ sess('_UserId',sess('UserId'));
+ sess('UserId',$userId);
+ return true;
+ } else {
+ return false;
+ }
+}
+