Skip to content

Commit db8eea5

Browse files
committed
User: Display the reason of a ban
Also: - General update of service rules - General update of FAQ page - Minor style fixes
1 parent 55a85b9 commit db8eea5

10 files changed

+121
-16
lines changed

3wifi.sql

+1
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ CREATE TABLE `users` (
168168
`rapikey` CHAR(32) NULL DEFAULT NULL,
169169
`wapikey` CHAR(32) NULL DEFAULT NULL,
170170
`querytime` TIMESTAMP NULL DEFAULT NULL,
171+
`ban_reason` VARCHAR(16) NULL DEFAULT NULL,
171172
PRIMARY KEY (`uid`),
172173
UNIQUE INDEX `login` (`login`),
173174
UNIQUE INDEX `nick` (`nick`)

faq.html

+17-4
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ <h2 align=center>F.A.Q</h2>
2626
В базу заносится множество полей, например IP-адрес, DNS серверы, тип шифрования, и другие параметры. Запустите последнюю версию Router Scan и сделайте экспорт в файл TXT или CSV, приведите Ваши данные в соответствующий формат. Затем откройте изменённый файл в Router Scan, проверьте корректность полей, и загрузите данные через загрузчик 3WiFi. Также Вы можете использовать Excel, но делайте это крайне осторожно, т.к. он любит удалять некоторые данные, например в полях PIN часто удаляет лидирующие нули, а длинные цифры преобразует к экспоненциальному виду 3,8+E8.
2727
</p>
2828

29-
<p class=fQuestion id=mappwd>На карте не отображаются пароли!</p>
29+
<p class=fQuestion id=mappwd>Я вижу карту и точки, но у них не отображаются пароли!</p>
3030

3131
<p class=fAnswer>
3232
Необходимо авторизоваться на сайте - кнопка Вход в правом верхнем углу.
@@ -41,13 +41,14 @@ <h2 align=center>F.A.Q</h2>
4141
<p class=fQuestion id=reg>Как зарегистрироваться? Как получить код приглашения?</p>
4242

4343
<p class=fAnswer>
44-
Код приглашения можно приобрести, написав в форму обратной связи, или в Telegram чат Router Scan (см. главную страницу). Вы также можете обойтись без кода приглашения - для этого необходимо вступить в сообщество Router Scan, тогда вы сможете воспользоваться гостевой учётной записью.
44+
<p>Код приглашения можно приобрести, написав в форму обратной связи, или в Telegram чат Router Scan (см. главную страницу). После регистрации по коду приглашения ваш аккаунт получает <a href="#levels">уровень доступа</a> &quot;Пользователь&quot;, смотрите список уровней доступа ниже.</p>
45+
<p>Вы также можете обойтись без кода приглашения, для этого необходимо вступить в сообщество Router Scan — тогда вы сможете воспользоваться гостевой учётной записью, если она не заблокирована.</p>
4546
</p>
4647

4748
<p class=fQuestion id=expire>Как долго я смогу пользоваться своим личным аккаунтом?</p>
4849

4950
<p class=fAnswer>
50-
Аккаунты на 3WiFi не имеют определённого срока действия.
51+
Аккаунты на 3WiFi не имеют определённого срока действия, сможете пользоваться им сколько угодно, до тех пор, пока не нарушаете <a href="rules">правила использования</a> сайта.
5152
</p>
5253

5354
<p class=fQuestion id=coords>Как определяются координаты точек на карте?</p>
@@ -65,7 +66,7 @@ <h2 align=center>F.A.Q</h2>
6566
<p class=fQuestion id=download>Как скачать базу себе?</p>
6667

6768
<p class=fAnswer>
68-
Никак! Попытки слить базу приведут к бану Вашего аккаунта и бану всех приглашенных Вами и далее по цепочке. Никакие заслуги не снимут бан.
69+
Никак! Попытки слить базу приведут к нарушению <a href="rules">правил использования</a> сайта, бану Вашего аккаунта, и бану всех приглашенных Вами и далее по цепочке. Никакие заслуги не снимут бан.
6970
</p>
7071

7172
<p class=fQuestion id=help>Как помочь проекту?</p>
@@ -129,5 +130,17 @@ <h2 align=center>F.A.Q</h2>
129130
Может выдать бесконечное число приглашений.<br>
130131
Имеет доступ к административным функциям.<br>
131132
</p>
133+
134+
<p class=fQuestion id=developer>Как стать разработчиком 3WiFi и получить соответствующий уровень доступа?</p>
135+
136+
<p class=fAnswer>
137+
Данный уровень доступа назначается только тем участникам сообщества, которые длительное время участвовали в разработке сервиса 3WiFi, и своими достижениями заслужили доверие и уважение в сообществе.
138+
</p>
139+
140+
<p class=fQuestion id=wannabe>Как стать администратором 3WiFi?</p>
141+
142+
<p class=fAnswer>
143+
Развернуть из исходников локальную копию сервиса 3WiFi у себя на ПК или сервере, ссылка на репозиторий GitHub есть на главной странице. Стандартные данные входа для администратора - <b>admin</b> / <b>admin</b>.
144+
</p>
132145
</td></tr></table>
133146
</body>

index.html

+27-5
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,24 @@
6565
return '%l10n_err_unknown%';
6666
}
6767
}
68-
function loginErrorStr(error)
68+
function banReasonStr(error)
6969
{
7070
switch (error)
7171
{
72-
case 'lowlevel':
73-
return '%l10n_err_banned%';
72+
case 'guest':
73+
return '%l10n_ban_guest%';
74+
case 'parsing':
75+
return '%l10n_ban_parsing%';
76+
case 'commerce':
77+
return '%l10n_ban_commerce%';
78+
case 'public':
79+
return '%l10n_ban_public%';
80+
case 'inherit':
81+
return '%l10n_ban_inherit%';
82+
case 'weak':
83+
return '%l10n_ban_weak%';
7484
default:
75-
return errorStr(error);
85+
return '%l10n_err_unknown%';
7686
}
7787
}
7888
function encodeHTML(str, spaces)
@@ -185,7 +195,19 @@
185195
else
186196
{
187197
var errstr = (typeof json.error == 'string' ? json.error : '');
188-
$('#loginstat').html('<img src="img/no.png" style="position: relative; top: 3px"> ' + loginErrorStr(errstr));
198+
var err = '';
199+
if (errstr == 'lowlevel')
200+
{
201+
err = '%l10n_err_banned%';
202+
if (json.inherited)
203+
err += banReasonStr('inherit');
204+
err += banReasonStr(json.reason);
205+
}
206+
else
207+
{
208+
err = errorStr(errstr);
209+
}
210+
$('#loginstat').html('<img src="img/no.png" style="position: relative; top: 3px"> ' + err);
189211
$('#frm_login :input').prop('disabled', false);
190212
}
191213
});

