1: <?php
2:
3: /**
4: * This file contains the group member collection and item class.
5: *
6: * @package Core
7: * @subpackage GenericDB_Model
8: * @author Dominik Ziegler
9: * @copyright four for business AG <www.4fb.de>
10: * @license http://www.contenido.org/license/LIZENZ.txt
11: * @link http://www.4fb.de
12: * @link http://www.contenido.org
13: */
14:
15: defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');
16:
17: /**
18: * Group member collection
19: *
20: * @package Core
21: * @subpackage GenericDB_Model
22: */
23: class cApiGroupMemberCollection extends ItemCollection {
24:
25: /**
26: * Constructor to create an instance of this class.
27: */
28: public function __construct() {
29: global $cfg;
30: parent::__construct($cfg['tab']['groupmembers'], 'idgroupuser');
31: $this->_setItemClass('cApiGroupMember');
32:
33: // set the join partners so that joins can be used via link() method
34: $this->_setJoinPartner('cApiGroupCollection');
35: $this->_setJoinPartner('cApiUserCollection');
36: }
37:
38: /**
39: * Creates a group member entry.
40: *
41: * @param string $userId
42: * @param string $groupId
43: * @return cApiGroupMember
44: */
45: public function create($userId, $groupId) {
46: $oItem = $this->createNewItem();
47:
48: $oItem->set('user_id', $userId);
49: $oItem->set('group_id', $groupId);
50:
51: $oItem->store();
52:
53: return $oItem;
54: }
55:
56: /**
57: * Deletes group member entries by user id.
58: *
59: * @param string $userId
60: * @return bool
61: */
62: public function deleteByUserId($userId) {
63: $result = $this->deleteBy('user_id', $userId);
64: return ($result > 0) ? true : false;
65: }
66:
67: /**
68: * Fetches entry from table by user id and group id
69: *
70: * @param string $userId
71: * @param string $groupId
72: * @return cApiGroupMember|NULL
73: */
74: public function fetchByUserIdAndGroupId($userId, $groupId) {
75: $where = "user_id = '" . $this->escape($userId) . "' AND group_id = '" . $this->escape($groupId) . "'";
76: if ($this->select($where)) {
77: return $this->next();
78: } else {
79: return NULL;
80: }
81: }
82:
83: }
84:
85: /**
86: * Group member item
87: *
88: * @package Core
89: * @subpackage GenericDB_Model
90: */
91: class cApiGroupMember extends Item {
92:
93: /**
94: * Constructor to create an instance of this class.
95: *
96: * @param mixed $mId [optional]
97: * Specifies the ID of item to load
98: */
99: public function __construct($mId = false) {
100: global $cfg;
101: parent::__construct($cfg['tab']['groupmembers'], 'idgroupuser');
102: $this->setFilters(array(), array());
103: if ($mId !== false) {
104: $this->loadByPrimaryKey($mId);
105: }
106: }
107:
108: }
109: