diff --git a/includes/defines.php b/includes/defines.php
index 0f60c8a9..816881df 100644
--- a/includes/defines.php
+++ b/includes/defines.php
@@ -132,8 +132,8 @@ define('U_GROUP_LOCALIZER', 0x0200);
define('U_GROUP_SALESAGENT', 0x0400);
define('U_GROUP_SCREENSHOT', 0x0800);
define('U_GROUP_VIDEO', 0x1000);
-// define('U_GROUP_APIONLY, 0x2000); // the heck..?
-// define('U_GROUP_PENDING, 0x4000); // would restrict some markup like urls
+define('U_GROUP_APIONLY', 0x2000); // not used
+define('U_GROUP_PENDING', 0x4000); // restricts usage of urls in comments
define('U_GROUP_STAFF', (U_GROUP_ADMIN|U_GROUP_EDITOR|U_GROUP_MOD|U_GROUP_BUREAU|U_GROUP_DEV|U_GROUP_BLOGGER|U_GROUP_LOCALIZER|U_GROUP_SALESAGENT));
define('U_GROUP_EMPLOYEE', (U_GROUP_ADMIN|U_GROUP_BUREAU|U_GROUP_DEV));
diff --git a/includes/user.class.php b/includes/user.class.php
index dbbed9a0..b93b709a 100644
--- a/includes/user.class.php
+++ b/includes/user.class.php
@@ -112,7 +112,7 @@ class User
);
// gain rep for daily visit
- if (!(self::$banStatus & (ACC_BAN_TEMP | ACC_BAN_PERM)))
+ if (!(self::$banStatus & (ACC_BAN_TEMP | ACC_BAN_PERM)) && !self::isInGroup(U_GROUP_PENDING))
Util::gainSiteReputation(self::$id, SITEREP_ACTION_DAILYVISIT);
// increment consecutive visits (next day or first of new month and not more than 48h)
@@ -245,9 +245,6 @@ class User
if (!self::verifyCrypt($pass))
return AUTH_WRONGPASS;
- if ($query['status'] & ACC_STATUS_NEW)
- return AUTH_ACC_INACTIVE;
-
// successfull auth; clear bans for this IP
DB::Aowow()->query('DELETE FROM ?_account_bannedips WHERE type = 0 AND ip = ?', self::$ip);
diff --git a/localization/locale_dede.php b/localization/locale_dede.php
index b15b7d7c..af5b0040 100644
--- a/localization/locale_dede.php
+++ b/localization/locale_dede.php
@@ -301,7 +301,7 @@ $lang = array(
'groups' => array(
-1 => "Keine", "Tester", "Administrator", "Editor", "Moderator", "Bürokrat",
"Entwickler", "VIP", "Blogger", "Premium", "Übersetzer", "Handelsvertreter",
- "Screenshot-Verwalter", "Video-Verwalter"
+ "Screenshot-Verwalter", "Video-Verwalter", "API-Partner", "Ausstehend"
),
// signIn
'doSignIn' => "Mit Eurem AoWoW-Konto anmelden",
@@ -347,7 +347,7 @@ $lang = array(
'accActivated' => 'Euer Konto wurde soeben aktiviert.
Ihr könnt euch nun anmelden',
'userNotFound' => "Ein Konto mit diesem Namen existiert nicht.",
'wrongPass' => "Dieses Kennwort ist ungültig.",
- 'accInactive' => "Dieses Konto wurde bisher nicht aktiviert.",
+ // 'accInactive' => "Dieses Konto wurde bisher nicht aktiviert.",
'loginExceeded' => "Die maximale Anzahl an Anmelde-Versuchen von dieser IP wurde überschritten. Bitte versucht es in %s erneut.",
'signupExceeded'=> "Die maximale Anzahl an Regustrierungen von dieser IP wurde überschritten. Bitte versucht es in %s erneut.",
'errNameLength' => "Euer Benutzername muss mindestens 4 Zeichen lang sein.", // message_usernamemin
diff --git a/localization/locale_enus.php b/localization/locale_enus.php
index f51930b8..e89a9018 100644
--- a/localization/locale_enus.php
+++ b/localization/locale_enus.php
@@ -296,7 +296,7 @@ $lang = array(
'groups' => array(
-1 => "None", "Tester", "Administrator", "Editor", "Moderator", "Bureaucrat",
"Developer", "VIP", "Blogger", "Premium", "Localizer", "Sales agent",
- "Screenshot manager", "Video manager"
+ "Screenshot manager", "Video manager", "API partner", "Pending"
),
// signIn
'doSignIn' => "Log in to your AoWoW Account",
@@ -342,7 +342,7 @@ $lang = array(
'accActivated' => 'Your account has been activated.
Proceed to sign in',
'userNotFound' => "The username you entered does not exists.",
'wrongPass' => "That password is not vaild.",
- 'accInactive' => "That account has not yet been confirmed active.",
+ // 'accInactive' => "That account has not yet been confirmed active.",
'loginExceeded' => "The maximum number of logins from this IP has been exceeded. Please try again in %s.",
'signupExceeded'=> "The maximum number of signups from this IP has been exceeded. Please try again in %s.",
'errNameLength' => "Your username must be at least 4 characters long.", // message_usernamemin
diff --git a/localization/locale_eses.php b/localization/locale_eses.php
index ba6b7001..590426ec 100644
--- a/localization/locale_eses.php
+++ b/localization/locale_eses.php
@@ -301,7 +301,7 @@ $lang = array(
'groups' => array(
-1 => "Ninguno", "Probador", "Administrador", "Editor", "Moderador", "Burócrata",
"Desarrollador", "VIP", "Bloggor", "Premium", "Traductor", "Agente de ventas",
- "Gestor de Capturas de pantalla","Gestor de vídeos"
+ "Gestor de Capturas de pantalla","Gestor de vídeos", "Partner de API", "Pendiente"
),
// signIn
@@ -348,7 +348,7 @@ $lang = array(
'accActivated' => 'Your account has been activated.
Proceed to sign in',
'userNotFound' => "The username you entered does not exists.",
'wrongPass' => "That password is not vaild.",
- 'accInactive' => "That account has not yet been confirmed active.",
+ // 'accInactive' => "That account has not yet been confirmed active.",
'loginExceeded' => "The maximum number of logins from this IP has been exceeded. Please try again in %s.",
'signupExceeded'=> "The maximum number of signups from this IP has been exceeded. Please try again in %s.",
'errNameLength' => "Tu nombre de usuario tiene que tener por lo menos cuatro caracteres.", // message_usernamemin
diff --git a/localization/locale_frfr.php b/localization/locale_frfr.php
index 64e024a5..6dcc8dd7 100644
--- a/localization/locale_frfr.php
+++ b/localization/locale_frfr.php
@@ -301,7 +301,7 @@ $lang = array(
'groups' => array(
-1 => "None", "Testeur", "Administrateur", "Éditeur", "Modérateur", "Bureaucrate",
"Développeur", "VIP", "Bloggeur", "Premium", "Traducteur", "Agent de ventes",
- "Gestionnaire de capture d'écran","Gestionnaire de vidéos"
+ "Gestionnaire de capture d'écran","Gestionnaire de vidéos" "Partenaire API", "En attente"
),
// signIn
'doSignIn' => "Connexion à votre compte Aowow",
@@ -347,7 +347,7 @@ $lang = array(
'accActivated' => 'Votre compte a été activé.
Vous pouvez maintenant vous connecter',
'userNotFound' => "Le nom d'utilisateur que vous avez saisi n'éxiste pas.",
'wrongPass' => "Ce mot de passe est invalide.",
- 'accInactive' => "Ce compte n'a pas encore été activé.",
+ // 'accInactive' => "Ce compte n'a pas encore été activé.",
'loginExceeded' => "Le nombre maximum de connections depuis cette IP a été dépassé. Essayez de nouevau dans %s.",
'signupExceeded'=> "Le nombre maximum d'inscriptions depuis cette IP a été dépassé. Essayez de nouveau dans %s.",
'errNameLength' => "Votre nom d'utilisateur doit faire au moins 4 caractères de long.", // message_usernamemin
diff --git a/localization/locale_ruru.php b/localization/locale_ruru.php
index cf1dc087..ebc7e085 100644
--- a/localization/locale_ruru.php
+++ b/localization/locale_ruru.php
@@ -301,7 +301,7 @@ $lang = array(
'groups' => array(
-1 => "Нет", "Тестер", "Администратор", "Редактор", "Модератор", "Бюрократ",
"Разработчик", "VIP", "Блогер", "Учетная запись Премиум", "Переводчик", "Агент по продажам",
- "Менеджер изображений", "Менеджер видео"
+ "Менеджер изображений", "Менеджер видео", "API партнер", "Ожидающее"
),
// signIn
'doSignIn' => "Войти в вашу учетную запись Aowow",
@@ -347,7 +347,7 @@ $lang = array(
'accActivated' => 'Your account has been activated.
Proceed to sign in',
'userNotFound' => "The username you entered does not exists.",
'wrongPass' => "That password is not vaild.",
- 'accInactive' => "That account has not yet been confirmed active.",
+ // 'accInactive' => "That account has not yet been confirmed active.",
'loginExceeded' => "The maximum number of logins from this IP has been exceeded. Please try again in %s.",
'signupExceeded'=> "The maximum number of signups from this IP has been exceeded. Please try again in %s.",
'errNameLength' => "Имя пользователя не должно быть короче 4 символов.", // message_usernamemin
diff --git a/pages/account.php b/pages/account.php
index fdc5e8c8..c3ff6835 100644
--- a/pages/account.php
+++ b/pages/account.php
@@ -141,11 +141,9 @@ class AccountPage extends GenericPage
else if (!empty($_GET['token']) && ($newId = DB::Aowow()->selectCell('SELECT id FROM ?_account WHERE status = ?d AND token = ?', ACC_STATUS_NEW, $_GET['token'])))
{
$nStep = 2;
- DB::Aowow()->query('UPDATE ?_account SET status = ?d WHERE token = ?', ACC_STATUS_OK, $_GET['token']);
+ DB::Aowow()->query('UPDATE ?_account SET status = ?d, statusTimer = 0, token = 0, userGroups = ?d WHERE token = ?', ACC_STATUS_OK, U_GROUP_NONE, $_GET['token']);
DB::Aowow()->query('REPLACE INTO ?_account_bannedips (ip, type, count, unbanDate) VALUES (?, 1, ?d + 1, UNIX_TIMESTAMP() + ?d)', User::$ip, CFG_ACC_FAILED_AUTH_COUNT, CFG_ACC_FAILED_AUTH_BLOCK);
- Util::gainSiteReputation($newId, SITEREP_ACTION_REGISTER);
-
$this->text = sprintf(Lang::account('accActivated'), $_GET['token']);
}
else
@@ -335,9 +333,10 @@ Markup.printHtml("description text here", "description-generic", { allow: Markup
return Lang::main('intError');
// reset account status, update expiration
- DB::Aowow()->query('UPDATE ?_account SET prevIP = IF(curIp = ?, prevIP, curIP), curIP = IF(curIp = ?, curIP, ?), allowExpire = ?d, status = 0, statusTimer = 0, token = "" WHERE user = ?',
+ DB::Aowow()->query('UPDATE ?_account SET prevIP = IF(curIp = ?, prevIP, curIP), curIP = IF(curIp = ?, curIP, ?), allowExpire = ?d, status = IF(status = ?d, status, 0), statusTimer = IF(status = ?d, statusTimer, 0), token = IF(status = ?d, token, "") WHERE user = ?',
User::$ip, User::$ip, User::$ip,
$this->_post['remember_me'] != 'yes',
+ ACC_STATUS_NEW, ACC_STATUS_NEW, ACC_STATUS_NEW,
$this->_post['username']
);
@@ -355,9 +354,6 @@ Markup.printHtml("description text here", "description-generic", { allow: Markup
case AUTH_WRONGPASS:
User::destroy();
return Lang::account('wrongPass');
- case AUTH_ACC_INACTIVE:
- User::destroy();
- return Lang::account('accInactive');
case AUTH_IPBANNED:
User::destroy();
return sprintf(Lang::account('loginExceeded'), Util::formatTime(CFG_ACC_FAILED_AUTH_BLOCK * 1000));
@@ -404,7 +400,7 @@ Markup.printHtml("description text here", "description-generic", { allow: Markup
// create..
$token = Util::createHash();
- $id = DB::Aowow()->query('REPLACE INTO ?_account (user, passHash, displayName, email, joindate, curIP, allowExpire, locale, status, statusTimer, token) VALUES (?, ?, ?, ?, UNIX_TIMESTAMP(), ?, ?d, ?d, ?d, UNIX_TIMESTAMP() + ?d, ?)',
+ $ok = DB::Aowow()->query('REPLACE INTO ?_account (user, passHash, displayName, email, joindate, curIP, allowExpire, locale, userGroups, status, statusTimer, token) VALUES (?, ?, ?, ?, UNIX_TIMESTAMP(), ?, ?d, ?d, ?d, ?d, UNIX_TIMESTAMP() + ?d, ?)',
$this->_post['username'],
User::hashCrypt($this->_post['password']),
Util::ucFirst($this->_post['username']),
@@ -412,14 +408,18 @@ Markup.printHtml("description text here", "description-generic", { allow: Markup
User::$ip,
$this->_post['remember_me'] != 'yes',
User::$localeId,
+ U_GROUP_PENDING,
ACC_STATUS_NEW,
CFG_ACC_CREATE_SAVE_DECAY,
$token
);
- if (!$id) // something went wrong
+ if (!$ok)
return Lang::main('intError');
else if ($_ = $this->sendMail(Lang::mail('accConfirm', 0), sprintf(Lang::mail('accConfirm', 1), $token), CFG_ACC_CREATE_SAVE_DECAY))
{
+ if ($id = DB::Aowow()->selectCell('SELECT id FROM ?_account WHERE token = ?', $token))
+ Util::gainSiteReputation($id, SITEREP_ACTION_REGISTER);
+
// success:: update ip-bans
if (!$ip || $ip['unbanDate'] < time())
DB::Aowow()->query('REPLACE INTO ?_account_bannedips (ip, type, count, unbanDate) VALUES (?, 1, 1, UNIX_TIMESTAMP() + ?d)', User::$ip, CFG_ACC_FAILED_AUTH_BLOCK);
diff --git a/pages/npc.php b/pages/npc.php
index db7b8e99..b077217c 100644
--- a/pages/npc.php
+++ b/pages/npc.php
@@ -702,7 +702,7 @@ class NpcPage extends GenericPage
$this->extendGlobalData($objectiveOf->getJSGlobals());
$this->lvTabs[] = ['quest', array(
- 'data' => aray_values($objectiveOf->getListviewData()),
+ 'data' => array_values($objectiveOf->getListviewData()),
'name' => '$LANG.tab_objectiveof',
'id' => 'objective-of'
)];
diff --git a/static/js/Markup.js b/static/js/Markup.js
index ab9b8ed0..5926ad20 100644
--- a/static/js/Markup.js
+++ b/static/js/Markup.js
@@ -44,7 +44,8 @@ var Markup = {
CLASS_USER: MARKUP_CLASS_USER,
CLASS_PENDING: MARKUP_CLASS_PENDING,
- whitelistedWebsites: [/(.*\.)?wowhead.com/i, /(.*\.)?thottbot.com/i, /(.*\.)?torhead.com/i, /(.*\.)?mmoui.com/i, /(.*\.)?tankspot.com/i, /(.*\.)?guildfans.com/i, /(.*\.)?allakhazam.com/i, /(.*\.)?zam.com/i, /(.*\.)?blizzard.com/i, /(.*\.)?worldofwarcraft.com/i, /(.*\.)?wow-europe.com/i, /(.*\.)?battle.net/i, /(.*\.)?sc2ranks.com/i, /(.*\.)?torchlightarmory.com/i, /(.*\.)?vindictusdb.com/i, /(.*\.)?wowinterface.com/i, /(.*\.)?vginterface.com/i, /(.*\.)?lotrointerface.com/i, /(.*\.)?eq2interface.com/i, /(.*\.)?eqinterface.com/i, /(.*\.)?mmo-champion.com/i, /(.*\.)?joystiq.com/i, /(.*\.)?wow-heroes.com/i, /(.*\.)?be-imba.hu/i, /(.*\.)?wowpedia.org/i, /(.*\.)?curse.com/i, /(.*\.)?elitistjerks.com/i, /(.*\.)?wowwiki.com/i, /(.*\.)?worldoflogs.com/i, /(.*\.)?wowinsider.com/i, /(.*\.)?guildwork.com/i],
+ /* aowow custom: first element */
+ whitelistedWebsites: [new RegExp('(.*\\.)?' + location.hostname, 'i'), /(.*\.)?wowhead.com/i, /(.*\.)?thottbot.com/i, /(.*\.)?torhead.com/i, /(.*\.)?mmoui.com/i, /(.*\.)?tankspot.com/i, /(.*\.)?guildfans.com/i, /(.*\.)?allakhazam.com/i, /(.*\.)?zam.com/i, /(.*\.)?blizzard.com/i, /(.*\.)?worldofwarcraft.com/i, /(.*\.)?wow-europe.com/i, /(.*\.)?battle.net/i, /(.*\.)?sc2ranks.com/i, /(.*\.)?torchlightarmory.com/i, /(.*\.)?vindictusdb.com/i, /(.*\.)?wowinterface.com/i, /(.*\.)?vginterface.com/i, /(.*\.)?lotrointerface.com/i, /(.*\.)?eq2interface.com/i, /(.*\.)?eqinterface.com/i, /(.*\.)?mmo-champion.com/i, /(.*\.)?joystiq.com/i, /(.*\.)?wow-heroes.com/i, /(.*\.)?be-imba.hu/i, /(.*\.)?wowpedia.org/i, /(.*\.)?curse.com/i, /(.*\.)?elitistjerks.com/i, /(.*\.)?wowwiki.com/i, /(.*\.)?worldoflogs.com/i, /(.*\.)?wowinsider.com/i, /(.*\.)?guildwork.com/i],
rolesToClass: function(roles)
{
@@ -3483,14 +3484,16 @@ var Markup = {
_fixUrl: function(url)
{
- if(!url) return '';
+ if (!url)
+ return '';
// Make local URLs absolute
var firstChar = url.charAt(0);
- if(firstChar == '/' || firstChar == '?')
+ if (firstChar == '/' || firstChar == '?')
{
url = url.replace(/^[\/\?]+/, '');
+ // aowow custom
// url = '/' + url;
url = '?' + url;
}
@@ -3500,9 +3503,12 @@ var Markup = {
_isUrlExternal: function(str)
{
- if(!str)
+ if (!str)
return false;
- return (str.indexOf('wowhead.com') == -1 && str.match(/^([^:\\./]+):/i));
+
+ // aowow custom
+ // return (str.indexOf('wowhead.com') == -1 && str.match(/^([^:\\./]+):/i));
+ return g_isExternalUrl(str);
},
_nodeSearch: function(node, name, depth)
diff --git a/static/js/Summary.js b/static/js/Summary.js
index 42e462f3..3ab79a13 100644
--- a/static/js/Summary.js
+++ b/static/js/Summary.js
@@ -1526,7 +1526,7 @@ Summary.prototype = {
var o = $WH.ce('option');
o.value = p;
o._weights = weights[p];
- $WH.ae(o, $WH.ct(weights[p].name ? weights[p].name :LANG.presets[p]));
+ $WH.ae(o, $WH.ct(weights[p].name ? weights[p].name : LANG.presets[p]));
$WH.ae(group, o);
}
diff --git a/static/js/locale_dede.js b/static/js/locale_dede.js
index 4a41bbdc..67c4c373 100644
--- a/static/js/locale_dede.js
+++ b/static/js/locale_dede.js
@@ -2207,7 +2207,9 @@ var g_user_roles = {
10: 'Übersetzer',
11: 'Handelsvertreter',
12: 'Screenshot-Verwalter',
- 13: 'Video-Verwalter'
+ 13: 'Video-Verwalter',
+ 14: 'API-Partner',
+ 15: 'Ausstehend'
};
var g_gem_colors = {
@@ -2316,6 +2318,9 @@ var g_conditions = {
/* end custom */
var LANG = {
+ linkremoved: "Link entfernt",
+ linkremoved_tip: "Neue Benutzer können nicht
zu nicht-weißgelisteten Seiten verlinken.",
+
and: " und ",
or: " oder ", // custom
comma: ", ",
diff --git a/static/js/locale_enus.js b/static/js/locale_enus.js
index 980b0cbe..96f76aa4 100644
--- a/static/js/locale_enus.js
+++ b/static/js/locale_enus.js
@@ -2252,7 +2252,9 @@ var g_user_roles = {
10: 'Localizer',
11: 'Sales agent',
12: 'Screenshot manager',
- 13: 'Video manager'
+ 13: 'Video manager',
+ 14: 'API partner',
+ 15: 'Pending'
};
var g_gem_colors = {
@@ -2362,6 +2364,9 @@ var g_conditions = {
/* end custom */
var LANG = {
+ linkremoved: "link removed",
+ linkremoved_tip: "Newly registered users cannot
post links.",
+
and: " and ",
or: " or ", // custom
comma: ", ",
diff --git a/static/js/locale_eses.js b/static/js/locale_eses.js
index 17cb6a11..18dccb6d 100644
--- a/static/js/locale_eses.js
+++ b/static/js/locale_eses.js
@@ -2208,7 +2208,9 @@ var g_user_roles = {
10: 'Traductor',
11: 'Agente de ventas',
12: 'Gestor de Capturas de pantalla',
- 13: 'Gestor de vídeos'
+ 13: 'Gestor de vídeos',
+ 14: 'Partner de API',
+ 15: 'Pendiente'
};
var g_gem_colors = {
@@ -2318,8 +2320,11 @@ var g_conditions = {
/* end custom */
var LANG = {
+ linkremoved: "enlace eliminado",
+ linkremoved_tip: "Los nuevos usuarios no pueden enlazar a
webs que no estén aprobadas.",
+
and: " y ",
- or: " o ",
+ or: " o ", // custom
comma: ", ",
ellipsis: "…",
dash: " – ",
diff --git a/static/js/locale_frfr.js b/static/js/locale_frfr.js
index 92aa75fc..aa6b45b5 100644
--- a/static/js/locale_frfr.js
+++ b/static/js/locale_frfr.js
@@ -2195,7 +2195,9 @@ var g_user_roles = {
10: 'Traducteur',
11: 'Agent de ventes',
12: 'Gestionnaire de capture d\'écran',
- 13: 'Gestionnaire de vidéos'
+ 13: 'Gestionnaire de vidéos',
+ 14: 'artenaire API',
+ 15: 'En attente'
};
var g_gem_colors = {
@@ -2305,8 +2307,11 @@ var g_conditions = {
/* end custom */
var LANG = {
+ linkremoved: "lien enlevé",
+ linkremoved_tip: "Les nouveaux utilisateurs ne peuvent pas donner de liens vers
des sites web non-approuvés.",
+
and: " et ",
- or: " ou ",
+ or: " ou ", // custom
comma: ", ",
ellipsis: "…",
dash: " – ",
diff --git a/static/js/locale_ruru.js b/static/js/locale_ruru.js
index 3b8876f8..c70992c6 100644
--- a/static/js/locale_ruru.js
+++ b/static/js/locale_ruru.js
@@ -2195,7 +2195,9 @@ var g_user_roles = {
10: 'Переводчик',
11: 'Агент по продажам',
12: 'Менеджер изображений',
- 13: 'Менеджер видео'
+ 13: 'Менеджер видео',
+ 14: 'API партнер',
+ 15: 'Ожидающее'
};
var g_gem_colors = {
@@ -2305,8 +2307,11 @@ var g_conditions = {
/* end custom */
var LANG = {
+ linkremoved: "ссылка удалена",
+ linkremoved_tip: "Новые пользователи не могут публиковать
\nссылки на не разрешенные сайты.",
+
and: " и ",
- or: " или ",
+ or: " или ", // custom
comma: ", ",
ellipsis: "…",
dash: " – ",