From 68f0e13e099dae85790dec2c5b2cff5c81d494ed Mon Sep 17 00:00:00 2001 From: Haynes Date: Wed, 13 Apr 2011 16:44:09 +0200 Subject: [PATCH 01/39] This commit forces the User to set a password for the Administrator before doing anything else after the installation. --- src/messenger/webim/libs/operator.php | 17 +++++++++++++++++ src/messenger/webim/locales/de/properties | 1 + src/messenger/webim/locales/en/properties | 1 + src/messenger/webim/operator/canned.php | 4 +++- src/messenger/webim/operator/getcode.php | 2 ++ src/messenger/webim/operator/history.php | 4 +++- src/messenger/webim/operator/index.php | 1 + src/messenger/webim/operator/operator.php | 6 ++++++ src/messenger/webim/operator/operators.php | 4 +++- src/messenger/webim/operator/settings.php | 1 + src/messenger/webim/operator/statistics.php | 3 ++- src/messenger/webim/operator/translate.php | 2 ++ src/messenger/webim/operator/updates.php | 1 + src/messenger/webim/operator/users.php | 2 ++ 14 files changed, 45 insertions(+), 4 deletions(-) diff --git a/src/messenger/webim/libs/operator.php b/src/messenger/webim/libs/operator.php index 4f4f3240..ecfed251 100755 --- a/src/messenger/webim/libs/operator.php +++ b/src/messenger/webim/libs/operator.php @@ -116,6 +116,12 @@ function update_operator($operatorid, $login, $email, $password, $localename, $c perform_query($query, $link); mysql_close($link); + // update the session password + if (isset($password)) + { + $_SESSION[$mysqlprefix.'operator']['vcpassword']=md5($password); + } + } function update_operator_avatar($operatorid, $avatar) @@ -235,6 +241,17 @@ function check_login($redirect = true) return $_SESSION["${mysqlprefix}operator"]; } +// Force the admin to set a password after the installation +function force_password($operator) +{ + global $webimroot; + if($operator['vcpassword']==md5('')) + { + header("Location: $webimroot/operator/operator.php?op=1"); + exit; + } +} + function get_logged_in() { global $mysqlprefix; diff --git a/src/messenger/webim/locales/de/properties b/src/messenger/webim/locales/de/properties index 8b3d807e..0f395517 100644 --- a/src/messenger/webim/locales/de/properties +++ b/src/messenger/webim/locales/de/properties @@ -212,6 +212,7 @@ menu.translate=Regionalisieren menu.updates.content=Auf Nachrichten und Updates prüfen. menu.updates=Updates my_settings.error.password_match=Die Passwörter stimmen nicht überein +my_settings.error.no_password=Es ist noch kein Passwort für den Administrator gesetzt no_such_operator=Kein solcher Operator operator.group.no_description=<keine Beschreibung> operator.groups.intro=Wähle Gruppen nach Operator Qualifikation. diff --git a/src/messenger/webim/locales/en/properties b/src/messenger/webim/locales/en/properties index 135d4d70..878a2c47 100644 --- a/src/messenger/webim/locales/en/properties +++ b/src/messenger/webim/locales/en/properties @@ -236,6 +236,7 @@ menu.profile=Profile menu.translate=Localize menu.updates.content=Check for news and updates. menu.updates=Updates +my_settings.error.no_password=No Password set for the Administrator my_settings.error.password_match=Entered passwords do not match no_such_operator=No such operator operator.group.no_description=<no description> diff --git a/src/messenger/webim/operator/canned.php b/src/messenger/webim/operator/canned.php index 84f5610c..c665ddf0 100644 --- a/src/messenger/webim/operator/canned.php +++ b/src/messenger/webim/operator/canned.php @@ -26,6 +26,8 @@ require_once('../libs/groups.php'); require_once('../libs/pagination.php'); $operator = check_login(); +force_password($operator); + loadsettings(); $errors = array(); @@ -131,4 +133,4 @@ $page['formgroup'] = $groupid; prepare_menu($operator); start_html_output(); require('../view/canned.php'); -?> \ No newline at end of file +?> diff --git a/src/messenger/webim/operator/getcode.php b/src/messenger/webim/operator/getcode.php index 1c738f9e..c8dc3c14 100644 --- a/src/messenger/webim/operator/getcode.php +++ b/src/messenger/webim/operator/getcode.php @@ -25,6 +25,8 @@ require_once('../libs/groups.php'); require_once('../libs/getcode.php'); $operator = check_login(); +force_password($operator); + loadsettings(); $imageLocales = get_image_locales_map("../locales"); diff --git a/src/messenger/webim/operator/history.php b/src/messenger/webim/operator/history.php index 4dce7b1e..015ce66d 100644 --- a/src/messenger/webim/operator/history.php +++ b/src/messenger/webim/operator/history.php @@ -26,6 +26,8 @@ require_once('../libs/userinfo.php'); require_once('../libs/pagination.php'); $operator = check_login(); +force_password($operator); + loadsettings(); setlocale(LC_TIME, getstring("time.locale")); @@ -68,4 +70,4 @@ if ($query !== false) { prepare_menu($operator); start_html_output(); require('../view/thread_search.php'); -?> \ No newline at end of file +?> diff --git a/src/messenger/webim/operator/index.php b/src/messenger/webim/operator/index.php index bb2a940a..adbbfba0 100644 --- a/src/messenger/webim/operator/index.php +++ b/src/messenger/webim/operator/index.php @@ -23,6 +23,7 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); $operator = check_login(); +force_password($operator); $link = connect(); loadsettings_($link); diff --git a/src/messenger/webim/operator/operator.php b/src/messenger/webim/operator/operator.php index 155d764c..cf681141 100644 --- a/src/messenger/webim/operator/operator.php +++ b/src/messenger/webim/operator/operator.php @@ -96,6 +96,12 @@ if (isset($_POST['login']) && isset($_POST['password'])) { $errors[] = getlocal("no_such_operator"); $page['opid'] = topage($opId); } else { + //show an error if the admin password hasn't been set yet. + if ($operator['vcpassword']==md5('') && !isset($_GET['stored'])) + { + $errors[] = getlocal("my_settings.error.no_password"); + } + $page['formlogin'] = topage($op['vclogin']); $page['formname'] = topage($op['vclocalename']); $page['formemail'] = topage($op['vcemail']); diff --git a/src/messenger/webim/operator/operators.php b/src/messenger/webim/operator/operators.php index e3288a5d..eeb01e37 100644 --- a/src/messenger/webim/operator/operators.php +++ b/src/messenger/webim/operator/operators.php @@ -23,6 +23,8 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); $operator = check_login(); +force_password($operator); + if (isset($_GET['act']) && $_GET['act'] == 'del') { $operatorid = isset($_GET['id']) ? $_GET['id'] : ""; @@ -68,4 +70,4 @@ setlocale(LC_TIME, getstring("time.locale")); prepare_menu($operator); start_html_output(); require('../view/agents.php'); -?> \ No newline at end of file +?> diff --git a/src/messenger/webim/operator/settings.php b/src/messenger/webim/operator/settings.php index 77025774..894e8d6d 100644 --- a/src/messenger/webim/operator/settings.php +++ b/src/messenger/webim/operator/settings.php @@ -24,6 +24,7 @@ require_once('../libs/operator.php'); require_once('../libs/settings.php'); $operator = check_login(); +force_password($operator); $page = array('agentId' => ''); $errors = array(); diff --git a/src/messenger/webim/operator/statistics.php b/src/messenger/webim/operator/statistics.php index 9d12d506..dc5b0af2 100644 --- a/src/messenger/webim/operator/statistics.php +++ b/src/messenger/webim/operator/statistics.php @@ -24,6 +24,7 @@ require_once('../libs/chat.php'); require_once('../libs/operator.php'); $operator = check_login(); +force_password($operator); setlocale(LC_TIME, getstring("time.locale")); @@ -86,4 +87,4 @@ mysql_close($link); prepare_menu($operator); start_html_output(); require('../view/statistics.php'); -?> \ No newline at end of file +?> diff --git a/src/messenger/webim/operator/translate.php b/src/messenger/webim/operator/translate.php index 5e271ce6..575d6eb7 100644 --- a/src/messenger/webim/operator/translate.php +++ b/src/messenger/webim/operator/translate.php @@ -119,6 +119,8 @@ function get_auxiliary($s) } $operator = check_login(); +force_password($operator); + $source = verifyparam("source", "/^[\w-]{2,5}$/", $default_locale); $target = verifyparam("target", "/^[\w-]{2,5}$/", $current_locale); diff --git a/src/messenger/webim/operator/updates.php b/src/messenger/webim/operator/updates.php index d36f8f12..63455e0c 100644 --- a/src/messenger/webim/operator/updates.php +++ b/src/messenger/webim/operator/updates.php @@ -24,6 +24,7 @@ require_once('../libs/operator.php'); require_once('../libs/settings.php'); $operator = check_login(); +force_password($operator); $default_extensions = array('mysql', 'gd', 'iconv'); diff --git a/src/messenger/webim/operator/users.php b/src/messenger/webim/operator/users.php index dba8d1f4..d69d7528 100644 --- a/src/messenger/webim/operator/users.php +++ b/src/messenger/webim/operator/users.php @@ -24,6 +24,8 @@ require_once('../libs/operator.php'); require_once('../libs/groups.php'); $operator = check_login(); +force_password($operator); + $status = isset($_GET['away']) ? 1 : 0; notify_operator_alive($operator['operatorid'], $status); From 65b00240d3f5bc424f1f352e8d82b94635323d0f Mon Sep 17 00:00:00 2001 From: Evgeny Gryaznov Date: Fri, 15 Apr 2011 01:24:33 +0200 Subject: [PATCH 02/39] redirect to profile page after first login; informational banner when password is blank; do not enforce password change; rename Home -> Dashboard --- src/messenger/webim/libs/operator.php | 17 ----------------- src/messenger/webim/locales/de/properties | 1 - src/messenger/webim/locales/en/properties | 7 ++++--- src/messenger/webim/operator/canned.php | 2 -- src/messenger/webim/operator/getcode.php | 2 -- src/messenger/webim/operator/history.php | 2 -- src/messenger/webim/operator/index.php | 3 ++- src/messenger/webim/operator/login.php | 8 +++++--- src/messenger/webim/operator/operator.php | 18 +++++++++++------- src/messenger/webim/operator/operators.php | 2 -- src/messenger/webim/operator/settings.php | 1 - src/messenger/webim/operator/statistics.php | 1 - src/messenger/webim/operator/translate.php | 2 -- src/messenger/webim/operator/updates.php | 1 - src/messenger/webim/operator/users.php | 1 - src/messenger/webim/view/agent.php | 13 +++++++++---- src/messenger/webim/view/menu.php | 8 ++++++-- 17 files changed, 37 insertions(+), 52 deletions(-) diff --git a/src/messenger/webim/libs/operator.php b/src/messenger/webim/libs/operator.php index ecfed251..4f4f3240 100755 --- a/src/messenger/webim/libs/operator.php +++ b/src/messenger/webim/libs/operator.php @@ -116,12 +116,6 @@ function update_operator($operatorid, $login, $email, $password, $localename, $c perform_query($query, $link); mysql_close($link); - // update the session password - if (isset($password)) - { - $_SESSION[$mysqlprefix.'operator']['vcpassword']=md5($password); - } - } function update_operator_avatar($operatorid, $avatar) @@ -241,17 +235,6 @@ function check_login($redirect = true) return $_SESSION["${mysqlprefix}operator"]; } -// Force the admin to set a password after the installation -function force_password($operator) -{ - global $webimroot; - if($operator['vcpassword']==md5('')) - { - header("Location: $webimroot/operator/operator.php?op=1"); - exit; - } -} - function get_logged_in() { global $mysqlprefix; diff --git a/src/messenger/webim/locales/de/properties b/src/messenger/webim/locales/de/properties index 0f395517..8b3d807e 100644 --- a/src/messenger/webim/locales/de/properties +++ b/src/messenger/webim/locales/de/properties @@ -212,7 +212,6 @@ menu.translate=Regionalisieren menu.updates.content=Auf Nachrichten und Updates prüfen. menu.updates=Updates my_settings.error.password_match=Die Passwörter stimmen nicht überein -my_settings.error.no_password=Es ist noch kein Passwort für den Administrator gesetzt no_such_operator=Kein solcher Operator operator.group.no_description=<keine Beschreibung> operator.groups.intro=Wähle Gruppen nach Operator Qualifikation. diff --git a/src/messenger/webim/locales/en/properties b/src/messenger/webim/locales/en/properties index 878a2c47..ac17bf17 100644 --- a/src/messenger/webim/locales/en/properties +++ b/src/messenger/webim/locales/en/properties @@ -122,6 +122,8 @@ errors.prefix=
  • errors.required=Please fill "{0}". errors.suffix=
  • errors.wrong_field=Please fill "{0}" correctly. +error.no_password=This is your first time logging in and your password is blank. For security reasons you have to change it. +error.no_password.visit_profile=Visit your Profile Page. features.saved=Features activated form.field.address.description=Ex: 12.23.45.123 or todo.com form.field.address=Visitor's Address @@ -236,7 +238,6 @@ menu.profile=Profile menu.translate=Localize menu.updates.content=Check for news and updates. menu.updates=Updates -my_settings.error.no_password=No Password set for the Administrator my_settings.error.password_match=Entered passwords do not match no_such_operator=No such operator operator.group.no_description=<no description> @@ -495,9 +496,9 @@ time.never=Never time.timeformat=%I:%M %p time.today.at=Today at time.yesterday.at=Yesterday at -topMenu.admin=Home +topMenu.admin=Dashboard topMenu.logoff=Exit -topMenu.main=Home +topMenu.main=Dashboard topMenu.users.nomenu=without menu topMenu.users=Visitors translate.direction=Direction: diff --git a/src/messenger/webim/operator/canned.php b/src/messenger/webim/operator/canned.php index c665ddf0..9d9f7886 100644 --- a/src/messenger/webim/operator/canned.php +++ b/src/messenger/webim/operator/canned.php @@ -26,8 +26,6 @@ require_once('../libs/groups.php'); require_once('../libs/pagination.php'); $operator = check_login(); -force_password($operator); - loadsettings(); $errors = array(); diff --git a/src/messenger/webim/operator/getcode.php b/src/messenger/webim/operator/getcode.php index c8dc3c14..1c738f9e 100644 --- a/src/messenger/webim/operator/getcode.php +++ b/src/messenger/webim/operator/getcode.php @@ -25,8 +25,6 @@ require_once('../libs/groups.php'); require_once('../libs/getcode.php'); $operator = check_login(); -force_password($operator); - loadsettings(); $imageLocales = get_image_locales_map("../locales"); diff --git a/src/messenger/webim/operator/history.php b/src/messenger/webim/operator/history.php index 015ce66d..0f0e6b8b 100644 --- a/src/messenger/webim/operator/history.php +++ b/src/messenger/webim/operator/history.php @@ -26,8 +26,6 @@ require_once('../libs/userinfo.php'); require_once('../libs/pagination.php'); $operator = check_login(); -force_password($operator); - loadsettings(); setlocale(LC_TIME, getstring("time.locale")); diff --git a/src/messenger/webim/operator/index.php b/src/messenger/webim/operator/index.php index adbbfba0..b4af107c 100644 --- a/src/messenger/webim/operator/index.php +++ b/src/messenger/webim/operator/index.php @@ -23,7 +23,6 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); $operator = check_login(); -force_password($operator); $link = connect(); loadsettings_($link); @@ -34,6 +33,8 @@ $page = array( 'version' => $version, 'localeLinks' => get_locale_links("$webimroot/operator/index.php"), 'needUpdate' => $settings['dbversion'] != $dbversion, + 'needChangePassword' => $operator['vcpassword'] == md5(''), + 'profilePage' => "$webimroot/operator/operator.php?op=".$operator['operatorid'], 'updateWizard' => "$webimroot/install/", 'newFeatures' => $settings['featuresversion'] != $featuresversion, 'featuresPage' => "$webimroot/operator/features.php", diff --git a/src/messenger/webim/operator/login.php b/src/messenger/webim/operator/login.php index 88c31ff7..df202de5 100644 --- a/src/messenger/webim/operator/login.php +++ b/src/messenger/webim/operator/login.php @@ -33,9 +33,11 @@ if (isset($_POST['login']) && isset($_POST['password'])) { $operator = operator_by_login($login); if ($operator && isset($operator['vcpassword']) && $operator['vcpassword'] == md5($password)) { - $target = isset($_SESSION['backpath']) - ? $_SESSION['backpath'] - : "$webimroot/operator/index.php"; + $target = $password == '' + ? "$webimroot/operator/operator.php?op=" . $operator['operatorid'] + : (isset($_SESSION['backpath']) + ? $_SESSION['backpath'] + : "$webimroot/operator/index.php"); login_operator($operator, $remember); header("Location: $target"); diff --git a/src/messenger/webim/operator/operator.php b/src/messenger/webim/operator/operator.php index cf681141..00413716 100644 --- a/src/messenger/webim/operator/operator.php +++ b/src/messenger/webim/operator/operator.php @@ -77,6 +77,15 @@ if (isset($_POST['login']) && isset($_POST['password'])) { exit; } else { update_operator($opId, $login, $email, $password, $localname, $commonname); + // update the session password + if (isset($password) && $opId == $operator['operatorid']) { + $toDashboard = $operator['vcpassword'] == md5('') && $password != ''; + $_SESSION["${mysqlprefix}operator"]['vcpassword'] = md5($password); + if($toDashboard) { + header("Location: $webimroot/operator/index.php"); + exit; + } + } header("Location: $webimroot/operator/operator.php?op=$opId&stored"); exit; } @@ -96,12 +105,6 @@ if (isset($_POST['login']) && isset($_POST['password'])) { $errors[] = getlocal("no_such_operator"); $page['opid'] = topage($opId); } else { - //show an error if the admin password hasn't been set yet. - if ($operator['vcpassword']==md5('') && !isset($_GET['stored'])) - { - $errors[] = getlocal("my_settings.error.no_password"); - } - $page['formlogin'] = topage($op['vclogin']); $page['formname'] = topage($op['vclocalename']); $page['formemail'] = topage($op['vcemail']); @@ -119,9 +122,10 @@ $canmodify = ($opId == $operator['operatorid'] && is_capable($can_modifyprofile, $page['stored'] = isset($_GET['stored']); $page['canmodify'] = $canmodify ? "1" : ""; +$page['needChangePassword'] = $operator['vcpassword'] == md5(''); prepare_menu($operator); setup_operator_settings_tabs($opId, 0); start_html_output(); require('../view/agent.php'); -?> \ No newline at end of file +?> diff --git a/src/messenger/webim/operator/operators.php b/src/messenger/webim/operator/operators.php index eeb01e37..b73d976f 100644 --- a/src/messenger/webim/operator/operators.php +++ b/src/messenger/webim/operator/operators.php @@ -23,8 +23,6 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); $operator = check_login(); -force_password($operator); - if (isset($_GET['act']) && $_GET['act'] == 'del') { $operatorid = isset($_GET['id']) ? $_GET['id'] : ""; diff --git a/src/messenger/webim/operator/settings.php b/src/messenger/webim/operator/settings.php index 894e8d6d..77025774 100644 --- a/src/messenger/webim/operator/settings.php +++ b/src/messenger/webim/operator/settings.php @@ -24,7 +24,6 @@ require_once('../libs/operator.php'); require_once('../libs/settings.php'); $operator = check_login(); -force_password($operator); $page = array('agentId' => ''); $errors = array(); diff --git a/src/messenger/webim/operator/statistics.php b/src/messenger/webim/operator/statistics.php index dc5b0af2..f2c1add5 100644 --- a/src/messenger/webim/operator/statistics.php +++ b/src/messenger/webim/operator/statistics.php @@ -24,7 +24,6 @@ require_once('../libs/chat.php'); require_once('../libs/operator.php'); $operator = check_login(); -force_password($operator); setlocale(LC_TIME, getstring("time.locale")); diff --git a/src/messenger/webim/operator/translate.php b/src/messenger/webim/operator/translate.php index 575d6eb7..5e271ce6 100644 --- a/src/messenger/webim/operator/translate.php +++ b/src/messenger/webim/operator/translate.php @@ -119,8 +119,6 @@ function get_auxiliary($s) } $operator = check_login(); -force_password($operator); - $source = verifyparam("source", "/^[\w-]{2,5}$/", $default_locale); $target = verifyparam("target", "/^[\w-]{2,5}$/", $current_locale); diff --git a/src/messenger/webim/operator/updates.php b/src/messenger/webim/operator/updates.php index 63455e0c..d36f8f12 100644 --- a/src/messenger/webim/operator/updates.php +++ b/src/messenger/webim/operator/updates.php @@ -24,7 +24,6 @@ require_once('../libs/operator.php'); require_once('../libs/settings.php'); $operator = check_login(); -force_password($operator); $default_extensions = array('mysql', 'gd', 'iconv'); diff --git a/src/messenger/webim/operator/users.php b/src/messenger/webim/operator/users.php index d69d7528..41983f42 100644 --- a/src/messenger/webim/operator/users.php +++ b/src/messenger/webim/operator/users.php @@ -24,7 +24,6 @@ require_once('../libs/operator.php'); require_once('../libs/groups.php'); $operator = check_login(); -force_password($operator); $status = isset($_GET['away']) ? 1 : 0; diff --git a/src/messenger/webim/view/agent.php b/src/messenger/webim/view/agent.php index 056d0aea..23912f81 100644 --- a/src/messenger/webim/view/agent.php +++ b/src/messenger/webim/view/agent.php @@ -39,15 +39,20 @@ function tpl_content() { global $page, $webimroot, $errors; - + +
    +
    +
    + +
    - +
    @@ -70,7 +75,7 @@ require_once('inc_errors.php');
    -
    *
    +
    *
    />
    @@ -79,7 +84,7 @@ require_once('inc_errors.php');
    -
    *
    +
    *
    />
    diff --git a/src/messenger/webim/view/menu.php b/src/messenger/webim/view/menu.php index f907b794..3441ed47 100644 --- a/src/messenger/webim/view/menu.php +++ b/src/messenger/webim/view/menu.php @@ -41,8 +41,12 @@ function menuseparator() { function tpl_content() { global $page, $webimroot, $current_locale, $menuItemsCount, $version; ?> -
    - +
    + + +
    +
    +

    From b498de216efa773ab5969182af8fb52676dcfbb4 Mon Sep 17 00:00:00 2001 From: "Fedor A. Fetisov" Date: Fri, 15 Apr 2011 17:50:51 +0400 Subject: [PATCH 03/39] Create indexes for database tables during installation process --- src/messenger/webim/install/dbinfo.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/messenger/webim/install/dbinfo.php b/src/messenger/webim/install/dbinfo.php index 502cf682..7557d3c6 100644 --- a/src/messenger/webim/install/dbinfo.php +++ b/src/messenger/webim/install/dbinfo.php @@ -112,6 +112,12 @@ $dbtables = array( ) ); +$dbtables_indexes = array( + "${mysqlprefix}chatmessage" => array( + "idx_agentid" => "agentid" + ) +); + $memtables = array(); $dbtables_can_update = array( @@ -139,7 +145,7 @@ function show_install_err($text) function create_table($id, $link) { - global $dbtables, $memtables, $dbencoding, $mysqlprefix; + global $dbtables, $dbtables_indexes, $memtables, $dbencoding, $mysqlprefix; if (!isset($dbtables[$id])) { show_install_err("Unknown table: $id, " . mysql_error($link)); @@ -152,6 +158,12 @@ function create_table($id, $link) $query .= " $k $v,\n"; } + if (isset($dbtables_indexes[$id])) { + foreach ($dbtables_indexes[$id] as $k => $v) { + $query .= " INDEX $k ($v),\n"; + } + } + $query = preg_replace("/,\n$/", "", $query); $query .= ") charset $dbencoding"; if (in_array($id, $memtables)) { From d091447409614815051e5382fad7a0d772b66e3d Mon Sep 17 00:00:00 2001 From: "Fedor A. Fetisov" Date: Fri, 15 Apr 2011 17:51:14 +0400 Subject: [PATCH 04/39] Fix check of existance of tables indexes during database upgrade process --- src/messenger/webim/install/dbperform.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/messenger/webim/install/dbperform.php b/src/messenger/webim/install/dbperform.php index 9f5c3ae8..f64aadb3 100644 --- a/src/messenger/webim/install/dbperform.php +++ b/src/messenger/webim/install/dbperform.php @@ -154,7 +154,7 @@ if ($act == "silentcreateall") { runsql("ALTER TABLE ${mysqlprefix}chatgroup ADD vcemail varchar(64)", $link); } - $res = mysql_query("select null from information_schema.statistics where table_name = '${mysqlprefix}chatmessage' and index_name = 'idx_agentid'", $link); + $res = mysql_query("select null from information_schema.statistics where table_schema = '$mysqldb' and table_name = '${mysqlprefix}chatmessage' and index_name = 'idx_agentid'", $link); if ($res && mysql_num_rows($res) == 0) { runsql("ALTER TABLE ${mysqlprefix}chatmessage ADD INDEX idx_agentid (agentid)", $link); } From 978021097396fa3250d6d93702383fcc5505cd82 Mon Sep 17 00:00:00 2001 From: Evgeny Gryaznov Date: Thu, 21 Apr 2011 00:44:04 +0200 Subject: [PATCH 05/39] fix encoding in operators list --- src/messenger/webim/operator/update.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/messenger/webim/operator/update.php b/src/messenger/webim/operator/update.php index 066b5cc4..e6a9a3bc 100644 --- a/src/messenger/webim/operator/update.php +++ b/src/messenger/webim/operator/update.php @@ -152,6 +152,7 @@ function print_pending_threads($groupids, $since) function print_operators() { + global $webim_encoding; echo ""; $operators = operator_get_all(); @@ -159,7 +160,7 @@ function print_operators() if (!operator_is_online($operator)) continue; - $name = htmlspecialchars(htmlspecialchars($operator['vclocalename'])); + $name = myiconv($webim_encoding, "utf-8", htmlspecialchars(htmlspecialchars($operator['vclocalename']))); $away = operator_is_away($operator) ? " away=\"1\"" : ""; echo ""; From b7661d59577894e9ecabfd209a41b8cc1806ac0e Mon Sep 17 00:00:00 2001 From: Evgeny Gryaznov Date: Sun, 12 Jun 2011 13:57:10 +0200 Subject: [PATCH 06/39] update pl (by WebTower), hu, fr --- src/messenger/webim/locales/fr/properties | 2 + src/messenger/webim/locales/hu/properties | 25 +++-- src/messenger/webim/locales/pl/properties | 116 ++++++++++++++++++---- 3 files changed, 112 insertions(+), 31 deletions(-) diff --git a/src/messenger/webim/locales/fr/properties b/src/messenger/webim/locales/fr/properties index 8fedeba2..cda11694 100644 --- a/src/messenger/webim/locales/fr/properties +++ b/src/messenger/webim/locales/fr/properties @@ -11,6 +11,8 @@ app.title=Mibew Messenger ban.error.duplicate=L'adresse {0} est déjà utilisée, cliquez ici pour la modifier. button.delete=Supprimer button.enter=Entrer +button.offline=Hors ligne +button.online=En ligne button.save=Sauver button.search=Rechercher canned.actions.del=Supprimer diff --git a/src/messenger/webim/locales/hu/properties b/src/messenger/webim/locales/hu/properties index e97ffb2d..c40c235d 100644 --- a/src/messenger/webim/locales/hu/properties +++ b/src/messenger/webim/locales/hu/properties @@ -3,7 +3,7 @@ output_charset=utf-8 output_encoding=utf-8 admin.content.client_agents=Céges operátor létrehozása, törlése. Jogok kezelése. admin.content.client_gen_button=Gomb HTML kód létrehozása. -admin.content.client_settings=Opciók megadása amik az üzenetküldő ablakot és a rendszerbállításokat módosítják. +admin.content.client_settings=Opciók megadása amik az üzenetküldő ablakot és a rendszerbeállításokat módosítják. admin.content.description=Az oldal operátorai által elérhető funkciók. agent.not_logged_in=A munkamenet lejárt, jelentkezz be újra app.descr=A Mibew üzenetküldő egy nyílt forráskódú ügyfélszolgálati alkalmazás. @@ -12,7 +12,9 @@ ban.error.duplicate=A megadott cím már használatban van, kattintson vissza gombot, hogy visszatérjen a varázslóhoz. @@ -176,11 +181,12 @@ install.kill_tables=Meglévő táblák törlése az adatbázisból install.license=Szoftver licenc szerződés install.message=Kövesse az varászlót az adatbázis beállításához. install.next=Következő lépés: +install.no_file=A file hiányzik: {0} install.title=Installálás install.updatedb=Futtassa a Frissítés varázslót az adatbázis beállításához. installed.login_link=Tovább a bejelentkező oldalra installed.message=Az alkalmazás telepítése sikeresen befejeződött. -installed.notice=Bejelentkezhet admin felhasználónévvel, jelszó nélkül.

    !!! Biztonsági okokból kérem változtassa meg a jelszavát és távolítsa el a {0} mappát a szerverről. +installed.notice=Bejelentkezhet admin felhasználónévvel, jelszó nélkül.

    !!! Biztonsági okokból kérem változtassa meg a jelszavát és távolítsa el a {0} mappát a szerverről. lang.choose=Nyelv kiválasztása leavemail.body=Üzenete érkezett {0} -tól: {2} E-mail: {1} {3} --- Az oldalad üzenetküldője leavemail.subject=Kérdés {0} -tól @@ -232,7 +238,7 @@ page.analysis.userhistory.intro=Itt találja az ügyfelekkel folytatott beszélg page.analysis.userhistory.title=Előzmények page.chat.old_browser.close=Bezárás... page.chat.old_browser.list=
    • Internet Explorer 5.5+
    • Firefox 1.0+
    • Opera 8.0+
    • Mozilla 1.4+
    • Netscape 7.1+
    • Safari 1.2+

    További támogatott böngészők:

    • Internet Explorer 5.0
    • Opera 7.0
    -page.chat.old_browser.problem=

    A böngészője nem teljesen támogatott. \nKérem használja a következő böngészők egyikét: \n

    +page.chat.old_browser.problem=

    A böngészőjét nem teljesen támogatja a Mibew Messenger. \nKérem, használja a következő böngészők egyikét:

    page.chat.old_browser.title=Kérem frissítse a böngészőjét page.gen_button.choose_image=Kép kiválasztása page.gen_button.code.description=Figyelem! Kérem ne változtassa meg
    a kódot kézzel,
    mert nem tudjuk garantálni,
    hogy működni fog! @@ -281,9 +287,10 @@ page_agent.tab.main=Általános page_agent.tab.permissions=Jogok page_agent.title=Operátor tulajdonságai page_agents.agent_name=Név +page_agents.agents=Operátorok teljes listája: page_agents.isaway=Nincs a gép előtt page_agents.isonline=Elérhető -page_agents.login=Bejelentkezés +page_agents.login=Bejelentkezve page_agents.new_agent=Operátor hozzáadása... page_agents.status=Utoljára aktív page_agents.title=Operátorok @@ -341,7 +348,7 @@ presurvey.mail=E-mail: presurvey.name=Név: presurvey.question=Indító kérdés: presurvey.submit=Beszélgetés indítása -presurvey.title=Elő ügyfélszolgálat +presurvey.title=Élő ügyfélszolgálat report.bydate.1=Dátum report.bydate.2=Beszélgetések report.bydate.3=Üzenetek az operátoroktól @@ -350,7 +357,7 @@ report.bydate.title=Használati statisztika minden napra report.byoperator.1=Operátor report.byoperator.2=Beszélgetések report.byoperator.3=Üzenetek -report.byoperator.4=Átlagos üzenetek hossza (karakterben) +report.byoperator.4=Átlagos üzenetek hossza (karakter) report.byoperator.title=Operátorok szálai report.no_items=Nincs elég adat report.total=Összesen: @@ -386,7 +393,7 @@ settings.wrong.email=Adja meg az E-mail címet site.title=mibew.org site.url=http://mibew.org statistics.dates=Dátumok kiválasztása -statistics.description=Erről az oldalról lehet különböző használati statisztikákat készíteni. +statistics.description=Erről az oldalról különböző használati statisztikákat lehet készíteni. statistics.from=Ettől: statistics.till=Eddig: statistics.title=Statisztika diff --git a/src/messenger/webim/locales/pl/properties b/src/messenger/webim/locales/pl/properties index 9959d769..c94f645a 100644 --- a/src/messenger/webim/locales/pl/properties +++ b/src/messenger/webim/locales/pl/properties @@ -11,6 +11,12 @@ app.title=Mibew Komunikator ban.error.duplicate=Podane adresy są już używane, kliknij tutaj jeśli chcesz je edytować. button.delete=Usuń button.enter=Wprowadź +button.offline.bottom=Zostaw swoją wiadomość +button.offline.top=Strona konsultanta +button.offline=OFFLINE +button.online.bottom=Zadaj pytanie +button.online.top=Strona konsultanta +button.online=ONLINE button.save=Zapisz button.search=Szukaj canned.actions.del=usuń @@ -28,11 +34,13 @@ cannededit.no_such=Brak wiadomości cannededit.title=Edytuj Odpowiedź cannednew.descr=Dodaj nową odpowiedź. cannednew.title=Nowa Wiadomość +char.redirect.operator.away_suff=zaraz wracam char.redirect.operator.online_suff=(online) chat.came.from=Odwiedzający pochodził ze strony {0} chat.client.changename=Zmień nazwę chat.client.name=Twoje imię chat.client.spam.prefix=[spam]  +chat.client.visited.page=Odwiedzający przeszedł do {0} chat.default.username=Użytkownik chat.error_page.close=Zamknij... chat.error_page.head=Wystąpił Błąd: @@ -86,7 +94,7 @@ chat.window.toolbar.redirect_user=Przekieruj użytkownika do innego operatora chat.window.toolbar.refresh=Odśwież clients.how_to=Aby udzielić odpowiedzi danej osobie kliknij jego/jej nazwę użytkownika z poniższej listy. clients.intro=Strona zawiera listę osób oczekujących na kontakt. -clients.no_clients=Brak osób czekających na rozmowę z operatorem. +clients.no_clients=Lista osób oczekujących na kontakt jest pusta clients.queue.chat=Użytkownicy w trakcie rozmowy clients.queue.prio=Kolejka oczekujących użytkowników clients.queue.wait=Osoby oczekujące po raz pierwszy na rozmowę @@ -98,11 +106,12 @@ confirm.take.message=Użytkownik {0} jest już confirm.take.no=Nie, zamknij okno confirm.take.yes=Tak, Jestem tego pewny content.blocked=Tutaj możesz powstrzymać niechcianych użytkowników. -content.history=Przeszukaj historię rozmów +content.history=Przeszukaj historię rozmów. content.logoff=Wyloguj się z systemu. data.saved=Zmiany zapisane demo.chat.question=Istnieje wiele różnych przeglądarek internetowych. Którą możesz mi polecić? demo.chat.welcome=Witam, w czym mogę pomóc? +errors.captcha=Wpisane litery nie zgadzają się z literami, które były widoczne na obrazku. errors.failed.uploading.file=Błąd podczas przesyłania pliku "{0}": {1}. errors.file.move.error=Błąd przesuwania pliku errors.file.size.exceeded=Przekroczony rozmiar przesyłanego pliku @@ -135,10 +144,13 @@ form.field.groupcommonname.description=Nazwa w języku angielskim. form.field.groupcommonname=Międzynarodowa nazwa form.field.groupdesc.description=Opis grupy. form.field.groupdesc=Opis +form.field.groupemail.description=Grupa e-mail do powiadomień. Zostaw puste, aby użyć adresu domyślnego. form.field.groupname.description=Nazwa do identyfikacji grupy. form.field.groupname=Nazwa form.field.login.description=Login może zawierać małe litery
    oraz znak podkreślenia. form.field.login=Login +form.field.mail.description=W przypadku zgłoszeń i odzyskiwania hasła. +form.field.mail=E-mail form.field.message=Wiadomość form.field.name=Twoja nazwa form.field.password.description=Wprowadź nowe hasło lub pozostaw
    pole puste aby zatrzymać stare hasło. @@ -153,6 +165,9 @@ image.button.search=/locales/pl/images/search.gif image.chat.history=/locales/pl/images/history.gif image.chat.message=/locales/pl/images/message.gif image.chat.sprite=/locales/pl/images/wmchat.png +install.0.app=Ścieżka do aplikacji {0} +install.0.package=Pakiet Mibew jest ważny. +install.0.php=PHP w wersji {0} install.1.connected=Yesteś połączony do serwera bazy danych MySQL w wersji {0} install.2.create=Tworzenie bazy danych "{0}" install.2.db_exists=Baza danych "{0}" jest stworzona. @@ -161,7 +176,14 @@ install.3.create=Tworzenie wymaganych tabel. install.3.tables_exist=Wymagane tabele są stworzone. install.4.create=Aktualizuj tabele install.4.done=Struktura tabel została zaktualizowana. -install.4.notice=Struktura tabel powinna być dostosowana do nowej wersji Komunikatora. +install.4.notice=Struktura tabel powinna być dostosowana do nowej wersji Komunikatora. +install.5.newmessage=Nowa wiadomość +install.5.newvisitor=Nowy gość +install.5.text=Kliknij, aby sprawdzić dźwięk: {0} i {1} +install.bad_checksum=Suma kontrolna jest różna dla {0} +install.cannot_read=Nie można odczytać pliku {0} +install.check_files=Proszę o ponowne wgranie plików na serwer. +install.check_permissions=Niewystarczające uprawnienia do pliku {0} install.connection.error=Nie można połączyć, proszę sprawdzić ustawienia serwera w pliku config.php. Błąd: {0} install.done=Zakończono: install.err.back=Rozwiąż problem i spróbuj ponownie. Kliknij przycisk cofnij aby powrócić do kreatora. @@ -169,8 +191,10 @@ install.err.title=Problem install.kill_tables.notice=Brak możliwości dokonania aktualizacji struktury tabel. Spróbuj zrobić to ręcznie lub odtworzyć tabele (Uwaga: wszystkie dane zostaną utracone). install.kill_tables=Usuń istniejące tabele z bazy danych install.license=Akceptacja warunków licencji -install.message=Podążaj za kreatorem aby skonfigurować bazę danych. +install.message=Podążaj za kreatorem aby skonfigurować bazę danych. +install.newfeatures=Gratulacje! Właśnie zainstalowałeś Mibew Komunikator {1}. Włącz więcej funkcji na stronie Opcjonalne usługi. install.next=Następny krok: +install.no_file=Plik nie istnieje: {0} install.title=Instalacja install.updatedb=Uruchom proszę, Kreatora aktualizacji aby ustawić swoją bazę danych. installed.login_link=Przejdź do strony logowania @@ -188,10 +212,11 @@ leavemessage.title=Zostaw swoją wiadomość leftMenu.client_agents=Konsultanci leftMenu.client_gen_button=Kod przycisku leftMenu.client_settings=Ustawienia +license.title=Licencja localedirection=ltr localeid=Polski (pl) mail.user.history.body=Witaj, {0}!\n\nTwoja historia rozmowy: \n\n{1}\n--- \nPozdrawiamy,\nMibew Komunikator -mail.user.history.subject=Komunikator: historia rozmowy +mail.user.history.subject=Mibew Komunikator: okno historii mailthread.close=Zamknij... mailthread.enter_email=Wprowadź swój adres email: mailthread.perform=Wyślij @@ -199,12 +224,13 @@ mailthread.title=Wyślij historię rozmowy
    na adres email menu.agents=Lista przedstawicieli menu.blocked=Zablokowani użytkownicy menu.canned=Szablony Odpowiedzi +menu.goonline=Jesteś w trybie offline.
    Połącz... menu.groups.content=Wydział lub specyficzne umiejętności operatorów grupy. menu.groups=Grupy menu.locale.content=Zmień język. menu.locale=Język menu.main=Strona główna -menu.operator=Jesteś zalogowany jako: {0} +menu.operator=Jesteś zalogowany jako {0} menu.profile.content=Na tej stronie możesz zmienić informacje o sobie. menu.profile=Profil menu.translate=Tłumaczenia @@ -226,17 +252,18 @@ page.analysis.userhistory.intro=Tutaj możesz znaleźć historię rozmów swoich page.analysis.userhistory.title=Historia użytkowników page.chat.old_browser.close=Zamknij... page.chat.old_browser.list=
      \n
    • Internet Explorer 5.5+
    • \n
    • Firefox 1.0+
    • \n
    • Opera 8.0+
    • \n
    • Mozilla 1.4+
    • \n
    • Netscape 7.1+
    • \n
    • Safari 1.2+
    • \n
    \n

    Wspieramy również starsze przeglądarki:

    \n
      \n
    • Internet Explorer 5.0
    • \n
    • Opera 7.0
    • \n
    -page.chat.old_browser.problem=

    Twoja przeglądarka internetowa nie jest w pełni wspierana przez Web Komunikator. \nProsimy użyć jednej z poniższych przeglądarek:

    +page.chat.old_browser.problem=

    Twoja przeglądarka internetowa nie jest w pełni wspierana przez Mibew Komunikator. \nProsimy użyć jednej z poniższych przeglądarek:

    page.chat.old_browser.title=Prosimy użyć nowszej przeglądarki page.gen_button.choose_group=Kod dla grupy page.gen_button.choose_image=Wybierz zdjęcie page.gen_button.choose_locale=Wybierz język page.gen_button.choose_style=Styl okna rozmowy -page.gen_button.code.description=Uwaga! Prosimy nie zmieniać
    kodu ręcznie ponieważ
    nie gwarantujemy wtedy, że
    przycisk będzie działać. +page.gen_button.code.description=Uwaga! Prosimy nie zmieniać
    kodu ręcznie ponieważ
    nie gwarantujemy wtedy, że
    przycisk będzie działać page.gen_button.code=Kod HTML page.gen_button.default_group=-wszyscy operatorzy- page.gen_button.include_site_name=Dołącz nazwę serwera do kodu page.gen_button.intro=Tutaj możesz wygenerować a następnie wstawić przycisk na swoją stronę. +page.gen_button.modsecurity=Zgodność z mod_security (modsecurity.org), włącz tylko wtedy, gdy masz nim problemy page.gen_button.sample=Przykład page.gen_button.secure_links=Użyj bezpiecznego połączenia (https) page.gen_button.title=Generowanie kodu przycisku HTML @@ -248,7 +275,10 @@ page.group.no_such=Brak grup page.group.title=Szczegóły grupy page.groupmembers.intro=Pokaż i edytuj listę członków. page.groupmembers.title=Członkowie +page.groups.confirm=Czy na pewno chcesz usunąć grupę "{0}"? page.groups.intro=Ta strona zawiera listę grup/wydziałów w Twojej firmie. Każda grupa może posiadać oddzielny przycisk i szablony odpowiedzi. +page.groups.isaway=Nieobecny +page.groups.isonline=Online page.groups.new=Stwórz nową grupę... page.groups.title=Grupy page.preview.agentchat=Okno rozmowy (tryb przedstawiciela) @@ -256,7 +286,8 @@ page.preview.agentrochat=Pokaż Okno Rozmowy (tryb przedstawiciela tylko do odcz page.preview.chatsimple=Proste okno rozmowy, odśwież aby wysłać wiadomości (IE 5, Opera 7) page.preview.choose=Wybierz styl page.preview.choosetpl=Wybierz szablon -page.preview.intro=Możesz przeglądać style dla swojej strony +page.preview.error=Okno błędu +page.preview.intro=Tutaj, możesz przejrzeć listę styli, które są aktualnie zainstalowane. page.preview.leavemessage=Opuść okno wiadomości page.preview.leavemessagesent=Okno "Wiadomość została dostarczona" page.preview.mail=Okno wiadomości email @@ -275,7 +306,7 @@ page.translate.one=Wprowadź swoje tłumaczenie. page.translate.title=Kreator ustawień językowych page_agent.cannot_modify=Nie masz uprawnień do zmiany profilu tej osoby. page_agent.clear_avatar=Usuń avatar -page_agent.create_new=Tutaj możesz stworzyć nowego operatora +page_agent.create_new=Tutaj możesz stworzyć nowego operatora. page_agent.error.duplicate_login=Wybierz inny login, ponieważ podana nazwa jest już zarejestrowany w systemie. page_agent.error.wrong_login=Login powinien zawierać wyłącznie znaki alfanumeryczne oraz symbol podkreślenia. page_agent.intro=Na tej stronie znajdują się szczegóły przedstawiciela, możesz tutaj dokonać edycji uprawnień. @@ -285,11 +316,15 @@ page_agent.tab.main=Ogólne page_agent.tab.permissions=Uprawnienia page_agent.title=Szczegóły operatora page_agents.agent_name=Nazwa -page_agents.agents=Pełna lista przedstawicieli: -page_agents.intro=Ta strona zawiera listę przedstawicieli firmy, jeli masz odpowiednie uprawnienia możesz również dodawać nowych przedstawicieli +page_agents.agents=Pełna lista operatorów: +page_agents.confirm=Czy na pewno chcesz usunąć operatora "{0}"? +page_agents.intro=Ta strona wyświetla listę operatorów firmy. +page_agents.isaway=Nieobecny +page_agents.isonline=Online page_agents.login=Login -page_agents.new_agent=Dodaj nowego przedstawiciela... -page_agents.title=Przedstawiciele +page_agents.new_agent=Dodaj nowego operatora... +page_agents.status=Ostatnio aktywny +page_agents.title=Operatorzy page_analysis.full.text.search=Nazwa użytkownika lub tekst szukanej wiadomości: page_analysis.search.title=Historia rozmowy page_avatar.intro=Możesz przesłać zdjęcie wyłącznie w formatach JPG, GIF, PNG lub TIF. @@ -299,6 +334,7 @@ page_ban.sent=Adres {0} jest zablokowany na wybraną liczbę dni. page_ban.thread=Otwarłeś to okno dla wątku "{0}", pole Adresu jest już wypełnione. Wybierz liczbę dni a następnie kliknij przycisk Wyślij. page_ban.title=Zablokuj Adres page_bans.add=Dodaj Adres +page_bans.confirm=Czy na pewno chcesz usunąć adres {0} z listy zablokowanych? page_bans.list=Lista zablokowanych adresów IP: page_bans.title=Zablokowany page_bans.to=Do @@ -312,13 +348,16 @@ page_login.password=Hasło: page_login.remember=Zapamiętaj page_login.title=Login page_search.intro=Przeszukaj historię rozmowy podając specyficzną nazwę użytkownika lub frazę treści wiadomości. -page_settings.intro=Dostosuj opcje dotyczące okna rozmowy oraz wspólnych zachowań systemu +page_settings.intro=Dostosuj opcje dotyczące okna rozmowy oraz wspólnych zachowań systemu. page_settings.tab.features=Opcjonalne Składniki -page_settings.tab.main=Ogólne Ustawienia Wyglądu +page_settings.tab.main=Ogólne +page_settings.tab.performance=Wydajność page_settings.tab.themes=Podgląd pending.menu.hide=Ukryj menu >> pending.menu.show=Pokaż menu >> pending.popup_notification=Aktualnie nikt nie oczekuje na rozmowę. +pending.status.setaway=Ustaw status "Nieobecny" +pending.status.setonline=Ustaw status "Dostępny" pending.table.ban=Zablokuj użytkownika pending.table.head.contactid=Adres użytkownika pending.table.head.etc=Różne @@ -330,9 +369,10 @@ pending.table.head.waittime=Czas oczekiwania pending.table.speak=Kliknij aby rozpocząć rozmowę z użytkownikiem pending.table.view=Oglądaj rozmowę permission.admin=Administracja systemowa: ustawienia, zarządzanie operatorami, tworzenie przycisków +permission.modifyprofile=Możliwość modyfikacji profilu permission.takeover=Przejmij ten wątek rozmowy permission.viewthreads=Pokaż wątek rozmowy kolejnego operatora -permissions.intro=Tutaj możesz kontrolować uprawnienia operatora +permissions.intro=Zmiana uprawnień i funkcji dostępnych dla tego operatora. permissions.title=Uprawnienia presurvey.department=Wybierz Wydział: presurvey.intro=Dziękujemy za kontakt! Aby lepiej Tobie pomóc w rozwiązaniu problemu wypełnij poniższy formularz i kliknij przycisk Rozpocznij Rozmowę. @@ -353,6 +393,22 @@ report.byoperator.4=Średnia długość wiadomości (w znakach) report.byoperator.title=Wątki przez operatora report.no_items=Brak wystarczających danych report.total=Razem: +resetpwd.changed.title=Twoje hasło zostało zmienione! +resetpwd.changed=Zaloguj się używając nowego hasła. +resetpwd.intro=Wybierz hasło do korzystania z konta w Mibew. +resetpwd.login=Przejdź do logowania +resetpwd.submit=Zmień +resetpwd.title=Zmień hasło w Mibew +restore.back_to_login=Wróć do strony logowania +restore.emailorlogin=Login lub adres e-mail: +restore.intro=Nie można odzyskać hasła, ale możesz ustawić nowe, poprzez link przesłany przez e-mail. +restore.mailsubj=Resetowanie hasła w Mibew +restore.mailtext=Witam {0}, Proszę kliknąć na poniższy link lub skopiować i wkleić adres URL do przeglądarki: {1} To pozwoli Ci wybrać inne hasło. Komunikator Mibew. +restore.pwd.message=Nie pamiętasz hasła? +restore.sent.title=Odzyskiwanie hasła +restore.sent=Wysłaliśmy instrukcje na e-mail. Proszę, sprawdź! +restore.submit=Resetuj hasło +restore.title=Problemy z dostępem do konta? right.administration=Administracja right.main=Główne right.other=Inne @@ -375,22 +431,34 @@ settings.enablessl=Pozwól na bezpieczne połączenia (SSL) settings.enablestatistics.description=Dodatkowa strona z użytecznymi raportami. settings.enablestatistics=Włącz "Statystyki" settings.forcessl.description=Pokazuj rozmowę wyłącznie przez połączenie https -settings.forcessl=Wymuś aby wszystkie rozmowy przebiegały po bezpiecznym protokole szyfrowanym SSL. +settings.forcessl=Wymuś aby wszystkie rozmowy przebiegały po bezpiecznym protokole szyfrowanym SSL +settings.frequencychat.description=Określ interwał odświeżania w sekundach. Domyślnie jest to 2 sekundy. +settings.frequencychat=Odświeżanie Chata +settings.frequencyoldchat.description=Stare przeglądarki wymagają odświeżania całej strony, aby pobrać wiadomości. Domyślnie jest to 7 sekund. +settings.frequencyoldchat=Czas odswieżania strony dla starych przeglądarek +settings.frequencyoperator.description=Określa interwał sondowania w sekundach. Domyślnie jest to 2 sekundy. +settings.frequencyoperator=Czas odświeżania konsoli operatora settings.geolink.description=Każdy adres IP jest odnośnikiem i otwiera kolejne okno po kliknięciu. {ip} jest zastępowany prawdziwym adresem IP. settings.geolink=Odnośnik do zewnętrznych usług geolokacji settings.geolinkparams.description=Rozmiar okna oraz ukrywanie paska narzędzi settings.geolinkparams=Opcje okna geolokacji settings.host.description=Docelowa ścieżka twojej strony firmowej settings.host=Adres URL twojej strony internetowej +settings.leavemessage_captcha.description=Ochrona przed spamu (captcha) +settings.leavemessage_captcha=Wymuś na Gościach, aby wprowadzić kod weryfikacyjny przy wysyłaniu wiadomości settings.logo.description=Wprowadź adres z http dla loga twojej firmy settings.logo=Logo twojej firmy settings.no.title=Wprowadź nazwę swojej firmy settings.onehostconnections.description=0 - pozwól na dowolną liczbę połączeń settings.onehostconnections=Maksymalna liczbą wątków z jednego adresu +settings.onlinetimeout.description=Ustawia liczbę sekund, aby pokazać operatora online. Domyślnie jest to 30 sekund. +settings.onlinetimeout=Próg czasu dla pokazania operatora online settings.popup_notification.description=Małe pojawiające się okienko do zwrócenia Twojej uwagi. -settings.popup_notification=Włącz powiadomienie wyskakującym okienkiem popup podczas pojawienia się nowego użytkownika oczekującego na rozmowę +settings.popup_notification=Włącz powiadomienie wyskakującym okienkiem popup podczas pojawienia się nowego użytkownika oczekującego na rozmowę. settings.saved=Zmiany zostały zapisane settings.sendmessagekey=Wysyłaj wiadomości za pomocą: +settings.show_online_operators.description=Może spowolnić tempo aktualizacji listy +settings.show_online_operators=Pokaż operatorów online na stronie "Lista oczekujących gości" settings.survey.askgroup.description=Pokaż/ukryj pole wyboru wydziału w ankiecie settings.survey.askgroup=Pozwól użytkownikowi wybrać wydział/grupę settings.survey.askmail.description=Pokaż/ukryj pole wprowadzenia adresu email w ankiecie @@ -398,7 +466,7 @@ settings.survey.askmail=Poproś użytkownika o e-mail settings.survey.askmessage.description=Pokaż/ukryj pole wstępnego pytania w ankiecie settings.survey.askmessage=Pokaż pole wstępnego pytania settings.title=Ustawienia komunikatora -settings.usercanchangename.description=Odznacz aby ukryć pole pozwalające zmienić nazwę użytkownika w oknie wiadomości. +settings.usercanchangename.description=Odznacz aby ukryć pole pozwalające zmienić nazwę użytkownika w oknie wiadomości settings.usercanchangename=Pozwalaj użytkownikom zmieniać swoje nazwy settings.usernamepattern.description=Jak identyfikować nazwy użytkowników? Po {name}, {id} lub {addr}. Domyślnie: {name} settings.usernamepattern=Identyfikator użytkowników @@ -415,13 +483,17 @@ statistics.wrong.dates=Wybrałeś datę Od występującą później niż data Do tag.pagination.info=Strona {0} do {1}, {2}-{3} z {4} tag.pagination.next=następne tag.pagination.no_items.elements=Brak elementów -tag.pagination.no_items=Znalezionych elementów: 0 +tag.pagination.no_items=Znalezionych elementów 0 tag.pagination.previous=poprzednie thread.back_to_search=Przyjedź do wyszukiwania thread.chat_log=Logi rozmowy -thread.intro=Strona wyświetla rozmowę +thread.intro=Strona wyświetla szczegóły rozmowy i treść. +time.dateformat=%B %d, %Y time.locale=pl_PL +time.never=Nigdy time.timeformat=%H:%M +time.today.at=Dzisiaj o +time.yesterday.at=Wczoraj o topMenu.admin=Administracja topMenu.logoff=Wyloguj się topMenu.main=Strona główna From 14d42d71b298f7e99af1c09cbd97496ed4aeda0e Mon Sep 17 00:00:00 2001 From: Evgeny Gryaznov Date: Sat, 17 Sep 2011 23:34:33 +0200 Subject: [PATCH 07/39] update Belarusian (by Berasneu) --- src/messenger/.idea/encodings.xml | 1 + .../webim/locales/be/button/mblue_off.gif | Bin 0 -> 7564 bytes .../webim/locales/be/button/mblue_on.gif | Bin 0 -> 8628 bytes .../webim/locales/be/button/mgreen_off.gif | Bin 0 -> 7291 bytes .../webim/locales/be/button/mgreen_on.gif | Bin 0 -> 10186 bytes .../webim/locales/be/button/simple_off.gif | Bin 0 -> 4509 bytes .../webim/locales/be/button/simple_on.gif | Bin 0 -> 3717 bytes .../webim/locales/be/button/webim_off.gif | Bin 0 -> 4686 bytes .../webim/locales/be/button/webim_on.gif | Bin 0 -> 4636 bytes .../webim/locales/be/images/history.gif | Bin 0 -> 297 bytes .../webim/locales/be/images/login.gif | Bin 0 -> 2114 bytes .../webim/locales/be/images/message.gif | Bin 0 -> 331 bytes .../webim/locales/be/images/save.gif | Bin 0 -> 2163 bytes .../webim/locales/be/images/search.gif | Bin 0 -> 2111 bytes .../webim/locales/be/images/wmchat.png | Bin 0 -> 3979 bytes src/messenger/webim/locales/be/properties | 510 ++++++++++++++++++ src/messenger/webim/locales/names/properties | 2 + 17 files changed, 513 insertions(+) create mode 100644 src/messenger/webim/locales/be/button/mblue_off.gif create mode 100644 src/messenger/webim/locales/be/button/mblue_on.gif create mode 100644 src/messenger/webim/locales/be/button/mgreen_off.gif create mode 100644 src/messenger/webim/locales/be/button/mgreen_on.gif create mode 100644 src/messenger/webim/locales/be/button/simple_off.gif create mode 100644 src/messenger/webim/locales/be/button/simple_on.gif create mode 100644 src/messenger/webim/locales/be/button/webim_off.gif create mode 100644 src/messenger/webim/locales/be/button/webim_on.gif create mode 100644 src/messenger/webim/locales/be/images/history.gif create mode 100644 src/messenger/webim/locales/be/images/login.gif create mode 100644 src/messenger/webim/locales/be/images/message.gif create mode 100644 src/messenger/webim/locales/be/images/save.gif create mode 100644 src/messenger/webim/locales/be/images/search.gif create mode 100644 src/messenger/webim/locales/be/images/wmchat.png create mode 100644 src/messenger/webim/locales/be/properties diff --git a/src/messenger/.idea/encodings.xml b/src/messenger/.idea/encodings.xml index c37dcf8f..55374710 100644 --- a/src/messenger/.idea/encodings.xml +++ b/src/messenger/.idea/encodings.xml @@ -2,6 +2,7 @@ + diff --git a/src/messenger/webim/locales/be/button/mblue_off.gif b/src/messenger/webim/locales/be/button/mblue_off.gif new file mode 100644 index 0000000000000000000000000000000000000000..0cbc773c6bccd78d83c289f2c16006c81ea328fe GIT binary patch literal 7564 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 literal 0 HcmV?d00001 diff --git a/src/messenger/webim/locales/be/button/mgreen_on.gif b/src/messenger/webim/locales/be/button/mgreen_on.gif new file mode 100644 index 0000000000000000000000000000000000000000..c30d7256ab688a6c4692050b434e875058a2b773 GIT binary patch literal 10186 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 literal 0 HcmV?d00001 diff --git a/src/messenger/webim/locales/be/button/webim_on.gif b/src/messenger/webim/locales/be/button/webim_on.gif new file mode 100644 index 0000000000000000000000000000000000000000..73f2618a35a3829845b0e1a1d444e96faf8ca875 GIT binary patch literal 4636 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 literal 0 HcmV?d00001 diff --git a/src/messenger/webim/locales/be/images/history.gif b/src/messenger/webim/locales/be/images/history.gif new file mode 100644 index 0000000000000000000000000000000000000000..0423cb3a2b9b42609a00515f63f6b1cbe9bb5b3b GIT binary patch literal 297 zcmZ?wbhEHb6k!Np*v!eWef#!Jn>H<5w(RfUzvs@KJA3x*hYuhA|Np;a$r1)^K=CIF zBLf2`gAPa%WCjDvwSpxfO%4{>Hj^2nSClTu@M~G=*I1=CUD|Jx$MxHLWozcEFJgAH zU~cO;GQYDup|590k6zb|w5omTpp4}+6A#ZWEta!g zzkY6Rv`k)MLxOvCdr5dzPhXdH(S-b#3hk*mz0TRQrs=0oZ)#jHvpl|RMrZSan$>Y_ z>!QP)>U(FpcI$06-EFkFe#N5leN&GdI=bt`!luI~kDsqQQ0sdj{_N>Zc~`I9x_a5- k`uvMqC*Qum=ajx-h|U>K&6}L6Q{+Cs5E2o4A;@420N@pb5dZ)H literal 0 HcmV?d00001 diff --git a/src/messenger/webim/locales/be/images/login.gif b/src/messenger/webim/locales/be/images/login.gif new file mode 100644 index 0000000000000000000000000000000000000000..72673b2e5b3750febd16a66ad4aff40012457aeb GIT binary patch literal 2114 zcmV-I2)*}5Nk%w1VQv5;0Oo%HId!>Hoa91`(^RM6d3kwcn9N0n#b>qlHGsv6ii*R- z!%LIhC2F;%rlys)**rWv%*@Qn+3H!N=}@BGti|B%@%287&6=8;I)%vq003%gYSGcr z-rnB6zP`A)xVE;oTU%S!;_peB)~u|oFK)Kl+S+5U^6KvMA!oBGaJn#gz~kfNm6er7 zmed|&u&Jr3va+%c4h~P4;4OB(@$~pQeZafByES~qTaCpyg2^&`!hC#u;NajTY`0FI z+FYpYDssC*kkEH`cQ<{>)YQ~4cEL+9?3 z>FMa`=;r3;=jZ3-`R;1M3d4hbG%EO*jJ(FSF7V#rsiO) z@IZgSNR`-6pWIBC+xYnS^z`)g_4WGt`uqF){QUfvmzV$l{{R30A^8LW004ggEC2ui z0B!&y000O7fPaF6goTEOh>41ejE#3uX%`o1BOe`*oSmMZh#w6d8$4NfSYJFF zHVq%3u(7g)9wQrIdAU=&Q+K^x8zUaG#Knzh5M8->S695dchPrM5NO8N*nbKm9Lsqp z5e@}4H3be46?ay8dK@DP+3~R>W_Ycg;Mw_Iup z=s*Akfkh}fRQOwRBt$_D4MU0?NwTELlPFV;#Db?~%Uls^=n!B51CyH=av+$PV~Laq zT+W=~LX_xGE_{$8<-=!BQ>J^OMlGmLkCm%ft?aVms~0q1S8_EAn+KIQmsrv+Lsg{; zDuyoqU*=I$1A!eROe_T1YoTV2nNLzk2_ZBoQKpBVa&aoPalxqttwvjiHQE$szL-r} zo6BAUH!VQh*ghV?g=mcTor?&0dOaeS%aD+zEp@x?-9qzQLQ$2gE zPR)ANmpZV{E@$S9%5z)LY};zrKDsUH)uAbhXeRAzyv;|=LZG?yb-_+C`90gaK!O}Tyi#KU;{fl z#IS{Acd(kb}Vc7X>iCEx*R zW+XsB19==t8UaLT!NLdLHR>dk*hUFu7hhbu%oPQw@P-NM-8Mm~elURns!^bT1B}BV zb|0K_UXa0!8GxWc6HQ#@l}lWZ~^HHK_0dx#iln25tzTx&R6!9LA=7kja_^2(dJ4FpjNPu$6Vb+EL0%k7Y0trw( z)mU-`SrO;G0A^r!zE{`~LlX}eokzh97fb}ji+WLTqZz+$85Ly(CGmh)15e>W1`srS1s(+p-9!v! zM4UkaN=jVt)QNWibr+UXu64*@Y+eW-#42+$S{uz(62$X^pc@C6O%@BtYBgAt*3!77F!3}VP)7Q;XW zGF;Cq6_`U2Wbgw!V4yE4^MeweAcNhgh-Pq0&K~lVqbmSNgUujRffQA^Y(WWYSldDd zEEm1YSulE6+~O9*(8Vlv(TjZmkTmWbxdQFgMlHhc*QMXQ4Cic0~xePhB1_(47wZxL%Q;x6C7a)PY3`8bWo9t zWMl?FP{9Ij-~t@b;5d+R6LYLEmg!KaEC=dN75q50CpoWqg|r|o#V`h4_Hqo49D^Bv zDbF&PL70)8WHi(ug$@c}2K(s8KY-AK91H;k3nj`KcJ?nr~oAk=|O;~+>ysGL#* zq}ITI%gAAo42g_qJ4Y(dd9GjuW|(IghN;hJL_i7*xPb~%&;}sbGzClO0T5isfCv=l zRr-mWbN1w!AdRLp32GF!UYP}rePME0xF9VPInsO9)1LO9G{XvhdD5+(bR=ltKvmRm z1Qhh(tY>8a15m)$YATc|AW?~2=StVQhQtsfAVWbaKmh=-^{*}nEC2?A7%?D3A&7Ov zHaPH@3WNg(Bp?9}&f%Nk@ZcSZ&FnECP=(0QuyygmLNzo?T1M1j15{u~yyB&WU<{+Q suvLU8NU;JcsKX0o*gywd5!>D_LK2j)1ST}$+u|DcxX4W|ECK-lI}UQcZvX%Q literal 0 HcmV?d00001 diff --git a/src/messenger/webim/locales/be/images/message.gif b/src/messenger/webim/locales/be/images/message.gif new file mode 100644 index 0000000000000000000000000000000000000000..087cec83dde03fa18e0585cb0e988259d968321d GIT binary patch literal 331 zcmZ?wbhEHb6k!Nu*v!RnYo-77MNZ$}+837pJOSoTB>dNc;c)|1V5ZWWWH5 zKUo+V7`Pa8Kr$dR7+8Kx&@gTCw8*xZ$`HMxbU}t+`%1sYDy`PeJw`_DlQZ7$5PEmO z*N<7JuSV~pfu@U5|M@iC!sdS~W@sJvJW^$R`kn7=4&lm68Z)Zj?mTgO`=q}n>Alx@ zZSKcjTaqH$t4TsFUaVe zHQQ%Rn`_FZ+O<_STjng^xO-Yx{Pv`khnC0fvO2zO&%9Nh{d)aN7M)zWYQ@3zlV;qS zbz%SQvojB03BPu9^^wO(kM3rrZGQW~=kxiT?v@`%Kb}~3U*B+#W`?3cs{^Ylm+y}c XevK?#VlPT(cx+sBv|C)6fx#L8fMc0V literal 0 HcmV?d00001 diff --git a/src/messenger/webim/locales/be/images/save.gif b/src/messenger/webim/locales/be/images/save.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e9fe4c28d62413c32a284c7a1d0d2e09287ed78 GIT binary patch literal 2163 zcmV-(2#ohfNk%w1VQv5;0Oo%Ht*x!X!othT%gWj6;^N}AwzlQvGJL|?+S+`4 zd}y`yC2Y4vl+!IOEklseOPknSsO&0oyjP*T`1kks`T6gww5 z?(XR5=Few3=jZ4C{{B>_;M3piD|5VQxcFG6=0JbHTd?L}tMEX6 zz)YCiNR`;{^Y%}l-1PMH_4W1o`uh9(`~3X;mzS3S00960{{R30A^8LW004ggEC2ui z0B!&y000O7fPaF6goTEOh>41ejE#*na^4BFlIx z0~8K7Hx3j799CF)c_IJ-+3~Re26wqC8dOd${7yM+G303Az%CCOYw{8@;={0Ew_Ix+ z@R&fcA`ch-o-8p@P(;IzAVZ2ANwTELlOeas>_3=s#Pqzu=wf)%~zIO&A#G6<&EW*v&&F%;ev`G z%a(Zm*4&sdhslE$cyIdIup_3F7*$LFJt|ab;ig}hLS0-iYC)>e)>(~q#hEW=SJLLP zmrEtf&0Dyf<mi z`cmiBS>?-`QE^`DS?${E*F�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 literal 0 HcmV?d00001 diff --git a/src/messenger/webim/locales/be/properties b/src/messenger/webim/locales/be/properties new file mode 100644 index 00000000..63a9d848 --- /dev/null +++ b/src/messenger/webim/locales/be/properties @@ -0,0 +1,510 @@ +encoding=cp1251 +output_charset=utf-8 +output_encoding=utf-8 +admin.content.client_agents=, . ʳ . +admin.content.client_gen_button= HTML- " ". +admin.content.client_settings= , - . +admin.content.description= , . +agent.not_logged_in= , , , +app.descr=̳ - . +app.title=̳ +ban.error.duplicate= , , . +button.delete= +button.enter= +button.offline.bottom= +button.offline.top= +button.offline=OFFLINE +button.online.bottom= +button.online.top= +button.online=ONLINE +button.save= +button.search= +canned.actions.del= +canned.actions.edit= +canned.actions= +canned.add= .. +canned.descr= , . +canned.group= : +canned.locale= : +canned.title= +cannededit.descr= . +cannededit.done= +cannededit.message= +cannededit.no_such=, , +cannededit.title= +cannednew.descr= . +cannednew.title= +char.redirect.operator.away_suff=() +char.redirect.operator.online_suff=() +chat.came.from= {0} +chat.client.changename= +chat.client.name= +chat.client.spam.prefix=[]  +chat.client.visited.page= {0} +chat.default.username= +chat.error_page.close=... +chat.error_page.head= : +chat.error_page.title= +chat.mailthread.sent.close=... +chat.mailthread.sent.closewindow= +chat.mailthread.sent.content=ó {0} +chat.mailthread.sent.title= +chat.predefined_answers= ! ?\n , .\n , ..\n, ! +chat.redirect.back=... +chat.redirect.cannot= . +chat.redirect.choose=: +chat.redirect.group=: +chat.redirect.operator=: +chat.redirect.title=
    +chat.redirected.close=... +chat.redirected.closewindow= +chat.redirected.content= {0}. +chat.redirected.group.content= {0}. +chat.redirected.title= +chat.status.operator.changed= {0} {1} +chat.status.operator.dead= , . . +chat.status.operator.joined= {0} +chat.status.operator.left= {0} +chat.status.operator.redirect= {0} , , +chat.status.operator.returned= {0} +chat.status.user.changedname= {0} {1} +chat.status.user.dead= +chat.status.user.left= {0} +chat.status.user.reopenedthread= +chat.thread.state_chatting_with_agent= +chat.thread.state_closed= +chat.thread.state_loading= +chat.thread.state_wait= +chat.thread.state_wait_for_another_agent= +chat.visitor.email=E-Mail: {0} +chat.visitor.info= : {0} +chat.wait= , , .. +chat.window.chatting_with= : +chat.window.close_title= +chat.window.poweredby=: +chat.window.poweredreftext=mibew.org +chat.window.predefined.select_answer= ... +chat.window.product_name=Mibew +chat.window.send_message= +chat.window.send_message_short= ({0}) +chat.window.title.agent=Mibew +chat.window.title.user=Mibew +chat.window.toolbar.mail_history= +chat.window.toolbar.redirect_user= +chat.window.toolbar.refresh= +clients.how_to= . +clients.intro= , . +clients.no_clients= , , +clients.queue.chat= +clients.queue.prio= +clients.queue.wait= +clients.title= , +common.asterisk_explanation=* - , +company.title=Mibew Messenger Community +confirm.take.head= +confirm.take.message= {0} {1}.
    ? +confirm.take.no=, +confirm.take.yes=, +content.blocked= . +content.history= . +content.logoff= . +data.saved= +demo.chat.question= , , ? +demo.chat.welcome= ! ? +errors.captcha= . +errors.failed.uploading.file= "{0}": {1}. +errors.file.move.error= +errors.file.size.exceeded= +errors.footer= +errors.header= :
    From b84b439358a781cc11025e0c88ea1db8327360a2 Mon Sep 17 00:00:00 2001 From: YuFei Zhu Date: Mon, 30 Apr 2012 16:41:55 +0100 Subject: [PATCH 26/39] having token checks on POST forms --- src/messenger/webim/libs/common.php | 22 ++++++++++++++++++- .../webim/libs/operator_settings.php | 2 +- src/messenger/webim/operator/cannededit.php | 4 +++- src/messenger/webim/operator/operator.php | 2 ++ src/messenger/webim/operator/settings.php | 4 +++- src/messenger/webim/view/agent.php | 6 ++++- src/messenger/webim/view/cannededit.php | 6 ++++- src/messenger/webim/view/settings.php | 5 ++++- 8 files changed, 44 insertions(+), 7 deletions(-) diff --git a/src/messenger/webim/libs/common.php b/src/messenger/webim/libs/common.php index 33070f91..4c934032 100644 --- a/src/messenger/webim/libs/common.php +++ b/src/messenger/webim/libs/common.php @@ -688,4 +688,24 @@ function jspath() return "js/$jsver"; } -?> \ No newline at end of file +/* authorization token check for CSRF attack */ +function csrfchecktoken(){ + if(!isset($_SESSION['csrf_token'])){ + $_SESSION['csrf_token']=sha1(rand(10000000,99999999)); + } + // check the turing code + if ($_SERVER['REQUEST_METHOD'] == 'POST'){ + //if token match + if(!isset($_POST['csrf_token']) || ($_POST['csrf_token'] != $_SESSION['csrf_token'])){ + + die("CSRF failure"); + } + } +} + +/* print csrf token as a hidden field*/ +function print_csrf_token_input(){ + echo ""; +} + +?> diff --git a/src/messenger/webim/libs/operator_settings.php b/src/messenger/webim/libs/operator_settings.php index edf112d7..252f508c 100644 --- a/src/messenger/webim/libs/operator_settings.php +++ b/src/messenger/webim/libs/operator_settings.php @@ -44,4 +44,4 @@ function setup_operator_settings_tabs($opId, $active) } } -?> \ No newline at end of file +?> diff --git a/src/messenger/webim/operator/cannededit.php b/src/messenger/webim/operator/cannededit.php index 6d208aff..e375ac3b 100644 --- a/src/messenger/webim/operator/cannededit.php +++ b/src/messenger/webim/operator/cannededit.php @@ -23,6 +23,8 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); require_once('../libs/pagination.php'); +csrfchecktoken(); + function load_message($key) { global $mysqlprefix; @@ -101,4 +103,4 @@ prepare_menu($operator, false); start_html_output(); require('../view/cannededit.php'); exit; -?> \ No newline at end of file +?> diff --git a/src/messenger/webim/operator/operator.php b/src/messenger/webim/operator/operator.php index 1304fcd3..693b61df 100644 --- a/src/messenger/webim/operator/operator.php +++ b/src/messenger/webim/operator/operator.php @@ -23,6 +23,8 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); require_once('../libs/operator_settings.php'); +csrfchecktoken(); + $operator = check_login(); $page = array('opid' => ''); diff --git a/src/messenger/webim/operator/settings.php b/src/messenger/webim/operator/settings.php index 77025774..e8816825 100644 --- a/src/messenger/webim/operator/settings.php +++ b/src/messenger/webim/operator/settings.php @@ -23,6 +23,8 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); require_once('../libs/settings.php'); +csrfchecktoken(); + $operator = check_login(); $page = array('agentId' => ''); @@ -104,4 +106,4 @@ prepare_menu($operator); setup_settings_tabs(0); start_html_output(); require('../view/settings.php'); -?> \ No newline at end of file +?> diff --git a/src/messenger/webim/view/agent.php b/src/messenger/webim/view/agent.php index 23912f81..f0bb10c7 100644 --- a/src/messenger/webim/view/agent.php +++ b/src/messenger/webim/view/agent.php @@ -50,6 +50,10 @@ require_once('inc_errors.php'); + + + +
    @@ -130,4 +134,4 @@ require_once('inc_errors.php'); } /* content */ require_once('inc_main.php'); -?> \ No newline at end of file +?> diff --git a/src/messenger/webim/view/cannededit.php b/src/messenger/webim/view/cannededit.php index f77b79dc..11b3c091 100644 --- a/src/messenger/webim/view/cannededit.php +++ b/src/messenger/webim/view/cannededit.php @@ -44,6 +44,10 @@ require_once('inc_errors.php'); ?> + + + + @@ -73,4 +77,4 @@ require_once('inc_errors.php'); } /* content */ require_once('inc_main.php'); -?> \ No newline at end of file +?> diff --git a/src/messenger/webim/view/settings.php b/src/messenger/webim/view/settings.php index 06611de0..d6f150bf 100644 --- a/src/messenger/webim/view/settings.php +++ b/src/messenger/webim/view/settings.php @@ -40,6 +40,9 @@ require_once('inc_errors.php'); + + +
    @@ -155,4 +158,4 @@ require_once('inc_errors.php'); } /* content */ require_once('inc_main.php'); -?> \ No newline at end of file +?> From 8abf075e2f8dbf044b9f5bb98bc27f0e1c61dca4 Mon Sep 17 00:00:00 2001 From: YuFei Zhu Date: Mon, 30 Apr 2012 17:09:11 +0100 Subject: [PATCH 27/39] enable act=del url check for auth tokens for csrf attacks --- src/messenger/webim/libs/common.php | 24 +++++++++++++++------- src/messenger/webim/operator/operators.php | 2 ++ src/messenger/webim/view/agents.php | 4 ++-- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/messenger/webim/libs/common.php b/src/messenger/webim/libs/common.php index 4c934032..f91fde5e 100644 --- a/src/messenger/webim/libs/common.php +++ b/src/messenger/webim/libs/common.php @@ -690,17 +690,22 @@ function jspath() /* authorization token check for CSRF attack */ function csrfchecktoken(){ + /* if auth token not set, set it now */ if(!isset($_SESSION['csrf_token'])){ $_SESSION['csrf_token']=sha1(rand(10000000,99999999)); - } - // check the turing code - if ($_SERVER['REQUEST_METHOD'] == 'POST'){ - //if token match - if(!isset($_POST['csrf_token']) || ($_POST['csrf_token'] != $_SESSION['csrf_token'])){ + } - die("CSRF failure"); - } + // check the turing code for post requests and del requests + if ($_SERVER['REQUEST_METHOD'] == 'POST'){ + //if token match + if(!isset($_POST['csrf_token']) || ($_POST['csrf_token'] != $_SESSION['csrf_token'])){ + + die("CSRF failure"); } + } else if($_GET['act'] == 'del' && $_GET['csrf_token'] != $_SESSION['csrf_token']){ + + die("CSRF failure"); + } } /* print csrf token as a hidden field*/ @@ -708,4 +713,9 @@ function print_csrf_token_input(){ echo ""; } +/* print csrf token in url format */ +function print_csrf_token_in_url(){ + echo "&csrf_token=".$_SESSION['csrf_token']; +} + ?> diff --git a/src/messenger/webim/operator/operators.php b/src/messenger/webim/operator/operators.php index b73d976f..d725b220 100644 --- a/src/messenger/webim/operator/operators.php +++ b/src/messenger/webim/operator/operators.php @@ -22,6 +22,8 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); +csrfchecktoken(); + $operator = check_login(); if (isset($_GET['act']) && $_GET['act'] == 'del') { diff --git a/src/messenger/webim/view/agents.php b/src/messenger/webim/view/agents.php index b544f11b..add00d1a 100644 --- a/src/messenger/webim/view/agents.php +++ b/src/messenger/webim/view/agents.php @@ -86,7 +86,7 @@ require_once('inc_errors.php'); - + remove @@ -106,4 +106,4 @@ $('a.removelink').click(function(){ } /* content */ require_once('inc_main.php'); -?> \ No newline at end of file +?> From 092ebd16ba4ee135f89995cfaf1f60a6c0cabbc0 Mon Sep 17 00:00:00 2001 From: YuFei Zhu Date: Mon, 30 Apr 2012 17:14:44 +0100 Subject: [PATCH 28/39] added auth token for delete offline messages check for csrf --- src/messenger/webim/libs/common.php | 2 +- src/messenger/webim/operator/canned.php | 2 ++ src/messenger/webim/view/canned.php | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/messenger/webim/libs/common.php b/src/messenger/webim/libs/common.php index f91fde5e..f6cc16e5 100644 --- a/src/messenger/webim/libs/common.php +++ b/src/messenger/webim/libs/common.php @@ -702,7 +702,7 @@ function csrfchecktoken(){ die("CSRF failure"); } - } else if($_GET['act'] == 'del' && $_GET['csrf_token'] != $_SESSION['csrf_token']){ + } else if(($_GET['act'] == 'del' || $_GET['act'] == 'delete') && $_GET['csrf_token'] != $_SESSION['csrf_token']){ die("CSRF failure"); } diff --git a/src/messenger/webim/operator/canned.php b/src/messenger/webim/operator/canned.php index 9d9f7886..d326f032 100644 --- a/src/messenger/webim/operator/canned.php +++ b/src/messenger/webim/operator/canned.php @@ -25,6 +25,8 @@ require_once('../libs/settings.php'); require_once('../libs/groups.php'); require_once('../libs/pagination.php'); +csrfchecktoken(); + $operator = check_login(); loadsettings(); diff --git a/src/messenger/webim/view/canned.php b/src/messenger/webim/view/canned.php index 3863aac8..6caee93b 100644 --- a/src/messenger/webim/view/canned.php +++ b/src/messenger/webim/view/canned.php @@ -91,7 +91,7 @@ if( $page['pagination.items'] ) { , - &group="> + &group="> \ No newline at end of file +?> From e4be5385ca850b852e701d65eeeb6c87e17ea2f2 Mon Sep 17 00:00:00 2001 From: YuFei Zhu Date: Tue, 1 May 2012 12:58:05 +0100 Subject: [PATCH 29/39] add csrf token check to avatar upload --- src/messenger/webim/libs/common.php | 6 ++++-- src/messenger/webim/operator/avatar.php | 4 +++- src/messenger/webim/view/avatar.php | 3 ++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/messenger/webim/libs/common.php b/src/messenger/webim/libs/common.php index f6cc16e5..a1138da7 100644 --- a/src/messenger/webim/libs/common.php +++ b/src/messenger/webim/libs/common.php @@ -702,9 +702,11 @@ function csrfchecktoken(){ die("CSRF failure"); } - } else if(($_GET['act'] == 'del' || $_GET['act'] == 'delete') && $_GET['csrf_token'] != $_SESSION['csrf_token']){ + } else if(isset($_GET['act'])){ + if(($_GET['act'] == 'del' || $_GET['act'] == 'delete') && $_GET['csrf_token'] != $_SESSION['csrf_token']){ - die("CSRF failure"); + die("CSRF failure"); + } } } diff --git a/src/messenger/webim/operator/avatar.php b/src/messenger/webim/operator/avatar.php index 9bb0545f..2479adac 100644 --- a/src/messenger/webim/operator/avatar.php +++ b/src/messenger/webim/operator/avatar.php @@ -23,6 +23,8 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); require_once('../libs/operator_settings.php'); +csrfchecktoken(); + $operator = check_login(); $opId = verifyparam("op", "/^\d{1,9}$/"); @@ -102,4 +104,4 @@ prepare_menu($operator); setup_operator_settings_tabs($opId, 1); start_html_output(); require('../view/avatar.php'); -?> \ No newline at end of file +?> diff --git a/src/messenger/webim/view/avatar.php b/src/messenger/webim/view/avatar.php index cf584b92..3219f8ce 100644 --- a/src/messenger/webim/view/avatar.php +++ b/src/messenger/webim/view/avatar.php @@ -36,6 +36,7 @@ require_once('inc_errors.php'); ?> +
    @@ -97,4 +98,4 @@ require_once('inc_errors.php'); } /* content */ require_once('inc_main.php'); -?> \ No newline at end of file +?> From e3b8848f78419ad94203abd4f230a608ed5a4964 Mon Sep 17 00:00:00 2001 From: YuFei Zhu Date: Tue, 1 May 2012 13:02:34 +0100 Subject: [PATCH 30/39] update comment for avatar csrf, and add csrf token check to permission page --- src/messenger/webim/operator/permissions.php | 3 ++- src/messenger/webim/view/avatar.php | 3 +++ src/messenger/webim/view/permissions.php | 6 +++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/messenger/webim/operator/permissions.php b/src/messenger/webim/operator/permissions.php index 308f3957..bd2659e8 100644 --- a/src/messenger/webim/operator/permissions.php +++ b/src/messenger/webim/operator/permissions.php @@ -23,6 +23,7 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); require_once('../libs/operator_settings.php'); +csrfchecktoken(); $operator = check_login(); function update_operator_permissions($operatorid, $newvalue) @@ -89,4 +90,4 @@ prepare_menu($operator); setup_operator_settings_tabs($opId, 3); start_html_output(); require('../view/permissions.php'); -?> \ No newline at end of file +?> diff --git a/src/messenger/webim/view/avatar.php b/src/messenger/webim/view/avatar.php index 3219f8ce..b949f2f6 100644 --- a/src/messenger/webim/view/avatar.php +++ b/src/messenger/webim/view/avatar.php @@ -36,7 +36,10 @@ require_once('inc_errors.php'); ?> + + +
    diff --git a/src/messenger/webim/view/permissions.php b/src/messenger/webim/view/permissions.php index 7c47ecc7..7bf433e8 100644 --- a/src/messenger/webim/view/permissions.php +++ b/src/messenger/webim/view/permissions.php @@ -39,6 +39,10 @@ require_once('inc_errors.php'); + + + +
    @@ -67,4 +71,4 @@ require_once('inc_errors.php'); } /* content */ require_once('inc_main.php'); -?> \ No newline at end of file +?> From 7f8b2fca894440ed100305b1b229a770fa667f10 Mon Sep 17 00:00:00 2001 From: YuFei Zhu Date: Tue, 1 May 2012 13:18:42 +0100 Subject: [PATCH 31/39] update token methods to ensure csrf token is always get setted --- src/messenger/webim/libs/common.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/messenger/webim/libs/common.php b/src/messenger/webim/libs/common.php index a1138da7..ad5e1586 100644 --- a/src/messenger/webim/libs/common.php +++ b/src/messenger/webim/libs/common.php @@ -690,10 +690,7 @@ function jspath() /* authorization token check for CSRF attack */ function csrfchecktoken(){ - /* if auth token not set, set it now */ - if(!isset($_SESSION['csrf_token'])){ - $_SESSION['csrf_token']=sha1(rand(10000000,99999999)); - } + setcsrftoken(); // check the turing code for post requests and del requests if ($_SERVER['REQUEST_METHOD'] == 'POST'){ @@ -712,12 +709,23 @@ function csrfchecktoken(){ /* print csrf token as a hidden field*/ function print_csrf_token_input(){ + setcsrftoken(); + echo ""; } /* print csrf token in url format */ function print_csrf_token_in_url(){ + setcsrftoken(); + echo "&csrf_token=".$_SESSION['csrf_token']; } +/* set csrf token */ +function setcsrftoken(){ + if(!isset($_SESSION['csrf_token'])){ + $_SESSION['csrf_token']=sha1(rand(10000000,99999999)); + } +} + ?> From 22916ce8a076b9d8b91b71627dcf22c5bc52dd4d Mon Sep 17 00:00:00 2001 From: YuFei Zhu Date: Tue, 1 May 2012 13:20:03 +0100 Subject: [PATCH 32/39] add csrf token to performance and features views --- src/messenger/webim/operator/features.php | 2 ++ src/messenger/webim/operator/performance.php | 4 +++- src/messenger/webim/view/features.php | 6 +++++- src/messenger/webim/view/performance.php | 5 ++++- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/messenger/webim/operator/features.php b/src/messenger/webim/operator/features.php index ad193830..9c7fc9ac 100644 --- a/src/messenger/webim/operator/features.php +++ b/src/messenger/webim/operator/features.php @@ -23,6 +23,8 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); require_once('../libs/settings.php'); +csrfchecktoken(); + $operator = check_login(); $page = array('agentId' => ''); diff --git a/src/messenger/webim/operator/performance.php b/src/messenger/webim/operator/performance.php index ad8908d2..f2f48e8f 100644 --- a/src/messenger/webim/operator/performance.php +++ b/src/messenger/webim/operator/performance.php @@ -23,6 +23,8 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); require_once('../libs/settings.php'); +csrfchecktoken(); + $operator = check_login(); $page = array('agentId' => ''); @@ -91,4 +93,4 @@ prepare_menu($operator); setup_settings_tabs(2); start_html_output(); require('../view/performance.php'); -?> \ No newline at end of file +?> diff --git a/src/messenger/webim/view/features.php b/src/messenger/webim/view/features.php index 9b8361a4..48f1a1cd 100644 --- a/src/messenger/webim/view/features.php +++ b/src/messenger/webim/view/features.php @@ -73,6 +73,10 @@ require_once('inc_errors.php'); + + + +
    @@ -211,4 +215,4 @@ require_once('inc_errors.php'); } /* content */ require_once('inc_main.php'); -?> \ No newline at end of file +?> diff --git a/src/messenger/webim/view/performance.php b/src/messenger/webim/view/performance.php index fa9513bc..5690c90c 100644 --- a/src/messenger/webim/view/performance.php +++ b/src/messenger/webim/view/performance.php @@ -40,6 +40,9 @@ require_once('inc_errors.php'); + + +
    @@ -118,4 +121,4 @@ require_once('inc_errors.php'); } /* content */ require_once('inc_main.php'); -?> \ No newline at end of file +?> From 2d04bbe4eeceb55fbb2a823d0ae08723bed78b3f Mon Sep 17 00:00:00 2001 From: YuFei Zhu Date: Tue, 1 May 2012 13:21:49 +0100 Subject: [PATCH 33/39] add csrf token to translate view --- src/messenger/webim/operator/translate.php | 4 +++- src/messenger/webim/view/translate.php | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/messenger/webim/operator/translate.php b/src/messenger/webim/operator/translate.php index 5e271ce6..368eb8fc 100644 --- a/src/messenger/webim/operator/translate.php +++ b/src/messenger/webim/operator/translate.php @@ -23,6 +23,8 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); require_once('../libs/pagination.php'); +csrfchecktoken(); + function compare_localization_by_l1($a, $b) { if ($a == $b) { @@ -230,4 +232,4 @@ $page['formshow'] = $show; prepare_menu($operator); start_html_output(); require('../view/translatelist.php'); -?> \ No newline at end of file +?> diff --git a/src/messenger/webim/view/translate.php b/src/messenger/webim/view/translate.php index e809459d..0b72c222 100644 --- a/src/messenger/webim/view/translate.php +++ b/src/messenger/webim/view/translate.php @@ -44,6 +44,10 @@ require_once('inc_errors.php'); ?> + + + +
    @@ -77,4 +81,4 @@ require_once('inc_errors.php'); } /* content */ require_once('inc_main.php'); -?> \ No newline at end of file +?> From dd6632ffdf5beeb782dc301ac26f9e11a2b257c3 Mon Sep 17 00:00:00 2001 From: Evgeny Gryaznov Date: Wed, 27 Jun 2012 09:51:16 +0200 Subject: [PATCH 34/39] format the code; remove comments in the client code; move csrfchecktoken() right after check_login() --- src/messenger/webim/libs/common.php | 60 +++++++++++--------- src/messenger/webim/operator/avatar.php | 3 +- src/messenger/webim/operator/canned.php | 3 +- src/messenger/webim/operator/cannededit.php | 3 +- src/messenger/webim/operator/features.php | 3 +- src/messenger/webim/operator/operator.php | 3 +- src/messenger/webim/operator/operators.php | 3 +- src/messenger/webim/operator/performance.php | 3 +- src/messenger/webim/operator/permissions.php | 2 +- src/messenger/webim/operator/settings.php | 3 +- src/messenger/webim/operator/translate.php | 3 +- src/messenger/webim/view/agent.php | 3 - src/messenger/webim/view/avatar.php | 3 - src/messenger/webim/view/cannededit.php | 3 - src/messenger/webim/view/features.php | 3 - src/messenger/webim/view/performance.php | 3 - src/messenger/webim/view/permissions.php | 3 - src/messenger/webim/view/settings.php | 3 - src/messenger/webim/view/translate.php | 3 - 19 files changed, 42 insertions(+), 71 deletions(-) diff --git a/src/messenger/webim/libs/common.php b/src/messenger/webim/libs/common.php index ad5e1586..4e8fa8b8 100644 --- a/src/messenger/webim/libs/common.php +++ b/src/messenger/webim/libs/common.php @@ -349,7 +349,7 @@ function connect() die('Mysql extension is not loaded'); } $link = @mysql_connect($mysqlhost, $mysqllogin, $mysqlpass) - or die('Could not connect: ' . mysql_error()); + or die('Could not connect: ' . mysql_error()); mysql_select_db($mysqldb, $link) or die('Could not select database'); if ($force_charset_in_connection) { mysql_query("SET NAMES '$dbencoding'", $link); @@ -392,7 +392,7 @@ function db_build_select($fields, $table, $conditions, $orderandgroup) function db_rows_count($table, $conditions, $countfields, $link) { $result = mysql_query(db_build_select("count(" . ($countfields ? $countfields : "*") . ")", $table, $conditions, ""), $link) - or die(' Count query failed: ' . mysql_error($link)); + or die(' Count query failed: ' . mysql_error($link)); $line = mysql_fetch_array($result, MYSQL_NUM); mysql_free_result($result); return $line[0]; @@ -454,7 +454,7 @@ function no_field($key) function failed_uploading_file($filename, $key) { return getlocal2("errors.failed.uploading.file", - array($filename, getlocal($key))); + array($filename, getlocal($key))); } function wrong_field($key) @@ -689,43 +689,47 @@ function jspath() } /* authorization token check for CSRF attack */ -function csrfchecktoken(){ - setcsrftoken(); +function csrfchecktoken() +{ + setcsrftoken(); - // check the turing code for post requests and del requests - if ($_SERVER['REQUEST_METHOD'] == 'POST'){ - //if token match - if(!isset($_POST['csrf_token']) || ($_POST['csrf_token'] != $_SESSION['csrf_token'])){ + // check the turing code for post requests and del requests + if ($_SERVER['REQUEST_METHOD'] == 'POST') { + //if token match + if (!isset($_POST['csrf_token']) || ($_POST['csrf_token'] != $_SESSION['csrf_token'])) { - die("CSRF failure"); - } - } else if(isset($_GET['act'])){ - if(($_GET['act'] == 'del' || $_GET['act'] == 'delete') && $_GET['csrf_token'] != $_SESSION['csrf_token']){ - - die("CSRF failure"); - } - } + die("CSRF failure"); + } + } else if (isset($_GET['act'])) { + if (($_GET['act'] == 'del' || $_GET['act'] == 'delete') && $_GET['csrf_token'] != $_SESSION['csrf_token']) { + + die("CSRF failure"); + } + } } /* print csrf token as a hidden field*/ -function print_csrf_token_input(){ - setcsrftoken(); +function print_csrf_token_input() +{ + setcsrftoken(); - echo ""; + echo ""; } /* print csrf token in url format */ -function print_csrf_token_in_url(){ - setcsrftoken(); - - echo "&csrf_token=".$_SESSION['csrf_token']; +function print_csrf_token_in_url() +{ + setcsrftoken(); + + echo "&csrf_token=" . $_SESSION['csrf_token']; } /* set csrf token */ -function setcsrftoken(){ - if(!isset($_SESSION['csrf_token'])){ - $_SESSION['csrf_token']=sha1(rand(10000000,99999999)); - } +function setcsrftoken() +{ + if (!isset($_SESSION['csrf_token'])) { + $_SESSION['csrf_token'] = sha1(rand(10000000, 99999999)); + } } ?> diff --git a/src/messenger/webim/operator/avatar.php b/src/messenger/webim/operator/avatar.php index 2479adac..26f062b5 100644 --- a/src/messenger/webim/operator/avatar.php +++ b/src/messenger/webim/operator/avatar.php @@ -23,9 +23,8 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); require_once('../libs/operator_settings.php'); -csrfchecktoken(); - $operator = check_login(); +csrfchecktoken(); $opId = verifyparam("op", "/^\d{1,9}$/"); $page = array('opid' => $opId, 'avatar' => ''); diff --git a/src/messenger/webim/operator/canned.php b/src/messenger/webim/operator/canned.php index d326f032..48fd0367 100644 --- a/src/messenger/webim/operator/canned.php +++ b/src/messenger/webim/operator/canned.php @@ -25,9 +25,8 @@ require_once('../libs/settings.php'); require_once('../libs/groups.php'); require_once('../libs/pagination.php'); -csrfchecktoken(); - $operator = check_login(); +csrfchecktoken(); loadsettings(); $errors = array(); diff --git a/src/messenger/webim/operator/cannededit.php b/src/messenger/webim/operator/cannededit.php index e375ac3b..911e8624 100644 --- a/src/messenger/webim/operator/cannededit.php +++ b/src/messenger/webim/operator/cannededit.php @@ -23,8 +23,6 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); require_once('../libs/pagination.php'); -csrfchecktoken(); - function load_message($key) { global $mysqlprefix; @@ -54,6 +52,7 @@ function add_message($locale, $groupid, $message) } $operator = check_login(); +csrfchecktoken(); loadsettings(); $stringid = verifyparam("key", "/^\d{0,9}$/", ""); diff --git a/src/messenger/webim/operator/features.php b/src/messenger/webim/operator/features.php index 9c7fc9ac..2f33a337 100644 --- a/src/messenger/webim/operator/features.php +++ b/src/messenger/webim/operator/features.php @@ -23,9 +23,8 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); require_once('../libs/settings.php'); -csrfchecktoken(); - $operator = check_login(); +csrfchecktoken(); $page = array('agentId' => ''); $errors = array(); diff --git a/src/messenger/webim/operator/operator.php b/src/messenger/webim/operator/operator.php index 693b61df..dcf8b824 100644 --- a/src/messenger/webim/operator/operator.php +++ b/src/messenger/webim/operator/operator.php @@ -23,9 +23,8 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); require_once('../libs/operator_settings.php'); -csrfchecktoken(); - $operator = check_login(); +csrfchecktoken(); $page = array('opid' => ''); $errors = array(); diff --git a/src/messenger/webim/operator/operators.php b/src/messenger/webim/operator/operators.php index d725b220..b0c35ccd 100644 --- a/src/messenger/webim/operator/operators.php +++ b/src/messenger/webim/operator/operators.php @@ -22,9 +22,8 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); -csrfchecktoken(); - $operator = check_login(); +csrfchecktoken(); if (isset($_GET['act']) && $_GET['act'] == 'del') { $operatorid = isset($_GET['id']) ? $_GET['id'] : ""; diff --git a/src/messenger/webim/operator/performance.php b/src/messenger/webim/operator/performance.php index f2f48e8f..f1bb5d1b 100644 --- a/src/messenger/webim/operator/performance.php +++ b/src/messenger/webim/operator/performance.php @@ -23,9 +23,8 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); require_once('../libs/settings.php'); -csrfchecktoken(); - $operator = check_login(); +csrfchecktoken(); $page = array('agentId' => ''); $errors = array(); diff --git a/src/messenger/webim/operator/permissions.php b/src/messenger/webim/operator/permissions.php index bd2659e8..00a3ba44 100644 --- a/src/messenger/webim/operator/permissions.php +++ b/src/messenger/webim/operator/permissions.php @@ -23,8 +23,8 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); require_once('../libs/operator_settings.php'); -csrfchecktoken(); $operator = check_login(); +csrfchecktoken(); function update_operator_permissions($operatorid, $newvalue) { diff --git a/src/messenger/webim/operator/settings.php b/src/messenger/webim/operator/settings.php index e8816825..38ca462e 100644 --- a/src/messenger/webim/operator/settings.php +++ b/src/messenger/webim/operator/settings.php @@ -23,9 +23,8 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); require_once('../libs/settings.php'); -csrfchecktoken(); - $operator = check_login(); +csrfchecktoken(); $page = array('agentId' => ''); $errors = array(); diff --git a/src/messenger/webim/operator/translate.php b/src/messenger/webim/operator/translate.php index 368eb8fc..391ff528 100644 --- a/src/messenger/webim/operator/translate.php +++ b/src/messenger/webim/operator/translate.php @@ -23,8 +23,6 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); require_once('../libs/pagination.php'); -csrfchecktoken(); - function compare_localization_by_l1($a, $b) { if ($a == $b) { @@ -121,6 +119,7 @@ function get_auxiliary($s) } $operator = check_login(); +csrfchecktoken(); $source = verifyparam("source", "/^[\w-]{2,5}$/", $default_locale); $target = verifyparam("target", "/^[\w-]{2,5}$/", $current_locale); diff --git a/src/messenger/webim/view/agent.php b/src/messenger/webim/view/agent.php index f0bb10c7..002cd5ec 100644 --- a/src/messenger/webim/view/agent.php +++ b/src/messenger/webim/view/agent.php @@ -50,10 +50,7 @@ require_once('inc_errors.php'); - - -
    diff --git a/src/messenger/webim/view/avatar.php b/src/messenger/webim/view/avatar.php index b949f2f6..3219f8ce 100644 --- a/src/messenger/webim/view/avatar.php +++ b/src/messenger/webim/view/avatar.php @@ -36,10 +36,7 @@ require_once('inc_errors.php'); ?> - - -
    diff --git a/src/messenger/webim/view/cannededit.php b/src/messenger/webim/view/cannededit.php index 11b3c091..7bc487d5 100644 --- a/src/messenger/webim/view/cannededit.php +++ b/src/messenger/webim/view/cannededit.php @@ -44,10 +44,7 @@ require_once('inc_errors.php'); ?> - - - diff --git a/src/messenger/webim/view/features.php b/src/messenger/webim/view/features.php index 48f1a1cd..372149be 100644 --- a/src/messenger/webim/view/features.php +++ b/src/messenger/webim/view/features.php @@ -73,10 +73,7 @@ require_once('inc_errors.php'); - - -
    diff --git a/src/messenger/webim/view/performance.php b/src/messenger/webim/view/performance.php index 5690c90c..0773945c 100644 --- a/src/messenger/webim/view/performance.php +++ b/src/messenger/webim/view/performance.php @@ -39,10 +39,7 @@ require_once('inc_errors.php'); - - -
    diff --git a/src/messenger/webim/view/permissions.php b/src/messenger/webim/view/permissions.php index 7bf433e8..4920e3a2 100644 --- a/src/messenger/webim/view/permissions.php +++ b/src/messenger/webim/view/permissions.php @@ -39,10 +39,7 @@ require_once('inc_errors.php'); - - -
    diff --git a/src/messenger/webim/view/settings.php b/src/messenger/webim/view/settings.php index d6f150bf..7f2e27b4 100644 --- a/src/messenger/webim/view/settings.php +++ b/src/messenger/webim/view/settings.php @@ -39,10 +39,7 @@ require_once('inc_errors.php'); - - -
    diff --git a/src/messenger/webim/view/translate.php b/src/messenger/webim/view/translate.php index 0b72c222..9d62f4e0 100644 --- a/src/messenger/webim/view/translate.php +++ b/src/messenger/webim/view/translate.php @@ -44,10 +44,7 @@ require_once('inc_errors.php'); ?> - - -
    From c50d60730c956b69c3a7136864a1f505bfe8ea83 Mon Sep 17 00:00:00 2001 From: Evgeny Gryaznov Date: Mon, 4 Mar 2013 23:57:42 +0100 Subject: [PATCH 35/39] fix move_uploaded_file errors --- src/messenger/.idea/codeStyleSettings.xml | 27 +++++++++++------------ src/messenger/webim/libs/common.php | 12 +++++----- src/messenger/webim/operator/avatar.php | 4 ++-- 3 files changed, 21 insertions(+), 22 deletions(-) diff --git a/src/messenger/.idea/codeStyleSettings.xml b/src/messenger/.idea/codeStyleSettings.xml index bb3694e4..08116dc6 100644 --- a/src/messenger/.idea/codeStyleSettings.xml +++ b/src/messenger/.idea/codeStyleSettings.xml @@ -3,27 +3,26 @@ - + diff --git a/src/messenger/webim/libs/common.php b/src/messenger/webim/libs/common.php index 4e8fa8b8..43f2c976 100644 --- a/src/messenger/webim/libs/common.php +++ b/src/messenger/webim/libs/common.php @@ -349,7 +349,7 @@ function connect() die('Mysql extension is not loaded'); } $link = @mysql_connect($mysqlhost, $mysqllogin, $mysqlpass) - or die('Could not connect: ' . mysql_error()); + or die('Could not connect: ' . mysql_error()); mysql_select_db($mysqldb, $link) or die('Could not select database'); if ($force_charset_in_connection) { mysql_query("SET NAMES '$dbencoding'", $link); @@ -392,7 +392,7 @@ function db_build_select($fields, $table, $conditions, $orderandgroup) function db_rows_count($table, $conditions, $countfields, $link) { $result = mysql_query(db_build_select("count(" . ($countfields ? $countfields : "*") . ")", $table, $conditions, ""), $link) - or die(' Count query failed: ' . mysql_error($link)); + or die(' Count query failed: ' . mysql_error($link)); $line = mysql_fetch_array($result, MYSQL_NUM); mysql_free_result($result); return $line[0]; @@ -542,9 +542,9 @@ function get_app_location($showhost, $issecure) function is_secure_request() { return - isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' - || isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on" - || isset($_SERVER["HTTP_HTTPS"]) && $_SERVER["HTTP_HTTPS"] == "on"; + isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' + || isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on" + || isset($_SERVER["HTTP_HTTPS"]) && $_SERVER["HTTP_HTTPS"] == "on"; } function get_month_selection($fromtime, $totime) @@ -713,7 +713,7 @@ function print_csrf_token_input() { setcsrftoken(); - echo ""; + echo "\n"; } /* print csrf token in url format */ diff --git a/src/messenger/webim/operator/avatar.php b/src/messenger/webim/operator/avatar.php index 26f062b5..5dec6dc1 100644 --- a/src/messenger/webim/operator/avatar.php +++ b/src/messenger/webim/operator/avatar.php @@ -45,7 +45,7 @@ if (!$op) { $errors[] = getlocal('page_agent.cannot_modify'); } else if (isset($_FILES['avatarFile']) && $_FILES['avatarFile']['name']) { - $valid_types = array("gif", "jpg", "png", "tif"); + $valid_types = array("gif", "jpg", "png", "tif", "jpeg"); $orig_filename = $_FILES['avatarFile']['name']; $tmp_file_name = $_FILES['avatarFile']['tmp_name']; @@ -65,7 +65,7 @@ if (!$op) { if (file_exists($full_file_path)) { unlink($full_file_path); } - if (!move_uploaded_file($_FILES['avatarFile']['tmp_name'], $full_file_path)) { + if (!@move_uploaded_file($_FILES['avatarFile']['tmp_name'], $full_file_path)) { $errors[] = failed_uploading_file($orig_filename, "errors.file.move.error"); } else { $avatar = "$webimroot/images/avatar/$new_file_name"; From 3741e57eabfd5266e3f1766e5917567494e6c8cf Mon Sep 17 00:00:00 2001 From: Evgeny Gryaznov Date: Tue, 5 Mar 2013 00:24:26 +0100 Subject: [PATCH 36/39] apache 2 license (started); upgrade version to 1.6.5 --- src/messenger/webim/COPYING | 19 -- src/messenger/webim/LICENSE | 202 ++++++++++++++ src/messenger/webim/VERSION | 2 +- src/messenger/webim/b.php | 30 +- src/messenger/webim/button.php | 27 +- src/messenger/webim/captcha.php | 30 +- src/messenger/webim/client.php | 30 +- src/messenger/webim/default.css | 29 +- src/messenger/webim/epl-v10.html | 328 ---------------------- src/messenger/webim/gpl-2.0.txt | 339 ----------------------- src/messenger/webim/index.php | 30 +- src/messenger/webim/install/whatsnew.txt | 5 + src/messenger/webim/leavemessage.php | 30 +- src/messenger/webim/license.php | 30 +- src/messenger/webim/mail.php | 30 +- src/messenger/webim/thread.php | 30 +- 16 files changed, 339 insertions(+), 852 deletions(-) delete mode 100644 src/messenger/webim/COPYING create mode 100644 src/messenger/webim/LICENSE delete mode 100644 src/messenger/webim/epl-v10.html delete mode 100644 src/messenger/webim/gpl-2.0.txt diff --git a/src/messenger/webim/COPYING b/src/messenger/webim/COPYING deleted file mode 100644 index bfdf54c2..00000000 --- a/src/messenger/webim/COPYING +++ /dev/null @@ -1,19 +0,0 @@ -Mibew Messenger -Copyright (c) 2005-2011 Mibew Messenger Community - -LICENSE - -Mibew Messenger is distributed under the terms of the Eclipse Public License (or -the General Public License, this means that you can choose one of two, and use it -accordingly) with the following special exception. - -License exception: -No one may remove, alter or hide any copyright notices or links to the community -site ("http://mibew.org") contained within the Program. Any derivative work -must include this license exception. - -Eclipse Public License: -http://www.eclipse.org/legal/epl-v10.html - -General Public License: -http://www.gnu.org/copyleft/gpl.html diff --git a/src/messenger/webim/LICENSE b/src/messenger/webim/LICENSE new file mode 100644 index 00000000..d6456956 --- /dev/null +++ b/src/messenger/webim/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/src/messenger/webim/VERSION b/src/messenger/webim/VERSION index cff47a7b..10a9279e 100644 --- a/src/messenger/webim/VERSION +++ b/src/messenger/webim/VERSION @@ -1 +1 @@ -Mibew/1.6.4 \ No newline at end of file +Mibew/1.6.5 \ No newline at end of file diff --git a/src/messenger/webim/b.php b/src/messenger/webim/b.php index 4780c50f..7b83117d 100644 --- a/src/messenger/webim/b.php +++ b/src/messenger/webim/b.php @@ -1,22 +1,18 @@ - - - - - - - -Eclipse Public License - Version 1.0 - - - - - - -
    - -

    Eclipse Public License - v 1.0 -

    - -

    THE ACCOMPANYING PROGRAM IS PROVIDED UNDER -THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, -REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE -OF THIS AGREEMENT.

    - -

    1. DEFINITIONS

    - -

    "Contribution" means:

    - -

    a) -in the case of the initial Contributor, the initial code and documentation -distributed under this Agreement, and
    -b) in the case of each subsequent Contributor:

    - -

    i) -changes to the Program, and

    - -

    ii) -additions to the Program;

    - -

    where -such changes and/or additions to the Program originate from and are distributed -by that particular Contributor. A Contribution 'originates' from a Contributor -if it was added to the Program by such Contributor itself or anyone acting on -such Contributor's behalf. Contributions do not include additions to the -Program which: (i) are separate modules of software distributed in conjunction -with the Program under their own license agreement, and (ii) are not derivative -works of the Program.

    - -

    "Contributor" means any person or -entity that distributes the Program.

    - -

    "Licensed Patents " mean patent -claims licensable by a Contributor which are necessarily infringed by the use -or sale of its Contribution alone or when combined with the Program.

    - -

    "Program" means the Contributions -distributed in accordance with this Agreement.

    - -

    "Recipient" means anyone who -receives the Program under this Agreement, including all Contributors.

    - -

    2. GRANT OF RIGHTS

    - -

    a) -Subject to the terms of this Agreement, each Contributor hereby grants Recipient -a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly -display, publicly perform, distribute and sublicense the Contribution of such -Contributor, if any, and such derivative works, in source code and object code -form.

    - -

    b) -Subject to the terms of this Agreement, each Contributor hereby grants -Recipient a non-exclusive, worldwide, royalty-free -patent license under Licensed Patents to make, use, sell, offer to sell, import -and otherwise transfer the Contribution of such Contributor, if any, in source -code and object code form. This patent license shall apply to the combination -of the Contribution and the Program if, at the time the Contribution is added -by the Contributor, such addition of the Contribution causes such combination -to be covered by the Licensed Patents. The patent license shall not apply to -any other combinations which include the Contribution. No hardware per se is -licensed hereunder.

    - -

    c) -Recipient understands that although each Contributor grants the licenses to its -Contributions set forth herein, no assurances are provided by any Contributor -that the Program does not infringe the patent or other intellectual property -rights of any other entity. Each Contributor disclaims any liability to Recipient -for claims brought by any other entity based on infringement of intellectual -property rights or otherwise. As a condition to exercising the rights and -licenses granted hereunder, each Recipient hereby assumes sole responsibility -to secure any other intellectual property rights needed, if any. For example, -if a third party patent license is required to allow Recipient to distribute -the Program, it is Recipient's responsibility to acquire that license before -distributing the Program.

    - -

    d) -Each Contributor represents that to its knowledge it has sufficient copyright -rights in its Contribution, if any, to grant the copyright license set forth in -this Agreement.

    - -

    3. REQUIREMENTS

    - -

    A Contributor may choose to distribute the -Program in object code form under its own license agreement, provided that: -

    - -

    a) -it complies with the terms and conditions of this Agreement; and

    - -

    b) -its license agreement:

    - -

    i) -effectively disclaims on behalf of all Contributors all warranties and -conditions, express and implied, including warranties or conditions of title -and non-infringement, and implied warranties or conditions of merchantability -and fitness for a particular purpose;

    - -

    ii) -effectively excludes on behalf of all Contributors all liability for damages, -including direct, indirect, special, incidental and consequential damages, such -as lost profits;

    - -

    iii) -states that any provisions which differ from this Agreement are offered by that -Contributor alone and not by any other party; and

    - -

    iv) -states that source code for the Program is available from such Contributor, and -informs licensees how to obtain it in a reasonable manner on or through a -medium customarily used for software exchange.

    - -

    When the Program is made available in source -code form:

    - -

    a) -it must be made available under this Agreement; and

    - -

    b) a -copy of this Agreement must be included with each copy of the Program.

    - -

    Contributors may not remove or alter any -copyright notices contained within the Program.

    - -

    Each Contributor must identify itself as the -originator of its Contribution, if any, in a manner that reasonably allows -subsequent Recipients to identify the originator of the Contribution.

    - -

    4. COMMERCIAL DISTRIBUTION

    - -

    Commercial distributors of software may -accept certain responsibilities with respect to end users, business partners -and the like. While this license is intended to facilitate the commercial use -of the Program, the Contributor who includes the Program in a commercial -product offering should do so in a manner which does not create potential -liability for other Contributors. Therefore, if a Contributor includes the -Program in a commercial product offering, such Contributor ("Commercial -Contributor") hereby agrees to defend and indemnify every other -Contributor ("Indemnified Contributor") against any losses, damages and -costs (collectively "Losses") arising from claims, lawsuits and other -legal actions brought by a third party against the Indemnified Contributor to -the extent caused by the acts or omissions of such Commercial Contributor in -connection with its distribution of the Program in a commercial product -offering. The obligations in this section do not apply to any claims or Losses -relating to any actual or alleged intellectual property infringement. In order -to qualify, an Indemnified Contributor must: a) promptly notify the Commercial -Contributor in writing of such claim, and b) allow the Commercial Contributor -to control, and cooperate with the Commercial Contributor in, the defense and -any related settlement negotiations. The Indemnified Contributor may participate -in any such claim at its own expense.

    - -

    For example, a Contributor might include the -Program in a commercial product offering, Product X. That Contributor is then a -Commercial Contributor. If that Commercial Contributor then makes performance -claims, or offers warranties related to Product X, those performance claims and -warranties are such Commercial Contributor's responsibility alone. Under this -section, the Commercial Contributor would have to defend claims against the -other Contributors related to those performance claims and warranties, and if a -court requires any other Contributor to pay any damages as a result, the -Commercial Contributor must pay those damages.

    - -

    5. NO WARRANTY

    - -

    EXCEPT AS EXPRESSLY SET FORTH IN THIS -AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, -WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, -MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely -responsible for determining the appropriateness of using and distributing the -Program and assumes all risks associated with its exercise of rights under this -Agreement , including but not limited to the risks and costs of program errors, -compliance with applicable laws, damage to or loss of data, programs or -equipment, and unavailability or interruption of operations.

    - -

    6. DISCLAIMER OF LIABILITY

    - -

    EXCEPT AS EXPRESSLY SET FORTH IN THIS -AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF -THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF -THE POSSIBILITY OF SUCH DAMAGES.

    - -

    7. GENERAL

    - -

    If any provision of this Agreement is invalid -or unenforceable under applicable law, it shall not affect the validity or -enforceability of the remainder of the terms of this Agreement, and without -further action by the parties hereto, such provision shall be reformed to the -minimum extent necessary to make such provision valid and enforceable.

    - -

    If Recipient institutes patent litigation -against any entity (including a cross-claim or counterclaim in a lawsuit) -alleging that the Program itself (excluding combinations of the Program with -other software or hardware) infringes such Recipient's patent(s), then such -Recipient's rights granted under Section 2(b) shall terminate as of the date -such litigation is filed.

    - -

    All Recipient's rights under this Agreement -shall terminate if it fails to comply with any of the material terms or -conditions of this Agreement and does not cure such failure in a reasonable -period of time after becoming aware of such noncompliance. If all Recipient's -rights under this Agreement terminate, Recipient agrees to cease use and -distribution of the Program as soon as reasonably practicable. However, -Recipient's obligations under this Agreement and any licenses granted by -Recipient relating to the Program shall continue and survive.

    - -

    Everyone is permitted to copy and distribute -copies of this Agreement, but in order to avoid inconsistency the Agreement is -copyrighted and may only be modified in the following manner. The Agreement -Steward reserves the right to publish new versions (including revisions) of -this Agreement from time to time. No one other than the Agreement Steward has -the right to modify this Agreement. The Eclipse Foundation is the initial -Agreement Steward. The Eclipse Foundation may assign the responsibility to -serve as the Agreement Steward to a suitable separate entity. Each new version -of the Agreement will be given a distinguishing version number. The Program -(including Contributions) may always be distributed subject to the version of -the Agreement under which it was received. In addition, after a new version of -the Agreement is published, Contributor may elect to distribute the Program -(including its Contributions) under the new version. Except as expressly stated -in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to -the intellectual property of any Contributor under this Agreement, whether -expressly, by implication, estoppel or otherwise. All rights in the Program not -expressly granted under this Agreement are reserved.

    - -

    This Agreement is governed by the laws of the -State of New York and the intellectual property laws of the United States of -America. No party to this Agreement will bring a legal action under this -Agreement more than one year after the cause of action arose. Each party waives -its rights to a jury trial in any resulting litigation.

    - -

     

    - -
    - - - - \ No newline at end of file diff --git a/src/messenger/webim/gpl-2.0.txt b/src/messenger/webim/gpl-2.0.txt deleted file mode 100644 index d511905c..00000000 --- a/src/messenger/webim/gpl-2.0.txt +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/src/messenger/webim/index.php b/src/messenger/webim/index.php index 20fa4719..326459b1 100644 --- a/src/messenger/webim/index.php +++ b/src/messenger/webim/index.php @@ -1,22 +1,18 @@ Date: Wed, 6 Mar 2013 22:22:53 +0100 Subject: [PATCH 37/39] apache 2 license in php headers --- src/messenger/.idea/codeStyleSettings.xml | 3 ++ src/messenger/webim/b.php | 2 +- src/messenger/webim/button.php | 2 +- src/messenger/webim/captcha.php | 2 +- src/messenger/webim/client.php | 2 +- src/messenger/webim/index.php | 2 +- src/messenger/webim/install/dbinfo.php | 30 ++++++++---------- src/messenger/webim/install/dbperform.php | 30 ++++++++---------- src/messenger/webim/install/index.php | 30 ++++++++---------- src/messenger/webim/leavemessage.php | 2 +- src/messenger/webim/libs/captcha.php | 30 +++++++++--------- src/messenger/webim/libs/chat.php | 31 ++++++++----------- src/messenger/webim/libs/common.php | 30 ++++++++---------- src/messenger/webim/libs/config.php | 30 ++++++++---------- src/messenger/webim/libs/converter.php | 30 ++++++++---------- src/messenger/webim/libs/demothread.php | 30 ++++++++---------- src/messenger/webim/libs/expand.php | 30 ++++++++---------- src/messenger/webim/libs/getcode.php | 24 ++++++-------- src/messenger/webim/libs/groups.php | 30 ++++++++---------- src/messenger/webim/libs/notify.php | 30 ++++++++---------- src/messenger/webim/libs/operator.php | 30 ++++++++---------- .../webim/libs/operator_settings.php | 30 ++++++++---------- src/messenger/webim/libs/pagination.php | 30 ++++++++---------- src/messenger/webim/libs/settings.php | 30 ++++++++---------- src/messenger/webim/libs/userinfo.php | 30 ++++++++---------- src/messenger/webim/license.php | 2 +- src/messenger/webim/mail.php | 2 +- src/messenger/webim/operator/agent.php | 30 ++++++++---------- src/messenger/webim/operator/autologin.php | 30 ++++++++---------- src/messenger/webim/operator/avatar.php | 30 ++++++++---------- src/messenger/webim/operator/ban.php | 30 ++++++++---------- src/messenger/webim/operator/blocked.php | 30 ++++++++---------- src/messenger/webim/operator/canned.php | 30 ++++++++---------- src/messenger/webim/operator/cannededit.php | 30 ++++++++---------- src/messenger/webim/operator/features.php | 30 ++++++++---------- src/messenger/webim/operator/getcode.php | 30 ++++++++---------- src/messenger/webim/operator/group.php | 30 ++++++++---------- src/messenger/webim/operator/groupmembers.php | 30 ++++++++---------- src/messenger/webim/operator/groups.php | 30 ++++++++---------- src/messenger/webim/operator/history.php | 30 ++++++++---------- src/messenger/webim/operator/index.php | 30 ++++++++---------- src/messenger/webim/operator/login.php | 30 ++++++++---------- src/messenger/webim/operator/logout.php | 30 ++++++++---------- src/messenger/webim/operator/operator.php | 30 ++++++++---------- src/messenger/webim/operator/operators.php | 30 ++++++++---------- src/messenger/webim/operator/opgroups.php | 30 ++++++++---------- src/messenger/webim/operator/performance.php | 30 ++++++++---------- src/messenger/webim/operator/permissions.php | 30 ++++++++---------- src/messenger/webim/operator/redirect.php | 30 ++++++++---------- src/messenger/webim/operator/resetpwd.php | 30 ++++++++---------- src/messenger/webim/operator/restore.php | 30 ++++++++---------- src/messenger/webim/operator/settings.php | 30 ++++++++---------- src/messenger/webim/operator/statistics.php | 30 ++++++++---------- src/messenger/webim/operator/themes.php | 30 ++++++++---------- .../webim/operator/threadprocessor.php | 30 ++++++++---------- src/messenger/webim/operator/translate.php | 30 ++++++++---------- src/messenger/webim/operator/update.php | 30 ++++++++---------- src/messenger/webim/operator/updates.php | 30 ++++++++---------- src/messenger/webim/operator/userhistory.php | 30 ++++++++---------- src/messenger/webim/operator/users.php | 30 ++++++++---------- src/messenger/webim/thread.php | 2 +- src/messenger/webim/view/agent.php | 30 ++++++++---------- src/messenger/webim/view/agents.php | 30 ++++++++---------- src/messenger/webim/view/avatar.php | 30 ++++++++---------- src/messenger/webim/view/ban.php | 30 ++++++++---------- src/messenger/webim/view/blocked_visitors.php | 30 ++++++++---------- src/messenger/webim/view/canned.php | 30 ++++++++---------- src/messenger/webim/view/cannededit.php | 30 ++++++++---------- src/messenger/webim/view/confirm.php | 30 ++++++++---------- src/messenger/webim/view/features.php | 30 ++++++++---------- src/messenger/webim/view/gen_button.php | 30 ++++++++---------- src/messenger/webim/view/group.php | 30 ++++++++---------- src/messenger/webim/view/groupmembers.php | 30 ++++++++---------- src/messenger/webim/view/groups.php | 30 ++++++++---------- src/messenger/webim/view/inc_errors.php | 30 ++++++++---------- src/messenger/webim/view/inc_locales.php | 30 ++++++++---------- src/messenger/webim/view/inc_main.php | 30 ++++++++---------- src/messenger/webim/view/inc_menu.php | 30 ++++++++---------- src/messenger/webim/view/inc_tabbar.php | 24 ++++++-------- src/messenger/webim/view/install_err.php | 30 ++++++++---------- src/messenger/webim/view/install_index.php | 30 ++++++++---------- src/messenger/webim/view/license.php | 30 ++++++++---------- src/messenger/webim/view/login.php | 30 ++++++++---------- src/messenger/webim/view/menu.php | 30 ++++++++---------- src/messenger/webim/view/operator_groups.php | 30 ++++++++---------- src/messenger/webim/view/pending_users.php | 30 ++++++++---------- src/messenger/webim/view/performance.php | 30 ++++++++---------- src/messenger/webim/view/permissions.php | 30 ++++++++---------- src/messenger/webim/view/resetpwd.php | 30 ++++++++---------- src/messenger/webim/view/restore.php | 30 ++++++++---------- src/messenger/webim/view/settings.php | 30 ++++++++---------- src/messenger/webim/view/statistics.php | 30 ++++++++---------- src/messenger/webim/view/themes.php | 30 ++++++++---------- src/messenger/webim/view/thread_log.php | 30 ++++++++---------- src/messenger/webim/view/thread_search.php | 30 ++++++++---------- src/messenger/webim/view/translate.php | 30 ++++++++---------- src/messenger/webim/view/translatelist.php | 30 ++++++++---------- src/messenger/webim/view/updates.php | 30 ++++++++---------- src/messenger/webim/view/userhistory.php | 30 ++++++++---------- 99 files changed, 1165 insertions(+), 1515 deletions(-) diff --git a/src/messenger/.idea/codeStyleSettings.xml b/src/messenger/.idea/codeStyleSettings.xml index 08116dc6..de6382eb 100644 --- a/src/messenger/.idea/codeStyleSettings.xml +++ b/src/messenger/.idea/codeStyleSettings.xml @@ -15,6 +15,9 @@ + +