Exemple #1
0
 public function add()
 {
     // Get URI vars
     $slugID = urldecode(utf8::trim(uri::segment(4)));
     // Do we have a slug ID?
     if ($slugID == '') {
         error::show404();
     }
     // Get user
     if (!($user = $this->users_model->getUser($slugID)) || !$user['active'] || !$user['verified']) {
         error::show404();
     }
     // Is this a self request
     if ($user['user_id'] == session::item('user_id')) {
         router::redirect($user['slug']);
     } elseif (!in_array($user['group_id'], session::permission('users_groups_browse', 'users')) || !in_array($user['type_id'], session::permission('users_types_browse', 'users'))) {
         view::noAccess();
     }
     // Does blocked user exist?
     if ($blocked = $this->users_blocked_model->getUser($user['user_id'], true)) {
         view::setError(__('user_duplicate', 'users_blocked'));
         router::redirect($user['slug']);
     }
     // Block user
     $this->users_blocked_model->addUser($user['user_id']);
     // Success
     view::setInfo(__('user_blocked', 'users_blocked'));
     //router::redirect($user['slug']);
     router::redirect('users/blocked');
 }
Exemple #2
0
 public function __construct()
 {
     parent::__construct();
     // Does user have permission to search users?
     if (!session::permission('users_search_access', 'users') && !session::permission('users_search_access_advanced', 'users')) {
         view::noAccess();
     } elseif (!session::permission('users_groups_browse', 'users') || !session::permission('users_types_browse', 'users')) {
         view::noAccess();
     }
 }
Exemple #3
0
 public function __construct()
 {
     parent::__construct();
     if (!config::item('feedback_active', 'feedback')) {
         error::show404();
     } elseif (!session::permission('feedback_access', 'feedback')) {
         view::noAccess();
     }
     loader::model('feedback/feedback');
 }
Exemple #4
0
 public function index()
 {
     if (session::permission('users_manage', 'users')) {
         loader::controller('cp/users');
         $this->users->browse();
     } else {
         view::noAccess(false);
         // Load view
         view::load('cp/home');
     }
 }
Exemple #5
0
 public function __construct()
 {
     parent::__construct();
     // Does user have permission to access this plugin?
     if (!session::permission('settings_manage', 'users')) {
         view::noAccess();
     }
     view::setCustomParam('section', 'users');
     view::setCustomParam('options', config::item('cp_top_nav', 'lists', 'users', 'items'));
     view::setTrail('cp/users', __('users', 'system_navigation'));
 }
Exemple #6
0
 public function __construct()
 {
     parent::__construct();
     if (!config::item('news_active', 'news')) {
         error::show404();
     } elseif (!session::permission('news_access', 'news')) {
         view::noAccess();
     } elseif (config::item('news_blog', 'news') && uri::segment(1) != 'blog') {
         router::redirect('blog/' . utf8::substr(uri::getURI(), 5));
     }
     loader::model('news/news');
 }
Exemple #7
0
 public function __construct()
 {
     parent::__construct();
     if (users_helper::isLoggedin()) {
         // Does user have permission to access this plugin?
         if (!session::permission('users_manage', 'users') && uri::getURI() != 'cp/users/login' && uri::getURI() != 'cp/users/login/license' && uri::getURI() != 'cp/users/logout') {
             view::noAccess();
         }
         view::setCustomParam('section', 'users');
         view::setCustomParam('options', config::item('cp_top_nav', 'lists', 'users', 'items'));
     }
     view::setTrail('cp/users', __('users', 'system_navigation'));
 }
Exemple #8
0
 public function __construct()
 {
     parent::__construct();
     // Does user have permission to access this plugin?
     if (!session::permission('counters_manage', 'utilities')) {
         view::noAccess();
     }
     view::setCustomParam('section', 'system');
     view::setCustomParam('options', config::item('cp_top_nav', 'lists', 'system', 'items', 'system/utilities', 'items'));
     loader::model('utilities/counters', array(), 'recalculate_model');
     view::setTrail('cp/system/config/system', __('system', 'system_navigation'));
     view::setTrail('cp/utilities/counters', __('utilities_counters', 'system_navigation'));
 }
