aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/functions_user.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes/functions_user.php')
-rw-r--r--phpBB/includes/functions_user.php85
1 files changed, 77 insertions, 8 deletions
diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php
index 6b5cca8abb..930cd4625f 100644
--- a/phpBB/includes/functions_user.php
+++ b/phpBB/includes/functions_user.php
@@ -1477,7 +1477,7 @@ function validate_username($username, $allowed_username = false)
$mbstring = $pcre = false;
// generic UTF-8 character types supported?
- if ((version_compare(PHP_VERSION, '5.1.0', '>=') || (version_compare(PHP_VERSION, '5.0.0-dev', '<=') && version_compare(PHP_VERSION, '4.4.0', '>='))) && @preg_match('/\p{L}/u', 'a') !== false)
+ if (phpbb_pcre_utf8_support())
{
$pcre = true;
}
@@ -1614,7 +1614,7 @@ function validate_password($password)
$pcre = $mbstring = false;
// generic UTF-8 character types supported?
- if ((version_compare(PHP_VERSION, '5.1.0', '>=') || (version_compare(PHP_VERSION, '5.0.0-dev', '<=') && version_compare(PHP_VERSION, '4.4.0', '>='))) && @preg_match('/\p{L}/u', 'a') !== false)
+ if (phpbb_pcre_utf8_support())
{
$upp = '\p{Lu}';
$low = '\p{Ll}';
@@ -1759,15 +1759,15 @@ function validate_jabber($jid)
return false;
}
- $seperator_pos = strpos($jid, '@');
+ $separator_pos = strpos($jid, '@');
- if ($seperator_pos === false)
+ if ($separator_pos === false)
{
return 'WRONG_DATA';
}
- $username = substr($jid, 0, $seperator_pos);
- $realm = substr($jid, $seperator_pos + 1);
+ $username = substr($jid, 0, $separator_pos);
+ $realm = substr($jid, $separator_pos + 1);
if (strlen($username) == 0 || strlen($realm) < 3)
{
@@ -2480,6 +2480,69 @@ function group_create(&$group_id, $type, $name, $desc, $group_attributes, $allow
if (!sizeof($error))
{
+ $current_legend = phpbb_group_positions::GROUP_DISABLED;
+ $current_teampage = phpbb_group_positions::GROUP_DISABLED;
+
+ $legend = new phpbb_group_positions($db, 'legend');
+ $teampage = new phpbb_group_positions($db, 'teampage');
+ if ($group_id)
+ {
+ $current_legend = $legend->get_group_value($group_id);
+ $current_teampage = $teampage->get_group_value($group_id);
+ }
+
+ if (!empty($group_attributes['group_legend']))
+ {
+ if (($group_id && ($current_legend == phpbb_group_positions::GROUP_DISABLED)) || !$group_id)
+ {
+ // Old group currently not in the legend or new group, add at the end.
+ $group_attributes['group_legend'] = 1 + $legend->get_group_count();
+ }
+ else
+ {
+ // Group stayes in the legend
+ $group_attributes['group_legend'] = $current_legend;
+ }
+ }
+ else if ($group_id && ($current_legend > phpbb_group_positions::GROUP_DISABLED))
+ {
+ // Group is removed from the legend
+ $legend->delete_group($group_id, true);
+ $group_attributes['group_legend'] = phpbb_group_positions::GROUP_DISABLED;
+ }
+ else
+ {
+ $group_attributes['group_legend'] = phpbb_group_positions::GROUP_DISABLED;
+ }
+
+ if (!empty($group_attributes['group_teampage']))
+ {
+ if (($group_id && ($current_teampage == phpbb_group_positions::GROUP_DISABLED)) || !$group_id)
+ {
+ // Old group currently not on the teampage or new group, add at the end.
+ $group_attributes['group_teampage'] = 1 + $teampage->get_group_count();
+ }
+ else
+ {
+ // Group stayes on the teampage
+ $group_attributes['group_teampage'] = $current_teampage;
+ }
+ }
+ else if ($group_id && ($current_teampage > phpbb_group_positions::GROUP_DISABLED))
+ {
+ // Group is removed from the teampage
+ $teampage->delete_group($group_id, true);
+ $group_attributes['group_teampage'] = phpbb_group_positions::GROUP_DISABLED;
+ }
+ else
+ {
+ $group_attributes['group_teampage'] = phpbb_group_positions::GROUP_DISABLED;
+ }
+
+ // Unset the objects, we don't need them anymore.
+ unset($legend);
+ unset($teampage);
+
$user_ary = array();
$sql_ary = array(
'group_name' => (string) $name,
@@ -2704,6 +2767,14 @@ function group_delete($group_id, $group_name = false)
}
while ($start);
+ // Delete group from legend and teampage
+ $legend = new phpbb_group_positions($db, 'legend');
+ $legend->delete_group($group_id);
+ unset($legend);
+ $teampage = new phpbb_group_positions($db, 'teampage');
+ $teampage->delete_group($group_id);
+ unset($teampage);
+
// Delete group
$sql = 'DELETE FROM ' . GROUPS_TABLE . "
WHERE group_id = $group_id";
@@ -3586,5 +3657,3 @@ function remove_newly_registered($user_id, $user_data = false)
return $user_data['group_id'];
}
-
-?> \ No newline at end of file