From c20c9ccf7dfef648df07f78adab44abde28a03c8 Mon Sep 17 00:00:00 2001
From: Jared Hancock <jared@osticket.com>
Date: Fri, 28 Nov 2014 21:20:37 -0600
Subject: [PATCH] oops: Fix a few small regressions

---
 include/ajax.orgs.php         |  1 +
 include/class.forms.php       |  3 ++-
 include/class.staff.php       |  4 +++-
 include/class.user.php        | 12 ++++++------
 include/class.usersession.php |  7 ++++---
 scp/orgs.php                  |  1 +
 6 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/include/ajax.orgs.php b/include/ajax.orgs.php
index 393c6dde4..b8309a55e 100644
--- a/include/ajax.orgs.php
+++ b/include/ajax.orgs.php
@@ -15,6 +15,7 @@
 
 if(!defined('INCLUDE_DIR')) die('403');
 
+require_once INCLUDE_DIR . 'class.organization.php';
 include_once(INCLUDE_DIR.'class.ticket.php');
 
 class OrgsAjaxAPI extends AjaxController {
diff --git a/include/class.forms.php b/include/class.forms.php
index fbd136a9a..e744f172c 100644
--- a/include/class.forms.php
+++ b/include/class.forms.php
@@ -799,7 +799,8 @@ class FormField {
     }
 
     function getTranslateTag($subtag) {
-        return _H(sprintf('field.%s.%s', $subtag, $this->get('id')));
+        return _H(sprintf('field.%s.%s.%s', $subtag, $this->get('id'),
+            $this->get('form_id', '*internal*')));
     }
     function getLocal($subtag, $default=false) {
         $tag = $this->getTranslateTag($subtag);
diff --git a/include/class.staff.php b/include/class.staff.php
index 1f7a3a3dc..e5b2f7d22 100644
--- a/include/class.staff.php
+++ b/include/class.staff.php
@@ -61,7 +61,9 @@ implements AuthenticatedUser {
     }
 
     function getHashtable() {
-        return $this->ht;
+        $base = $this->ht;
+        $base['group'] = $base['group_id'];
+        return $base;
     }
 
     function getInfo() {
diff --git a/include/class.user.php b/include/class.user.php
index c1cae5310..aa016cd00 100644
--- a/include/class.user.php
+++ b/include/class.user.php
@@ -16,6 +16,7 @@
 **********************************************************************/
 require_once INCLUDE_DIR . 'class.orm.php';
 require_once INCLUDE_DIR . 'class.util.php';
+require_once INCLUDE_DIR . 'class.organization.php';
 
 class UserEmailModel extends VerySimpleModel {
     static $meta = array(
@@ -37,6 +38,7 @@ class UserModel extends VerySimpleModel {
     static $meta = array(
         'table' => USER_TABLE,
         'pk' => array('id'),
+        'select_related' => array('default_email'),
         'joins' => array(
             'emails' => array(
                 'reverse' => 'UserEmailModel.user',
@@ -56,17 +58,15 @@ class UserModel extends VerySimpleModel {
                 'null' => true,
                 'constraint' => array('default_email_id' => 'UserEmailModel.id')
             ),
+            'cdata' => array(
+                'constraint' => array('id' => 'UserCdata.user_id'),
+                'null' => true,
+            ),
         )
     );
 
     const PRIMARY_ORG_CONTACT   = 0x0001;
 
-    static function objects() {
-        $qs = parent::objects();
-        #$qs->select_related('default_email');
-        return $qs;
-    }
-
     function getId() {
         return $this->id;
     }
diff --git a/include/class.usersession.php b/include/class.usersession.php
index 999d3adb4..1d0b8e0b1 100644
--- a/include/class.usersession.php
+++ b/include/class.usersession.php
@@ -162,9 +162,10 @@ class StaffSession extends Staff {
     var $token;
 
     static function lookup($var) {
-        $staff = parent::lookup($var);
-        $staff->token = &$_SESSION[':token']['staff'];
-        $staff->session= new UserSession($staff->getId());
+        if ($staff = parent::lookup($var)) {
+            $staff->token = &$_SESSION[':token']['staff'];
+            $staff->session= new UserSession($staff->getId());
+        }
         return $staff;
     }
 
diff --git a/scp/orgs.php b/scp/orgs.php
index 22cd2aeca..bb16dcce7 100644
--- a/scp/orgs.php
+++ b/scp/orgs.php
@@ -13,6 +13,7 @@
     vim: expandtab sw=4 ts=4 sts=4:
 **********************************************************************/
 require('staff.inc.php');
+require_once INCLUDE_DIR . 'class.organization.php';
 require_once INCLUDE_DIR . 'class.note.php';
 
 $org = null;
-- 
GitLab