Exemple #9
0
 public function __construct()
 {
     parent::__construct();
     // Does user have permission to access this plugin?
     if (!session::permission('newsletters_manage', 'newsletters')) {
         view::noAccess();
     }
     view::setCustomParam('section', 'content');
     view::setCustomParam('options', config::item('cp_top_nav', 'lists', 'content', 'items', 'content/newsletters', 'items'));
     view::setTrail('cp/system/plugins', __('content', 'system_navigation'));
     view::setTrail('cp/content/newsletters', __('newsletters', 'system_navigation'));
     loader::model('newsletters/newsletters', array(), 'newsletters_model');
 }
Exemple #10
0
 public function __construct()
 {
     parent::__construct();
     // Does user have permission to access this plugin?
     if (!session::permission('languages_manage', 'system')) {
         view::noAccess();
     }
     view::setCustomParam('section', 'system');
     view::setCustomParam('options', config::item('cp_top_nav', 'lists', 'system', 'items', 'system/languages', 'items'));
     loader::model('system/languages');
     view::setTrail('cp/system/config/system', __('system', 'system_navigation'));
     view::setTrail('cp/system/languages/', __('system_languages', 'system_navigation'));
 }
Exemple #11
0
 public function __construct()
 {
     parent::__construct();
     // Does user have permission to access this plugin?
     if (!session::permission('plans_manage', 'billing')) {
         view::noAccess();
     }
     view::setCustomParam('section', 'billing');
     view::setCustomParam('options', config::item('cp_top_nav', 'lists', 'billing', 'items'));
     loader::model('billing/plans');
     view::setTrail('cp/billing/transactions', __('billing', 'system_navigation'));
     view::setTrail('cp/billing/plans', __('billing_plans', 'system_navigation'));
 }
Exemple #12
0
 public function __construct()
 {
     parent::__construct();
     // Does user have permission to access this plugin?
     if (!session::permission('license_manage', 'system')) {
         view::noAccess();
     }
     view::setCustomParam('section', 'help');
     view::setCustomParam('options', array('help/license' => array('name' => __('help_license', 'system_navigation'), 'uri' => 'help/license', 'keyword' => 'help/license', 'attr' => array('help license'), 'items' => array())));
     loader::model('system/license');
     view::setTrail('cp/help/license', __('help', 'system_navigation'));
     view::setTrail('cp/help/license', __('help_license', 'system_navigation'));
     // Check if demo mode is enabled
     if (input::demo(1, 'cp/system/config/system')) {
         return false;
     }
 }
Exemple #13
0
 public function manage()
 {
     // Does user have permission to view visitors?
     if (!session::permission('users_visitors_browse', 'users')) {
         view::noAccess();
     }
     // Assign user from session to variable
     $user = session::section('session');
     // Get fields
     $fields = array();
     foreach (config::item('usertypes', 'core', 'keywords') as $categoryID => $keyword) {
         $fields[$categoryID] = $this->fields_model->getFields('users', $categoryID, 'view', 'in_list');
     }
     // Parameters
     $params = array('total' => session::permission('users_visitors_limit', 'users') && session::permission('users_visitors_limit', 'users') < $user['total_visitors'] ? session::permission('users_visitors_limit', 'users') : $user['total_visitors'], 'profiles' => true);
     // Process query string
     $qstring = $this->parseQuerystring($params['total']);
     // Get visitors
     $visitors = array();
     if ($params['total']) {
         $visitors = $this->users_visitors_model->getVisitors(session::item('user_id'), $qstring['order'], $qstring['limit'], $params);
     } else {
         view::setInfo(__('no_visitors', 'users_visitors'));
     }
     // Set pagination
     $config = array('base_url' => config::siteURL('users/visitors/manage?' . $qstring['url']), 'total_items' => $params['total'], 'items_per_page' => config::item('visitors_per_page', 'users'), 'current_page' => $qstring['page'], 'uri_segment' => 'page');
     $pagination = loader::library('pagination', $config, null);
     // Assign vars
     view::assign(array('user' => $user, 'visitors' => $visitors, 'fields' => $fields, 'pagination' => $pagination));
     // Dow we have new visitors?
     if (session::item('total_visitors_new')) {
         // Reset new visitors counter
         $this->users_visitors_model->resetCounter();
     }
     // Set title
     view::setTitle(__('my_visitors', 'system_navigation'));
     // Set trail
     view::setTrail(session::item('slug'), __('my_profile', 'system_navigation'));
     view::setTrail('users/visitors/manage', __('users_visitors', 'system_navigation'));
     // Load view
     view::load('users/visitors/manage');
 }
