source: trunk/jpdd/class.dkg.person.php @ 1366

Last change on this file since 1366 was 1366, checked in by Daniel Kahn Gillmor, 7 years ago

adding explicit constructors

File size: 2.1 KB
Line 
1<?php  /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 2; -*-
2
3       */
4
5require_once('class.dkg.row.php');
6
7if (!class_exists('DKG_Person')) {
8
9  class DKG_Person extends DKG_Row {
10    function DKG_Person($args = array()) {
11      $this->DKG_Row($args);
12    }
13
14        function getTitle() {
15          global $dkg_site;
16          $x = '_'.$dkg_site->users['username'];
17          return $this->$x;
18        }
19
20        function getDescription() {
21          return '';
22        }
23
24        function getPrivileges() {
25          global $dkg_site;
26          return $dkg_site->getSeriesFromSQL('SELECT title, description FROM person_privilege JOIN privilege ON (privilege.id = person_privilege.privilege_id) WHERE person_id = '.$this->getID(), 'DKG_Row');
27        }
28   
29    function getLinkedEmail() {
30      global $dkg_site;
31      if (is_null($this->_email))
32        return '';
33      $errs = $dkg_site->isValid('email', $this->_email);
34      return (is_null($errs) ? "<a class=\"email\" href=\"mailto:".$this->_email."\">&lt;".$this->_email."&gt;</a>" : '<span class="error">'.$errs.': '.htmlentities($this->_email).'</span>');
35    }
36
37    function getPrintableEmail() { 
38      global $dkg_site;
39      $errs = $dkg_site->isValid('email', $this->_email);
40      return (is_null($errs) ? "<tt>&lt;".$this->_email."&gt;</tt>" : '<span class="error">'.$errs.': '.htmlentities($this->_email).'</span>');
41    }
42
43        function hasAnyOfThesePrivileges() {
44      $privs = func_get_args();
45      if (is_array($privs[0]))
46        $privs = $privs[0];
47          return (count(array_intersect(array_map(create_function('$x', 'return $x->getTitle();'), $this->getPrivileges()), $privs)) > 0);
48        }
49        function hasAllOfThesePrivileges() {
50      $privs = func_get_args();
51      if (is_array($privs[0]))
52        $privs = $privs[0];
53          return (count(array_intersect(array_map(create_function('$x', 'return $x->getTitle();'), $this->getPrivileges()), $privs)) == count($privs));
54        }
55
56    function canEdit($obj) {
57      if ($obj->canBeEditedBy($this))
58        return true;
59      $p = $obj->getEditPrivilege();
60      if (is_null($p)) 
61        return false;
62      else
63        return $this->hasAnyOfThesePrivileges($p);
64    }
65
66  }
67
68}
Note: See TracBrowser for help on using the repository browser.