/**
  * Test get()
  */
 public function testGet()
 {
     $admin = KunenaFactory::getUser('admin');
     $categoryuser = KunenaForumCategoryUserHelper::get(0, $admin->userid);
     $this->assertEquals(0, $categoryuser->category_id);
     $this->assertEquals($admin->userid, $categoryuser->user_id);
 }
Esempio n. 2
0
 public function isNew($user = null)
 {
     $user = KunenaUserHelper::get($user);
     if (!KunenaFactory::getConfig()->shownew || !$user->exists()) {
         return false;
     }
     $session = KunenaFactory::getSession();
     if ($this->time < $session->lasttime) {
         return false;
     }
     $allreadtime = KunenaForumCategoryUserHelper::get($this->getCategory(), $user)->allreadtime;
     if ($allreadtime && $this->time < JFactory::getDate($allreadtime)->toUnix()) {
         return false;
     }
     $read = KunenaForumTopicUserReadHelper::get($this->getTopic(), $user);
     if ($this->id == $read->message_id || $this->time < $read->time) {
         return false;
     }
     return true;
 }
Esempio n. 3
0
 /**
  * @param null|int $id
  * @param mixed $user
  * @param bool $reload
  *
  * @return KunenaForumCategoryUser
  */
 public static function getInstance($id = null, $user = null, $reload = false)
 {
     return KunenaForumCategoryUserHelper::get($id, $user, $reload);
 }
Esempio n. 4
0
 /**
  * @param mixed $user
  *
  * @return bool
  */
 public function hasNew($user = null)
 {
     $user = KunenaUserHelper::get($user);
     if (!KunenaFactory::getConfig()->shownew || !$user->exists()) {
         return false;
     }
     $session = KunenaFactory::getSession();
     if ($this->last_post_time <= $session->getAllReadTime()) {
         return false;
     }
     $userinfo = KunenaForumCategoryUserHelper::get($this->getCategory(), $user);
     if ($userinfo->allreadtime && $this->last_post_time <= $userinfo->allreadtime) {
         return false;
     }
     $read = KunenaForumTopicUserReadHelper::get($this, $user);
     if ($this->last_post_time <= $read->time) {
         return false;
     }
     return true;
 }
Esempio n. 5
0
 /**
  * Get if the user has subscribed on this category.
  *
  * @param mixed $userid
  *
  * @return bool
  *
  * @since	2.0.0
  */
 public function getSubscribed($userid = null)
 {
     if (!$this->exists()) {
         return false;
     }
     if (!$userid) {
         return false;
     }
     $usercategory = KunenaForumCategoryUserHelper::get($this->id, $userid);
     return (bool) $usercategory->subscribed;
 }
Esempio n. 6
0
 /**
  * Method to save the KunenaSession object to the database
  *
  * @access	public
  * @param   boolean $updateOnly Save the object only if not a new session
  * @return	boolean True on success
  * @since 1.5
  */
 public function save($updateOnly = false)
 {
     // Do not save session for anonymous users
     if (!$this->userid) {
         return false;
     }
     // Create the user table object
     $table = $this->getTable();
     $table->bind($this->getProperties());
     $table->exists($this->_exists);
     // Check and store the object.
     if (!$table->check()) {
         $this->setError($table->getError());
         return false;
     }
     //are we creating a new user
     $isnew = !$this->_exists;
     // If we aren't allowed to create new users return
     if ($isnew && $updateOnly) {
         return true;
     }
     //Store the user data in the database
     if (!($result = $table->store())) {
         $this->setError($table->getError());
     }
     // Set the id for the JUser object in case we created a new user.
     if (empty($this->userid)) {
         $this->userid = $table->get('userid');
     }
     // Read indication has moved outside of the session table -- let's update it too.
     $userCategory = KunenaForumCategoryUserHelper::get(0, $this->userid);
     if ($userCategory->allreadtime != $this->allreadtime) {
         $userCategory->allreadtime = $this->allreadtime;
         $userCategory->save();
     }
     return $result;
 }
Esempio n. 7
0
 /**
  * Assign user as moderator or resign him.
  *
  * @param KunenaForumCategory $category
  * @param mixed $user
  * @param bool $status
  *
  * @return bool
  *
  * @example if ($category->authorise('admin')) $category->setModerator($user, true);
  */
 public function setModerator($category, $user = null, $status = true)
 {
     // Check if category exists
     if ($category && !$category->exists()) {
         return false;
     }
     $category_id = $category ? $category->id : 0;
     $status = intval($status);
     // Check if user exists
     $user = KunenaUserHelper::get($user);
     if (!$user->exists()) {
         return false;
     }
     $success = true;
     $usercategory = KunenaForumCategoryUserHelper::get($category_id, $user);
     if ($usercategory->role == 0 && $status || $usercategory->role == 1 && !$status) {
         $usercategory->role = $status;
         $success = $usercategory->save();
         // Clear role cache
         $this->clearCache();
         // Change user moderator status
         $moderator = $this->getModeratorStatus($user);
         if ($user->moderator != !empty($moderator)) {
             $user->moderator = intval(!empty($moderator));
             $success = $user->save();
         }
     }
     return $success;
 }
Esempio n. 8
0
	/**
	 * Returns object containing user information from this category.
	 *
	 * @param mixed $user
	 * @return KunenaForumCategoryUser
	 */
	public function getUserInfo($user = null) {
		return KunenaForumCategoryUserHelper::get($this->id, $user);
	}