Exemple #14
0
 public function add()
 {
     // Is user loggedin ?
     if (!users_helper::isLoggedin()) {
         router::redirect('users/login');
     }
     // Get URI vars
     $slugID = urldecode(utf8::trim(uri::segment(4)));
     // Do we have a slug ID?
     if ($slugID == '') {
         error::show404();
     }
     // Get user
     if (!($user = $this->users_model->getUser($slugID)) || !$user['active'] || !$user['verified']) {
         error::show404();
     } elseif ($user['user_id'] == session::item('user_id')) {
         router::redirect($user['slug']);
     }
     // Does user have permission to view this user group/type?
     if (!in_array($user['group_id'], session::permission('users_groups_browse', 'users')) || !in_array($user['type_id'], session::permission('users_types_browse', 'users'))) {
         view::noAccess();
     }
     // Did we block this user or did they block us?
     if (config::item('blacklist_active', 'users') && ($blocked = $this->users_blocked_model->getUser($user['user_id']))) {
         if ($blocked['user_id'] == session::item('user_id')) {
             view::setError(__('user_blocked', 'users'));
         } else {
             view::setError(__('user_blocked_self', 'users'));
         }
         // Load view
         router::redirect($user['slug']);
     }
     // Does friend exist?
     if ($friend = $this->users_friends_model->getFriend($user['user_id'], false)) {
         // Is request already approved?
         if ($friend['active']) {
             view::setInfo(__('friend_active', 'users_friends'));
         } elseif ($friend['user_id'] == session::item('user_id')) {
             view::setError(__('friend_duplicate', 'users_friends'));
         } else {
             view::setError(__('friend_duplicate_self', 'users_friends'));
         }
         router::redirect($user['slug']);
     }
     // Add friend request
     $this->users_friends_model->addFriend($user['user_id']);
     // Send friend request email
     if (!isset($user['config']['notify_friends_request']) || $user['config']['notify_friends_request']) {
         // Create email replacement tags
         $tags = array();
         foreach (session::section('session') as $key => $value) {
             $tags['from.' . $key] = $value;
         }
         $tags = array_merge($tags, $user);
         $tags['friends_link'] = config::siteURL('users/friends/confirm/' . session::item('slug_id'));
         loader::library('email');
         $this->email->sendTemplate('users_friend_request', $user['email'], $tags, $user['language_id']);
     }
     // Success
     view::setInfo(__('friend_requested', 'users_friends'));
     router::redirect($user['slug']);
 }
Exemple #15
0
 public function delete()
 {
     // Is user logged in?
     if (!users_helper::isLoggedin()) {
         router::redirect('users/login');
     } elseif (!session::permission('albums_post', 'pictures')) {
         view::noAccess(session::item('slug'));
     }
     // Get URI vars
     $albumID = (int) uri::segment(4);
     // Get album
     if (!$albumID || !($album = $this->pictures_albums_model->getAlbum($albumID)) || $album['user_id'] != session::item('user_id')) {
         view::setError(__('no_album', 'pictures'));
         router::redirect('pictures/albums/manage');
     }
     // Delete album
     $this->pictures_albums_model->deleteAlbum($albumID, session::item('user_id'), $album);
     // Process query string
     $qstring = $this->parseQuerystring(config::item('user_albums_per_page', 'pictures'));
     // Success
     view::setInfo(__('album_deleted', 'pictures'));
     router::redirect('pictures/albums/manage?' . $qstring['url'] . 'page=' . $qstring['page']);
 }