l10n/en-US.php

+29-1
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,21 @@
6969
$l10n['err_wait'] =
7070
'Time limitation encountered, please try again';
7171
$l10n['err_banned'] =
72-
'Account is disabled';
72+
'Account is disabled. Reason: ';
7373
$l10n['err_unknown'] =
7474
'Unknown error';
75+
$l10n['ban_guest'] =
76+
'Guest account is <a href="https://forum.antichat.ru/posts/4370935" target="_blank">temporarily disabled</a>';
77+
$l10n['ban_parsing'] =
78+
'Mass download / parsing attempt / high load';
79+
$l10n['ban_commerce'] =
80+
'Commercial use';
81+
$l10n['ban_public'] =
82+
'Creation of public account';
83+
$l10n['ban_inherit'] =
84+
'The user who invited you was banned — ';
85+
$l10n['ban_weak'] =
86+
'Security issue — your login or password is weak';
7587
$l10n['reg_ok'] =
7688
'Registration success!';
7789
$l10n['login_ok'] =
@@ -133,7 +145,23 @@
133145
$l10n['msg_rules'] =
134146
'<ul>
135147
<li>Project authors do not sale access point data and personal data of their users.</li>
148+
136149
<li>Project infrastructure is supported solely by user donations, project authors do not use contextual advertising.</li>
150+
151+
<li>Project usage is allowed only for non-commercial, research, and educational purposes.</li>
152+
153+
<li>User account may be banned without any notice if unfair usage is being detected, which can be described by the following points:
154+
<ol>
155+
<li>Attempt to mass download or parse the data, or high load on the service — if you need a large chunk of data for research purposes, you must <a href="faq#feedback">contact the administration</a>.</li>
156+
<li>Use for commercial purposes — for the purpose of enrichment, the use of access points to save Internet charges does not count here.</li>
157+
<li>Use of a personal account to provide open access to everyone — there is a guest account for this, and if it is blocked, you cannot do anything.</li>
158+
<li>Registration of a new account by using invitation from the account which violated the rules — the invited accounts are being blocked in a chain if the inviter&apos;s account violates the rules.</li>
159+
<li>Registration of a personal account with a weak username or password — the account can be unlocked by changing the username or password.</li>
160+
</ol>
161+
</li>
162+
163+
<li>In case of multiple service usage violations, the administration reserves the right to contact law enforcement authorities with the subsequent sending of a system log with all relevant data.</li>
164+
137165
<li>Project authors and maintainers are not responsible for the stored data in the database; only the users are responsible for their uploads. The administration reserves the right to disclose data to law enforcement authorities in case of an official request.</li>
138166
</ul>
139167
<br>

