CMS  Version 3.9
share_token.inc
Go to the documentation of this file.
1 <?php
7 class ShareToken extends DataItem
8 {
9  var $table = "share_token";
10  var $primary_key = "share_id";
11 
12  var $fields = array("share_id" => Number,
13  "token" => String,
14  "item_type" => String,
15  "item_key" => Number,
16  "active" => Boolean,
17  "user_id" => Number,
18  "created_date" => DateTime,
19  "last_updated" => DateTime,
20  "last_updated_by_id" => Number
21  );
22 
23  var $relations = array( "User" => 'SiteUser',
24  "Accesses" => 'ShareAccess');
25 
26  function User() { return $this->getRelated('SiteUser'); }
27  function Accesses($constraint = "ORDER BY access_timestamp")
28  {
29  return $this->getRelatedList('ShareAccess', "", $constraint);
30  }
31 
32  function getTitle()
33  {
34  $handler = SharingManager::getShareHandler($this->item_type);
35  return $handler->getTitle($this->item_key);
36  }
37 
38  function countViews()
39  {
40  return Query::create('ShareAccess', "WHERE share_id=:s")
41  ->bind(":s", $this->share_id)
42  ->count();
43  }
44 
45  static function getShare($token)
46  {
47  if (!checkPlainGUID($token))
48  {
49  throw new FakoliException("Invalid Token");
50  }
51 
52  try
53  {
54  return Query::create(ShareToken, "WHERE token=:t")
55  ->bind(":t", $token)
56  ->executeSingle();
57  }
58  catch(DataNotFoundException $e)
59  {
60  throw new FakoliException("Token not found");
61  }
62  }
63 
64  static function forObject($obj)
65  {
66  $type = get_class($obj);
67  $key = $obj->getPrimaryKeyValue();
68 
69  $matches = Query::create(ShareToken, "WHERE item_type=:t AND item_key=:k")
70  ->bind(":t", $type, ":k", $key)
71  ->execute();
72 
73  return count($matches) > 0 ? $matches[0] : null;
74  }
75 }
76 
77 
78 class ShareAccess extends DataItem
79 {
80  var $table = "share_access";
81  var $primary_key = "access_id";
82 
83  var $fields = array("access_id" => 'Number',
84  "share_id" => 'Number',
85  "user_id" => 'Number',
86  "ip_address" => 'String',
87  "access_timestamp" => 'DateTime');
88 
89  var $relations = array( "ShareToken" => "ShareToken",
90  "User" => "SiteUser");
91 
92  function ShareToken()
93  {
94  return $this->getRelated('ShareToken');
95  }
96 
97  function User()
98  {
99  return $this->getRelated('SiteUser');
100  }
101 
102  function getFullName()
103  {
104  if (!$this->user_id) return "Anonymous";
105  return $this->User()->getFullName();
106  }
107 }?>
$constraint
$handler
Definition: event_form.inc:62
FakoliException is the base exception class for all Fakoli errors.
Definition: core.inc:53
static getShare($token)
Definition: share_token.inc:45
Accesses($constraint="ORDER BY access_timestamp")
Definition: share_token.inc:27
static forObject($obj)
Definition: share_token.inc:64
static getShareHandler($type)
$feedback user_id
Definition: save.inc:14