Exemple #16
0
 public function delete()
 {
     // Is user logged in?
     if (!users_helper::isLoggedin()) {
         router::redirect('users/login');
     } elseif (!session::permission('ads_post', 'classifieds')) {
         view::noAccess(session::item('slug'));
     }
     // Get URI vars
     $adID = (int) uri::segment(3);
     // Get ad
     if (!$adID || !($ad = $this->classifieds_model->getAd($adID)) || $ad['user_id'] != session::item('user_id')) {
         view::setError(__('no_ad', 'classifieds'));
         router::redirect('classifieds/manage');
     }
     // Delete ad
     $this->classifieds_model->deleteAd($adID, session::item('user_id'), $ad);
     // Process query string
     $qstring = $this->parseQuerystring(config::item('user_ads_per_page', 'classifieds'));
     // Success
     view::setInfo(__('ad_deleted', 'classifieds'));
     router::redirect('classifieds/manage?' . $qstring['url'] . 'page=' . $qstring['page']);
 }
Exemple #17
0
 public function delete()
 {
     // Is user logged in?
     if (!users_helper::isLoggedin()) {
         router::redirect('users/login');
     } elseif (!session::permission('blogs_post', 'blogs')) {
         view::noAccess(session::item('slug'));
     }
     // Get URI vars
     $blogID = (int) uri::segment(3);
     // Get blog
     if (!$blogID || !($blog = $this->blogs_model->getBlog($blogID)) || $blog['user_id'] != session::item('user_id')) {
         view::setError(__('no_blog', 'blogs'));
         router::redirect('blogs/manage');
     }
     // Delete blog
     $this->blogs_model->deleteBlog($blogID, session::item('user_id'), $blog);
     // Process query string
     $qstring = $this->parseQuerystring(config::item('user_blogs_per_page', 'blogs'));
     // Success
     view::setInfo(__('blog_deleted', 'blogs'));
     router::redirect('blogs/manage?' . $qstring['url'] . 'page=' . $qstring['page']);
 }
Exemple #18
0
 public function delete()
 {
     // Is user loggedin ?
     if (!users_helper::isLoggedin()) {
         router::redirect('users/login');
     } elseif (!session::permission('pictures_post', 'classifieds')) {
         view::noAccess(session::item('slug'));
     }
     // Get URI vars
     $adID = (int) uri::segment(4);
     $pictureID = (int) uri::segment(5);
     // Get album
     if (!$adID || !($ad = $this->classifieds_model->getAd($adID, 'in_view')) || $ad['user_id'] != session::item('user_id')) {
         view::setError(__('no_ad', 'classifieds'));
         router::redirect('classifieds');
     }
     // Get picture
     if (!$pictureID || !($picture = $this->classifieds_pictures_model->getPicture($pictureID)) || $picture['ad_id'] != $adID) {
         view::setError(__('no_picture', 'classifieds'));
         router::redirect('classifieds/pictures/index/' . $adID . '/' . text_helper::slug($ad['data_title'], 100));
     }
     // Delete picture
     $this->classifieds_pictures_model->deletePicture($pictureID, $adID, session::item('user_id'), $picture, $ad);
     // Process query string
     $qstring = $this->parseQuerystring(config::item('pictures_per_page', 'classifieds'));
     // Success
     view::setInfo(__('picture_deleted', 'classifieds'));
     router::redirect('classifieds/pictures/index/' . $adID . '/' . text_helper::slug($ad['data_title'], 100) . '?' . $qstring['url'] . 'page=' . $qstring['page']);
 }