l10n/ru-RU.php

+29-1
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,21 @@
6969
$l10n['err_wait'] =
7070
'Временное ограничение на запрос, попробуйте ещё раз';
7171
$l10n['err_banned'] =
72-
'Аккаунт заблокирован';
72+
'Аккаунт заблокирован. Причина: ';
7373
$l10n['err_unknown'] =
7474
'Неизвестная ошибка';
75+
$l10n['ban_guest'] =
76+
'<a href="https://forum.antichat.ru/posts/4370935" target="_blank">Временная блокировка</a> гостевого аккаунта';
77+
$l10n['ban_parsing'] =
78+
'Попытка скачивания / парсинга базы / высокая нагрузка';
79+
$l10n['ban_commerce'] =
80+
'Коммерческое использование';
81+
$l10n['ban_public'] =
82+
'Создание публичного аккаунта';
83+
$l10n['ban_inherit'] =
84+
'Пользователь, пригласивший вас, был заблокирован — ';
85+
$l10n['ban_weak'] =
86+
'Проблема безопасности - слишком простой логин или пароль';
7587
$l10n['reg_ok'] =
7688
'Регистрация успешна!';
7789
$l10n['login_ok'] =
@@ -133,7 +145,23 @@
133145
$l10n['msg_rules'] =
134146
'<ul>
135147
<li>Авторы проекта не занимаются продажей данных точек доступа и личных данных пользователей базы.</li>
148+
136149
<li>Инфраструктура проекта поддерживается исключительно благодаря пожертвованиям пользователей, авторы проекта не используют контекстную рекламу.</li>
150+
151+
<li>Использование проекта допустимо только в некоммерческих, исследовательских, и образовательных целях.</li>
152+
153+
<li>Аккаунт пользователя может быть заблокирован без предупреждения при обнаружении недобросовестного использования, которое характеризуется следующими пунктами:
154+
<ol>
155+
<li>Попытка массового скачивания или парсинга результатов выдачи базы, либо серьёзная нагрузка на сервис — в случае необходимости выборки данных в исследовательских целях необходимо <a href="faq#feedback">обратиться к администрации</a>.</li>
156+
<li>Использование в коммерческих целях — в целях обогащения, использование точек доступа для экономии платы за интернет не считается.</li>
157+
<li>Использование личного аккаунта для предоставления открытого доступа всем желающим — для этого есть гостевой аккаунт, а если он заблокирован, значит так надо.</li>
158+
<li>Регистрация нового аккаунта по приглашению от аккаунта, на котором было зафиксировано нарушение — приглашённые аккаунты блокируются по цепочке при нарушении правил пригласившим аккаунтом.</li>
159+
<li>Регистрация личного аккаунта со слабым логином или паролем — аккаунт может быть разблокирован при смене логина или пароля.</li>
160+
</ol>
161+
</li>
162+
163+
<li>При множественных нарушениях пользования сервисом администрация ресурса оставляет за собой право обращения к правоохранительным органам с последующей отправкой системного журнала со всеми релевантными данными.</li>
164+
137165
<li>За хранимые в базе данные авторы проекта ответственности не несут; в ответе пользователи, загрузившие эти данные. Администрация ресурса оставляет за собой право раскрытия данных правоохранительным органам в случае официального запроса.</li>
138166
</ul>
139167
<br>

