diff --git a/upload/ajax.php b/upload/ajax.php index 4c7d8dcaa..901096e2f 100644 --- a/upload/ajax.php +++ b/upload/ajax.php @@ -321,18 +321,10 @@ class ajax_common $this->ajax_die('invalid new_opt'); } - $user_can_change = array( - 'hide_porn_forums', - ); - foreach ($bf['user_opt'] as $opt_name => $opt_bit) { if (isset($new_opt[$opt_name])) { - if (!IS_ADMIN && !in_array($opt_name, $user_can_change)) - { - $this->ajax_die("not admin: $opt_name"); - } setbit($u_data['user_opt'], $opt_bit, !empty($new_opt[$opt_name])); } } diff --git a/upload/config.php b/upload/config.php index 687bea00a..446a65aab 100644 --- a/upload/config.php +++ b/upload/config.php @@ -57,7 +57,7 @@ $bb_cfg['css_ver'] = 1; // Increase number of revision after update $bb_cfg['tp_version'] = '2.0.2'; -$bb_cfg['tp_release_state'] = 'TP II r63'; +$bb_cfg['tp_release_state'] = 'TP II r65'; $bb_cfg['tp_release_date'] = '03-07-2011'; $bb_cfg['board_disabled_msg'] = 'форум временно отключен'; // 'forums temporarily disabled'; // show this msg if board has been disabled via ON/OFF trigger @@ -80,8 +80,6 @@ $bb_cfg['db_alias'] = array( // http://www.php.net/manual/en/mysql.constants.php#mysql.client-flags define('DBFLAGS', NULL); // Flags: MYSQL_CLIENT_COMPRESS - Compress MySQL define('DBMS', 'mysql'); -define('DBCOLLATION', ''); -define('PCONNECT', false); // Cache $bb_cfg['cache']['pconnect'] = false; diff --git a/upload/gallery.php b/upload/gallery.php index 5cc0cacc4..854d21e66 100644 --- a/upload/gallery.php +++ b/upload/gallery.php @@ -5,16 +5,16 @@ define('BB_SCRIPT', 'gallery'); define('BB_ROOT', './'); require(BB_ROOT ."common.php"); -if (!$bb_cfg['gallery_enabled']) -{ - message_die(GENERAL_MESSAGE, $lang['GALLERY_DISABLED']); -} - // Start session management $user->session_start(array('req_login' => true)); +if (!$bb_cfg['gallery_enabled']) bb_die($lang['GALLERY_DISABLED']); + require(LANG_DIR ."lang_gallery.php"); +if(bf($userdata['user_opt'], 'user_opt', 'allow_gallery')) +{ bb_die($lang['USE_GALLERY_OFF']); } + $go = isset($_GET['go']) ? $_GET['go'] : ''; $max_size = $bb_cfg['pic_max_size']; $dir = $bb_cfg['pic_dir']; diff --git a/upload/groupcp.php b/upload/groupcp.php index a7d185283..94279fa4f 100644 --- a/upload/groupcp.php +++ b/upload/groupcp.php @@ -19,22 +19,7 @@ function generate_user_info(&$row, $date_format, $group_mod, &$from, &$posts, &$ $joined = bb_date($row['user_regdate'], $date_format); $posts = ( $row['user_posts'] ) ? $row['user_posts'] : 0; - $poster_avatar = ''; - if ( @$row['user_avatar_type'] && $row['user_id'] != ANONYMOUS && $row['user_allowavatar'] ) - { - switch( $row['user_avatar_type'] ) - { - case USER_AVATAR_UPLOAD: - $poster_avatar = ( $bb_cfg['allow_avatar_upload'] ) ? '' : ''; - break; - case USER_AVATAR_REMOTE: - $poster_avatar = ( $bb_cfg['allow_avatar_remote'] ) ? '' : ''; - break; - case USER_AVATAR_GALLERY: - $poster_avatar = ( $bb_cfg['allow_avatar_local'] ) ? '' : ''; - break; - } - } + $poster_avatar = get_avatar($row['user_avatar'], $row['user_avatar_type'], !bf($row['user_opt'], 'user_opt', 'allow_avatar')); if ( bf($row['user_opt'], 'user_opt', 'viewemail') || $group_mod ) { diff --git a/upload/includes/functions.php b/upload/includes/functions.php index 54a4f9219..f60eb4754 100644 --- a/upload/includes/functions.php +++ b/upload/includes/functions.php @@ -564,17 +564,20 @@ $bf['forum_perm'] = array( ); $bf['user_opt'] = array( - 'viewemail' => 0, - 'allow_sig' => 1, - 'allowavatar' => 2, - 'allow_pm' => 3, - 'allow_viewonline' => 4, - 'notify' => 5, - 'notify_pm' => 6, - 'allow_passkey' => 7, - 'hide_porn_forums' => 8, - 'can_hide_ads' => 9, - 'hide_ads' => 10, + 'viewemail' => 0, // Показывать e-mail + 'allow_sig' => 1, // Запрет на подпись + 'allow_avatar' => 2, // Запрет на аватар + 'allow_pm' => 3, // Запрет на отправку ЛС + 'allow_viewonline' => 4, // Скрывать пребывание пользователя + 'notify' => 5, // Сообщать об ответах в отслеживаемых темах + 'notify_pm' => 6, // Сообщать о новых ЛС + 'allow_passkey' => 7, // Запрет на добавление passkey, он же запрет на скачивание торрентов + 'hide_porn_forums' => 8, // Скрывать pron форумы + 'allow_gallery' => 9, // Запрет на использование галереи + 'hide_ads' => 10, // Запрет на показ рекламы + 'allow_topic' => 11, // Запрет на создание новых тем + 'allow_post' => 12, // Запрет на отправку сообщений + 'allow_post_edit' => 13, // Запрет на редактирование сообщений ); function bit2dec ($bit_num) @@ -2905,13 +2908,13 @@ function create_magnet($infohash, $auth_key, $logged_in) return ''; } -function get_avatar ($avatar, $type, $allowavatar = true) +function get_avatar ($avatar, $type, $allow_avatar = true) { global $bb_cfg, $lang; $user_avatar = ''; - if ($allowavatar) + if ($allow_avatar) { switch($type) { diff --git a/upload/includes/page_header.php b/upload/includes/page_header.php index 688c2342a..98e0fced0 100644 --- a/upload/includes/page_header.php +++ b/upload/includes/page_header.php @@ -206,7 +206,7 @@ $template->assign_vars(array( 'LOGGED_IN' => $logged_in, 'SESSION_USER_ID' => $userdata['user_id'], 'THIS_USERNAME' => $userdata['username'], - 'THIS_AVATAR' => get_avatar($userdata['user_avatar'], $userdata['user_avatar_type'], !bf($userdata['user_opt'], 'user_opt', 'allowavatar')), + 'THIS_AVATAR' => get_avatar($userdata['user_avatar'], $userdata['user_avatar_type'], !bf($userdata['user_opt'], 'user_opt', 'allowa_vatar')), 'SHOW_LOGIN_LINK' => !defined('IN_LOGIN'), 'AUTOLOGIN_DISABLED' => !$bb_cfg['allow_autologin'], 'S_LOGIN_ACTION' => BB_ROOT ."login.php", diff --git a/upload/includes/sessions.php b/upload/includes/sessions.php index 78b4a0522..048474b23 100644 --- a/upload/includes/sessions.php +++ b/upload/includes/sessions.php @@ -818,14 +818,6 @@ class user_common } } - /** - * Check if user can hide ads - */ - function hide_ads () - { - return (bf($this->opt, 'user_opt', 'can_hide_ads') && bf($this->opt, 'user_opt', 'hide_ads')); - } - /** * Enqueue ads */ @@ -833,7 +825,7 @@ class user_common { global $datastore, $bb_cfg; - if ($bb_cfg['show_ads'] && !$this->hide_ads() && !defined('IN_ADMIN') && !defined('IN_AJAX')) + if ($bb_cfg['show_ads'] && !bf($this->opt, 'user_opt', 'hide_ads') && !defined('IN_ADMIN') && !defined('IN_AJAX')) { $datastore->enqueue('ads'); $this->show_ads = true; diff --git a/upload/includes/ucp/usercp_register.php b/upload/includes/ucp/usercp_register.php index fc6d3b5e4..b076131c5 100644 --- a/upload/includes/ucp/usercp_register.php +++ b/upload/includes/ucp/usercp_register.php @@ -132,7 +132,7 @@ switch ($mode) include(INC_DIR . 'ucp/usercp_avatar.php'); - if ( !bf($pr_data['user_opt'], 'user_opt', 'allowavatar') && ( $bb_cfg['allow_avatar_upload'] || $bb_cfg['allow_avatar_local'] || $bb_cfg['allow_avatar_remote'] ) ) + if ( !bf($pr_data['user_opt'], 'user_opt', 'allow_avatar') && ( $bb_cfg['allow_avatar_upload'] || $bb_cfg['allow_avatar_local'] || $bb_cfg['allow_avatar_remote'] ) ) { $template->assign_block_vars('switch_avatar_block', array() ); @@ -619,8 +619,8 @@ foreach ($profile_fields as $field => $can_edit) } $tp_data['USER_AVATAR'] = get_avatar($user_avatar, $user_avatar_type) . $hidden_vars; } else - { $tp_data['USER_AVATAR'] = get_avatar($pr_data['user_avatar'], $pr_data['user_avatar_type'], !bf($pr_data['user_opt'], 'user_opt', 'allowavatar')); } - if ($submit && !bf($pr_data['user_opt'], 'user_opt', 'allowavatar')) + { $tp_data['USER_AVATAR'] = get_avatar($pr_data['user_avatar'], $pr_data['user_avatar_type'], !bf($pr_data['user_opt'], 'user_opt', 'allow_avatar')); } + if ($submit && !bf($pr_data['user_opt'], 'user_opt', 'allow_avatar')) { if ( $user_avatar != $pr_data['user_avatar'] || $user_avatar_type != $pr_data['user_avatar_type']) { diff --git a/upload/includes/ucp/usercp_viewprofile.php b/upload/includes/ucp/usercp_viewprofile.php index 1171e2541..51c97c167 100644 --- a/upload/includes/ucp/usercp_viewprofile.php +++ b/upload/includes/ucp/usercp_viewprofile.php @@ -45,7 +45,7 @@ else { $percentage = 0; } -$avatar_img = get_avatar($profiledata['user_avatar'], $profiledata['user_avatar_type'], !bf($profiledata['user_opt'], 'user_opt', 'allowavatar')); +$avatar_img = get_avatar($profiledata['user_avatar'], $profiledata['user_avatar_type'], !bf($profiledata['user_opt'], 'user_opt', 'allow_avatar')); if (!$ranks = $datastore->get('ranks')) { @@ -74,7 +74,6 @@ $temp_url = append_sid("privmsg.php?mode=post&" . POST_USERS_URL . "=" . $pr $pm_img = '' . $lang['SEND_PRIVATE_MESSAGE'] . ''; $location = ($profiledata['user_from']) ? $profiledata['user_from'] : ''; -$location .= ($profiledata['user_from_flag'] && $profiledata['user_from_flag'] != 'blank.gif') ? ' '. make_user_flag($profiledata['user_from_flag']) : ''; $pm = '' . $lang['SEND_PRIVATE_MESSAGE'] . ''; @@ -239,10 +238,13 @@ if (IS_ADMIN) )); $ajax_user_opt = bb_json_encode(array( - 'allowavatar' => bf($profiledata['user_opt'], 'user_opt', 'allowavatar'), + 'allow_avatar' => bf($profiledata['user_opt'], 'user_opt', 'allow_avatar'), + 'allow_sig' => bf($profiledata['user_opt'], 'user_opt', 'allow_sig'), 'allow_passkey' => bf($profiledata['user_opt'], 'user_opt', 'allow_passkey'), 'allow_pm' => bf($profiledata['user_opt'], 'user_opt', 'allow_pm'), - 'allow_sig' => bf($profiledata['user_opt'], 'user_opt', 'allow_sig'), + 'allow_post' => bf($profiledata['user_opt'], 'user_opt', 'allow_post'), + 'allow_post_edit' => bf($profiledata['user_opt'], 'user_opt', 'allow_post_edit'), + 'allow_topic' => bf($profiledata['user_opt'], 'user_opt', 'allow_topic'), )); $template->assign_vars(array( diff --git a/upload/language/lang_english/lang_gallery.php b/upload/language/lang_english/lang_gallery.php index 48d18ee62..02eb3ef78 100644 --- a/upload/language/lang_english/lang_gallery.php +++ b/upload/language/lang_english/lang_gallery.php @@ -5,6 +5,7 @@ Russian language for TorrentPier SVN */ +$lang['USE_GALLERY_OFF'] = 'You can not upload images'; $lang['GALLERY_YOUR_IMAGE'] = 'Your image'; $lang['GALLERY_FAILURE'] = 'Failure'; $lang['GALLERY_LINK_URL'] = 'Link to image'; diff --git a/upload/language/lang_russian/lang_gallery.php b/upload/language/lang_russian/lang_gallery.php index d050f54f8..8b227c041 100644 --- a/upload/language/lang_russian/lang_gallery.php +++ b/upload/language/lang_russian/lang_gallery.php @@ -5,6 +5,7 @@ Russian language for TorrentPier SVN */ +$lang['USE_GALLERY_OFF'] = 'Вы не можете загружать изображения'; $lang['GALLERY_YOUR_IMAGE'] = 'Ваше изображение'; $lang['GALLERY_FAILURE'] = 'Неудача'; $lang['GALLERY_LINK_URL'] = 'Ссылка на изображение'; diff --git a/upload/memberlist.php b/upload/memberlist.php index cbb4687c0..eae690d3d 100644 --- a/upload/memberlist.php +++ b/upload/memberlist.php @@ -152,7 +152,7 @@ $template->assign_vars(array( )); // per-letter selection end -$sql = "SELECT username, user_id, user_opt, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_avatar, user_avatar_type, user_allowavatar +$sql = "SELECT username, user_id, user_opt, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_avatar, user_avatar_type FROM ". BB_USERS ." WHERE user_id NOT IN(". EXCLUDED_USERS_CSV .")"; if ( $username ) @@ -176,23 +176,8 @@ if ( $row = DB()->sql_fetchrow($result) ) $joined = bb_date($row['user_regdate'], $lang['DATE_FORMAT']); $posts = $row['user_posts']; - $poster_avatar = false; - if ($row['user_avatar_type'] && $user_id != ANONYMOUS && $row['user_allowavatar']) - { - switch ($row['user_avatar_type']) - { - case USER_AVATAR_UPLOAD: - $poster_avatar = ($bb_cfg['allow_avatar_upload']) ? '' : false; - break; - case USER_AVATAR_REMOTE: - $poster_avatar = ($bb_cfg['allow_avatar_remote']) ? '' : false; - break; - case USER_AVATAR_GALLERY: - $poster_avatar = ($bb_cfg['allow_avatar_local']) ? '' : false; - break; - } - } + $poster_avatar = get_avatar($row['user_avatar'], $row['user_avatar_type'], !bf($row['user_opt'], 'user_opt', 'allow_avatar')); $pm = ''. $lang['SEND_PM_TXTB'] .''; $email = ($bb_cfg['board_email_form']) ? ''. $lang['SEND_EMAIL_TXTB'] .'' : false; diff --git a/upload/posting.php b/upload/posting.php index 077968e43..356d9c843 100644 --- a/upload/posting.php +++ b/upload/posting.php @@ -64,6 +64,10 @@ $is_auth = array(); switch ($mode) { case 'newtopic': + if(bf($userdata['user_opt'], 'user_opt', 'allow_topic')) + { + bb_die($lang['RULES_POST_CANNOT']); + } if ($topic_type == POST_ANNOUNCE) { $is_auth_type = 'auth_announce'; @@ -79,9 +83,17 @@ switch ($mode) break; case 'reply': case 'quote': + if(bf($userdata['user_opt'], 'user_opt', 'allow_post')) + { + bb_die($lang['RULES_REPLY_CANNOT']); + } $is_auth_type = 'auth_reply'; break; case 'editpost': + if(bf($userdata['user_opt'], 'user_opt', 'allow_post_edit')) + { + bb_die($lang['RULES_EDIT_CANNOT']); + } $is_auth_type = 'auth_edit'; break; case 'delete': @@ -299,7 +311,8 @@ if ($submit || $refresh) } else { - if (!IS_GUEST && $mode != 'newtopic' && bf($userdata['user_opt'], 'user_opt', 'notify')) + $notify_user = bf($userdata['user_opt'], 'user_opt', 'notify'); + if (!IS_GUEST && $mode != 'newtopic' && !$notify_user) { $notify_user = (int) DB()->fetch_row(" SELECT topic_id @@ -308,10 +321,6 @@ else AND user_id = ". $userdata['user_id'] ." "); } - else - { - $notify_user = $userdata['user_notify']; - } } $update_post_time = !empty($_POST['update_post_time']); diff --git a/upload/templates/default/usercp_viewprofile.tpl b/upload/templates/default/usercp_viewprofile.tpl index 1b2f646e7..4d6ffbc15 100644 --- a/upload/templates/default/usercp_viewprofile.tpl +++ b/upload/templates/default/usercp_viewprofile.tpl @@ -143,10 +143,13 @@ $(document).ready(function(){ Юзеру ЗАПРЕЩЕНО
- - - + + + + + +