Exemple #19
0
 public function view()
 {
     // Get URI vars
     $slugID = urldecode(utf8::trim(uri::segment(2)));
     // Do we have a slug ID?
     if ($slugID == '') {
         error::show404();
     }
     // Is this our own account?
     if (strcasecmp($slugID, session::item('slug_id')) == 0) {
         $this->manage();
         return;
     }
     // Get user
     if (!($user = $this->users_model->getUser($slugID))) {
         error::show404();
     } elseif ($user['user_id'] != session::item('user_id') && (!$user['active'] || !$user['verified'] || $user['group_id'] == config::item('group_cancelled_id', 'users'))) {
         view::setError(__('user_not_active', 'users_signup'));
         router::redirect(users_helper::isLoggedin() ? users_helper::slug() : '');
     }
     // Does user have permission to view this user group/type?
     if (!in_array($user['group_id'], session::permission('users_groups_view', 'users')) || !in_array($user['type_id'], session::permission('users_types_view', 'users'))) {
         view::noAccess();
     }
     // Do we have cached user counters?
     if (!($counters = $this->counters_model->getCounters('user', session::item('user_id'), $user['user_id']))) {
         // Filter hook
         $counters = hook::filter('users/profile/view/counters', array(), $user);
         // Save counters for 24 hours
         $this->counters_model->saveCounters(false, 'user', session::item('user_id'), $user['user_id'], $counters, 60 * 24);
     }
     // Merge user and counters
     $user = array_merge($user, $counters);
     // Get fields
     $fields = $this->fields_model->getFields('users', $user['type_id'], 'view', 'in_view');
     // Delete empty sections
     $this->fields_model->deleteEmptySections($fields, $user);
     // Assign vars
     view::assign(array('slugID' => $slugID, 'user' => $user, 'fields' => $fields));
     // Set meta tags
     $this->metatags_model->set('users', 'users_view', array('user' => $user), '');
     // Set trail
     view::setTrail($user['slug'], $user['name']);
     // Did we block this user or did they block us?
     if (users_helper::isLoggedin() && config::item('blacklist_active', 'users') && ($blocked = $this->users_blocked_model->getUser($user['user_id']))) {
         if ($blocked['user_id'] == session::item('user_id')) {
             view::setError(__('user_blocked', 'users'));
         } else {
             view::setError(__('user_blocked_self', 'users'));
         }
         // Load view
         view::load('users/profile/preview');
         return;
     }
     // Set online/last visit status
     if (config::item('user_last_visit', 'users')) {
         if (!$user['invisible']) {
             if ($user['online']) {
                 view::setTrail(false, '<span class="users online">' . __('status_online', 'users') . '</span>', array('side' => true));
             } else {
                 view::setTrail(false, '<span class="users date">' . __('status_visit_date', 'users', array('%span' => utf8::strtolower(date_helper::humanSpan($user['visit_date'])))) . '</span>', array('side' => true));
             }
         }
     }
     // Validate profile privacy
     if (!$this->users_model->getPrivacyAccess($user['user_id'], isset($user['config']['privacy_profile']) ? $user['config']['privacy_profile'] : 1, false)) {
         view::setError(__('user_profile_limited', 'users'));
         // Load view
         view::load('users/profile/preview');
         return;
     }
     // Do we have views enabled?
     if (config::item('user_views', 'users') && $user['user_id'] != session::item('user_id')) {
         // Update views counter
         $this->users_model->updateViews($user['user_id']);
     }
     // Do we have visitors enabled?
     if (users_helper::isLoggedin() && config::item('visitors_active', 'users') && $user['user_id'] != session::item('user_id') && !session::permission('users_visitors_anon', 'users')) {
         // Load visitors model
         loader::model('users/visitors', array(), 'users_visitors_model');
         // Update views counter
         $this->users_visitors_model->addVisitor($user['user_id']);
     }
     // Load view
     view::load('users/profile/view');
 }