user.class.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class User {
6363

6464
private static $mysqli;
6565

66-
function __construct($db=NULL)
66+
function __construct($db=NULL)
6767
{
6868
global $db;
6969

user.php

+14-1
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,21 @@ function getFloatCoord($coord)
6161
}
6262
if ($UserManager->Level == -2)
6363
{
64-
$UserManager->out();
6564
$json['error'] = 'lowlevel';
65+
$info = $UserManager->getUserInfo($UserManager->uID);
66+
if ($info['ban_reason'] != null)
67+
{
68+
$json['reason'] = $info['ban_reason'];
69+
$json['inherited'] = false;
70+
71+
if ($json['reason'] == "inherit")
72+
{
73+
$info = $UserManager->getUserInfo($UserManager->puID);
74+
$json['reason'] = $info['ban_reason'];
75+
$json['inherited'] = true;
76+
}
77+
}
78+
$UserManager->out();
6679
break;
6780
}
6881
$json['result'] = true;

win_login.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ <h2>%l10n_msg_login%</h2>
99
<input type=checkbox id=stayhere style="vertical-align: middle; margin: 0 5 3 0"/>
1010
<label for=stayhere>%l10n_str_stay_here%</label>
1111
</td></tr>
12-
<tr><td colspan=2 align=center id=loginstat style="font-size: 13px; padding-top: 0px"></td></tr>
12+
<tr><td colspan=2 align=center id=loginstat style="font-size: 13px; padding-top: 0px; max-width: 250px"></td></tr>
1313
<tr><td>
1414
<input type=button value="%l10n_btn_login%" onclick="doLogin()"/>
1515
</td><td align=right>

win_newpass.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ <h2>%l10n_msg_chpass%</h2>
55
<table>
66
<tr><td>%l10n_str_pass%</td><td><input type=password name=password></td></tr>
77
<tr><td>%l10n_str_pass_rep%</td><td><input type=password name=password2></td></tr>
8-
<tr><td colspan=2 align=center id=regstat style="font-size: 13px; padding-top: 0px"></td></tr>
8+
<tr><td colspan=2 align=center id=regstat style="font-size: 13px; padding-top: 0px; max-width: 250px"></td></tr>
99
<tr><td><input type=button value="%l10n_btn_chpass%" onclick="changePassword()"></td></tr>
1010
</table>
1111
</form>

win_reg.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ <h2>%l10n_msg_reg%</h2>
1010
<tr><td align=right>
1111
<input type=checkbox onclick="$('#frm_reg').find('input[type=button]').prop('disabled', !this.checked)"/>
1212
</td><td style="font-size: 12px">%l10n_str_accept_rules%</td></tr>
13-
<tr><td colspan=2 align=center id=regstat style="font-size: 13px; padding-top: 0px"></td></tr>
13+
<tr><td colspan=2 align=center id=regstat style="font-size: 13px; padding-top: 0px; max-width: 250px"></td></tr>
1414
<tr><td>
1515
<input type=button value="%l10n_btn_reg%" onclick="doReg()" disabled /></td>
1616
<td align=right><a href="javascript://" onclick="showFrm('#win_login')">%l10n_str_has_login%</a></td></tr>

0 commit comments

Comments
 (0)