a951ec34df0d39519560c0fe893b9d0ae81ad1bd
[acontent.git] / docs / include / classes / User.class.php
1 <?php
2 /************************************************************************/
3 /* AContent                                                             */
4 /************************************************************************/
5 /* Copyright (c) 2010                                                   */
6 /* Inclusive Design Institute                                           */
7 /*                                                                      */
8 /* This program is free software. You can redistribute it and/or        */
9 /* modify it under the terms of the GNU General Public License          */
10 /* as published by the Free Software Foundation.                        */
11 /************************************************************************/
12
13 /**
14  * User
15  * @access      public
16  * @author      Cindy Qi Li
17  * @package     User
18  */
19
20 if (!defined('TR_INCLUDE_PATH')) exit;
21
22 require_once(TR_INCLUDE_PATH. 'classes/DAO/UsersDAO.class.php');
23
24 class User {
25
26         // all private
27         var $userID;                               // set by setUserID
28         var $userDAO;                              // DAO for this user
29
30         /**
31          * Constructor
32          * doing nothing
33          * @access  public
34          * @param   None
35          * @author  Cindy Qi Li
36          */
37         function User($user_id)
38         {
39                 $this->userID = $user_id;
40
41                 $this->userDAO = new UsersDAO();
42         }
43
44         /**
45          * Based on this->userID, return (first name, last name), if first name, last name not exists, return login name
46          * @access  public
47          * @param   none
48          * @return  first name, last name. if not exists, return login name
49          * @author  Cindy Qi Li
50          */
51         public function getUserName()
52         {
53                 return $this->userDAO->getUserName($this->userID);
54         }
55
56         /**
57          * Return all info of this->userID 
58          * @access  public
59          * @param   none
60          * @return  table row
61          * @author  Cindy Qi Li
62          */
63         public function getInfo()
64         {
65                 return $this->userDAO->getUserByID($this->userID);
66         }
67
68         /**
69          * Check if user is an author 
70          * @access  public
71          * @param   $course_id: optional. 
72          *          if > 0, check whether the user is the author of the course with $course_id
73          *          else if = 0 or is not given, check whether the user has author privilege 
74          * @return  true : if is an author
75          *          false : if not an author
76          * @author  Cindy Qi Li
77          */
78         public function isAuthor($course_id = 0)
79         {
80                 if ($course_id == 0)
81                 {
82                         $row = $this->userDAO->getUserByID($this->userID);
83                         return $row['is_author'];
84                 }
85                 else
86                 {
87                         include_once(TR_INCLUDE_PATH.'classes/DAO/CoursesDAO.class.php');
88                         $coursesDAO = new CoursesDAO();
89                         $course_row = $coursesDAO->get($course_id);
90                         
91                         return ($course_row['user_id'] == $this->userID);
92                 }
93         }
94
95         /**
96          * Check if user is admin 
97          * @access  public
98          * @param   none
99          * @return  true : if is an admin
100          *          false : if not an admin
101          * @author  Cindy Qi Li
102          */
103         public function isAdmin()
104         {
105                 $row = $this->userDAO->getUserByID($this->userID);
106                 
107                 if ($row['user_group_id'] == TR_USER_GROUP_ADMIN)
108                         return true;
109                 else
110                         return false;
111         }
112
113         /**
114          * Update user's first, last name
115          * @access  public
116          * @param   $firstName : first name
117          *          $lastName : last name
118          * @return  true    if update successfully
119          *          false   if update unsuccessful
120          * @author  Cindy Qi Li
121          */
122         public function setName($firstName, $lastName)
123         {
124                 return $this->userDAO->setName($this->userID, $firstName, $lastName);
125         }
126
127         /**
128          * Update user's password
129          * @access  public
130          * @param   $password
131          * @return  true    if update successfully
132          *          false   if update unsuccessful
133          * @author  Cindy Qi Li
134          */
135         public function setPassword($password)
136         {
137                 return $this->userDAO->setPassword($this->userID, $password);
138         }
139
140         /**
141          * Update user's email
142          * @access  public
143          * @param   $email
144          * @return  true    if update successfully
145          *          false   if update unsuccessful
146          * @author  Cindy Qi Li
147          */
148         public function setEmail($email)
149         {
150                 return $this->userDAO->setEmail($this->userID, $email);
151         }
152 }
153 ?>