Some more work in progress on attachments.
[timetracker.git] / WEB-INF / lib / ttFileHelper.class.php
index 22f2d0a..441b8f4 100644 (file)
@@ -50,7 +50,7 @@ class ttFileHelper {
   }
 
   // checkSiteRegistration - obtains site id and key from local database.
-  // If not found, it tries to register with file stroage facility.
+  // If not found, it tries to register with file storage facility.
   function checkSiteRegistration() {
 
     global $i18n;
@@ -84,22 +84,22 @@ class ttFileHelper {
       // Close connection.
       curl_close($ch);
 
-      if ($result) {
-        $result_array = json_decode($result, true);
-        if ($result_array && $result_array['id'] && $result_array['key']) {
+      $result_array = json_decode($result, true);
+      if ($result_array && $result_array['id'] && $result_array['key']) {
 
-          $this->site_id = $mdb2->quote($result_array['id']);
-          $this->site_key = $mdb2->quote($result_array['key']);
+        $this->site_id = $result_array['id'];
+        $this->site_key = $result_array['key'];
 
-          // Registration successful. Store id and key locally for future use.
-          $sql = "insert into tt_site_config values('locker_id', $site_id, now(), null)";
-          $mdb2->exec($sql);
-          $sql = "insert into tt_site_config values('locker_key', $key, now(), null)";
-          $mdb2->exec($sql);
-        }
+        // Registration successful. Store id and key locally for future use.
+        $sql = "insert into tt_site_config values('locker_id', $this->site_id, now(), null)";
+        $mdb2->exec($sql);
+        $sql = "insert into tt_site_config values('locker_key', ".$mdb2->quote($this->site_key).", now(), null)";
+        $mdb2->exec($sql);
+      } else {
+        $this->errors->add($i18n->get('error.file_storage'));
       }
     } else {
-      // Site id found, need to update site attributes.
+      // Site id found.
       $this->site_id = $val['id'];
 
       // Obtain site key.
@@ -112,8 +112,6 @@ class ttFileHelper {
 
   // putFile - puts uploaded file in remote storage.
   function putFile($fields) {
-    // if (!$this->site_id || !$this->site_key) return false;
-
     global $i18n;
     global $user;
     $mdb2 = getConnection();
@@ -124,11 +122,11 @@ class ttFileHelper {
     $fields = array('site_id' => urlencode($this->site_id),
       'site_key' => urlencode($this->site_key),
       'org_id' => urlencode($org_id),
-      //'org_key' => urlencode($this->org_key),     // TODO: obtain this properly.
+      'org_key' => urlencode($this->getOrgKey()),
       'group_id' => urlencode($group_id),
-      //'group_key' => urlencode($this->group_key), // TODO: obtain this properly.
-      //'user_id' => urlencode($this->user_id),     // TODO: obtain this properly.
-      //'user_key' => urlencode($this->user_key),   // TODO: obtain this properly.
+      'group_key' => urlencode($this->getGroupKey()),
+      'user_id' => urlencode($fields['user_id']),   // May be null.
+      'user_key' => urlencode($fields['user_key']), // May be null.
       'file_name' => urlencode($fields['file_name']),
       'description' => urlencode($fields['description']),
       // TODO: add file content here, too. Will this work for large files?
@@ -187,4 +185,30 @@ class ttFileHelper {
     $affected = $mdb2->exec($sql);
     return (!is_a($affected, 'PEAR_Error'));
   }
+
+  // getOrgKey obtains organization key from the database.
+  private function getOrgKey() {
+    global $user;
+    $mdb2 = getConnection();
+
+    $org_id = $user->org_id;
+    $sql = "select group_key from tt_groups where id = $org_id and status = 1";
+    $res = $mdb2->query($sql);
+    $val = $res->fetchRow();
+    return $val['group_key'];
+  }
+
+  // getGrtoupKey obtains group key from the database.
+  private function getGroupKey() {
+    global $user;
+    $mdb2 = getConnection();
+
+    $group_id = $user->getGroup();
+    $org_id = $user->org_id;
+
+    $sql = "select group_key from tt_groups where id = $group_id and org_id = $org_id and status = 1";
+    $res = $mdb2->query($sql);
+    $val = $res->fetchRow();
+    return $val['group_key'];
+  }
 }