Exemple #20
0
 public function user()
 {
     // Get user and last action ID
     $slugID = urldecode(utf8::trim(uri::segment(3)));
     $lastID = (int) input::post_get('last_id', 0);
     // Get user
     if (!($user = $this->users_model->getUser($slugID)) || !$user['active'] || !$user['verified']) {
         error::show404();
     }
     // Does user have permission to view this user group/type?
     if (!in_array($user['group_id'], session::permission('users_groups_browse', 'users')) || !in_array($user['type_id'], session::permission('users_types_browse', 'users'))) {
         view::noAccess();
     } elseif (!$this->users_model->getPrivacyAccess($user['user_id'], isset($user['config']['privacy_profile']) ? $user['config']['privacy_profile'] : 1)) {
         view::noAccess($user['slug']);
     }
     // Get actions
     $actions = $this->timeline_model->getActions($user['user_id'], 1, $lastID, config::item('actions_per_page', 'timeline'));
     $ratings = array();
     // Do we have actions and are we logged in?
     if ($actions && users_helper::isLoggedin()) {
         foreach ($actions as $action) {
             if ($action['rating']) {
                 $ratings[$action['relative_resource']][] = $action['item_id'];
             } else {
                 $ratings['timeline'][] = $action['action_id'];
             }
         }
         // Load votes and like models
         loader::model('comments/votes');
         loader::model('comments/likes');
         // Get likes and votes
         $likes = $this->likes_model->getMultiLikes($ratings);
         $votes = $this->votes_model->getMultiVotes($ratings);
         $ratings = $likes + $votes;
     }
     // Can we post messages?
     $post = session::permission('messages_post', 'timeline') && $this->users_model->getPrivacyAccess($user['user_id'], isset($user['config']['privacy_timeline_messages']) ? $user['config']['privacy_timeline_messages'] : 1, false) ? true : false;
     // Update comments pagination
     config::set('comments_per_page', config::item('comments_per_page', 'timeline'), 'comments');
     // Set meta tags
     $this->metatags_model->set('timeline', 'timeline_user', array('user' => $user));
     // Set title
     view::setTitle(__('timeline_recent', 'system_navigation'), false);
     // Set trail
     view::setTrail($user['slug'], $user['name']);
     // Load view
     if (input::isAjaxRequest()) {
         $output = view::load('timeline/actions', array('actions' => $actions, 'user' => $user, 'post' => $post, 'ratings' => $ratings), true);
         view::ajaxResponse($output);
     } else {
         view::load('timeline/index', array('actions' => $actions, 'user' => $user, 'post' => $post, 'ratings' => $ratings));
     }
 }
Exemple #21
0
 public function view()
 {
     // Get URI vars
     $conversationID = (int) uri::segment(3);
     // Get conversation
     if (!$conversationID || !($conversation = $this->messages_model->getConversation($conversationID, session::item('user_id'))) || $conversation['deleted']) {
         view::setError(__('no_conversation', 'messages'));
         router::redirect('messages/manage');
     }
     if ($conversation['user_id'] != session::item('user_id') && !in_array($conversation['users'][$conversation['user_id']]['group_id'], session::permission('messages_view', 'messages'))) {
         view::noAccess();
     }
     // Mark conversation as read
     if ($conversation['new']) {
         $this->messages_model->markRead($conversationID, session::item('user_id'));
     }
     // Assign vars
     view::assign(array('conversationID' => $conversationID, 'conversation' => $conversation));
     // Process form values
     if (input::post('do_save_message')) {
         $this->_saveMessage($conversationID, $conversation);
     }
     // Set title
     view::setTitle($conversation['subject']);
     // Do we have more than 1 recipient?
     if ($conversation['total_recipients'] > 1) {
         // Assign actions
         view::setAction('messages/people/' . $conversationID, __('conversation_participants', 'messages'), array('class' => 'icon-text icon-messages-people'));
     }
     // Load view
     view::load('messages/view');
 }