1: <?php
2: /*****************************************************************************************
3: * X2Engine Open Source Edition is a customer relationship management program developed by
4: * X2Engine, Inc. Copyright (C) 2011-2016 X2Engine Inc.
5: *
6: * This program is free software; you can redistribute it and/or modify it under
7: * the terms of the GNU Affero General Public License version 3 as published by the
8: * Free Software Foundation with the addition of the following permission added
9: * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10: * IN WHICH THE COPYRIGHT IS OWNED BY X2ENGINE, X2ENGINE DISCLAIMS THE WARRANTY
11: * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12: *
13: * This program is distributed in the hope that it will be useful, but WITHOUT
14: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15: * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
16: * details.
17: *
18: * You should have received a copy of the GNU Affero General Public License along with
19: * this program; if not, see http://www.gnu.org/licenses or write to the Free
20: * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21: * 02110-1301 USA.
22: *
23: * You can contact X2Engine, Inc. P.O. Box 66752, Scotts Valley,
24: * California 95067, USA. or at email address [email protected].
25: *
26: * The interactive user interfaces in modified source and object code versions
27: * of this program must display Appropriate Legal Notices, as required under
28: * Section 5 of the GNU Affero General Public License version 3.
29: *
30: * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31: * these Appropriate Legal Notices must retain the display of the "Powered by
32: * X2Engine" logo. If the display of the logo is not reasonably feasible for
33: * technical reasons, the Appropriate Legal Notices must display the words
34: * "Powered by X2Engine".
35: *****************************************************************************************/
36:
37: /**
38: * User for console applications.
39: */
40:
41: class X2NonWebUser extends CApplicationComponent implements IWebUser {
42:
43: /**
44: * Returns a value that uniquely represents the identity.
45: * @return mixed a value that uniquely represents the identity (e.g. primary key value).
46: */
47: public function getId() {
48: return Yii::app()->getSuModel ()->id;
49: }
50:
51: /**
52: * Returns the display name for the identity (e.g. username).
53: * @return string the display name for the identity.
54: */
55: public function getName() {
56: return Yii::app()->getSuName ();
57: }
58:
59: /**
60: * Returns a value indicating whether the user is a guest (not authenticated).
61: * @return boolean whether the user is a guest (not authenticated)
62: */
63: public function getIsGuest(){
64: return Yii::app()->getSuName () !== 'Guest';
65: }
66:
67: /**
68: * Performs access check for this user.
69: * @param string $operation the name of the operation that need access check.
70: * @param array $params name-value pairs that would be passed to business rules associated
71: * with the tasks and roles assigned to the user.
72: * @return boolean whether the operations can be performed by this user.
73: */
74: public function checkAccess($operation,$params=array()) {
75: return Yii::app()->getAuthManager()->checkAccess($operation, $this->id, $params);
76: }
77:
78: public function loginRequired() {
79: Yii::app ()->end ();
80: }
81:
82: /**
83: * Retrieves roles for the user
84: */
85: private $_roles;
86: public function getRoles(){
87: if(!isset($this->_roles)){
88: $this->_roles = Roles::getUserRoles($this->getId());
89: }
90: return $this->_roles;
91: }
92:
93: }
94:
95: ?>
96: