synchronize_groups();
function display_group_list()
{
global $CONFIG, $LINEBREAK, $custom_group_counter;
global $lang_groupmgr_php, $lang_byte_units, $lang_common;
$row_counter = 0;
$table_start = '
'.$LINEBREAK;
$table_end = '
'.$LINEBREAK;
$tr_start = ''.$LINEBREAK;
$tr_end = ' '.$LINEBREAK;
$td_start = ''.$LINEBREAK;
$td_end = ' '.$LINEBREAK;
//$approval_needed = ', admin approval needed';
//$approval_not_needed = ', visible instantly';
$default_group_names = array(
'1' => 'Administrators',
'2' => 'Registered',
'3' => 'Anonymous',
);
$result = cpg_db_query("SELECT * FROM {$CONFIG['TABLE_USERGROUPS']} WHERE 1 ORDER BY group_id");
if (!mysql_num_rows($result)) {
cpg_db_query("INSERT INTO {$CONFIG['TABLE_USERGROUPS']}
VALUES (1, 'Administrators', 0, 1, 1, 1, 1, 1, 1, 0, 0, 3)");
cpg_db_query("INSERT INTO {$CONFIG['TABLE_USERGROUPS']}
VALUES (2, 'Registered', 1024, 0, 1, 1, 1, 1, 1, 1, 0, 3)");
cpg_db_query("INSERT INTO {$CONFIG['TABLE_USERGROUPS']}
VALUES (3, 'Anonymous', 0, 0, 1, 0, 0, 0, 0, 1, 1, 3)");
cpg_die(CRITICAL_ERROR, $lang_groupmgr_php['error_group_empty'], __FILE__, __LINE__);
}
$field_list = array('can_rate_pictures', 'can_send_ecards', 'can_post_comments', 'can_upload_pictures', 'pub_upl_need_approval', 'can_create_albums', 'priv_upl_need_approval');
$custom_group_counter = 0;
$access_levels = array(
0 => $lang_groupmgr_php['none'],
1 => $lang_groupmgr_php['thumbnail_only'],
2 => $lang_groupmgr_php['thumbnail_intermediate'],
3 => $lang_groupmgr_php['thumbnail_intermediate_full']
);
while ($group = mysql_fetch_assoc($result)) {
$group['group_name'] = $group['group_name'];
$row_counter++;
if ($row_counter == 1) {
$table_background = 'tableb';
} else {
$table_background = 'tableb tableb_alternate';
$row_counter = 0;
}
if ($group['group_id'] > 3 && UDB_INTEGRATION == 'coppermine') {
$custom_group_counter++;
echo <<< EOT
EOT;
} else {
echo <<< EOT
EOT;
}
// disable row if applicable
if ($group['group_id'] == 3 && $CONFIG['allow_unlogged_access'] == 0) {
$disabled = 'disabled="disabled" style="background-color:InactiveCaptionText;color:GrayText"';
$explain_greyedout = ' '.cpg_display_help('f=empty.htm&base=64&h='.urlencode(base64_encode(serialize($lang_groupmgr_php['explain_greyed_out_title']))).'&t='.urlencode(base64_encode(serialize(sprintf($lang_groupmgr_php['explain_guests_greyed_out_text'], ''.$group['group_name'].' ')))), '450', '300');
} else {
$disabled = '';
$explain_greyedout = '';
}
echo <<< EOT
$explain_greyedout
EOT;
// show reset option if applicable
if (UDB_INTEGRATION == 'coppermine' && isset($default_group_names[$group['group_id']])) {
if ($group['group_name'] != $default_group_names[$group['group_id']] && $default_group_names[$group['group_id']] != '') {
// we have a group here that doesn't have the default name
//print ' ';
print '';
print cpg_fetch_icon('stop', 0, sprintf($lang_groupmgr_php['reset_to_default'], $default_group_names[$group['group_id']]));
print ' ';
}
}
list($timestamp, $form_token) = getFormToken();
$assignedGroupsHelp = cpg_display_help('f=groups.htm&as=group_cp_assigned&ae=group_cp_assigned_end', '450', '300');
echo <<< EOT
{$lang_groupmgr_php['disk_quota']}: {$lang_byte_units[1]}
{$assignedGroupsHelp}
EOT;
foreach ($field_list as $field_name) {
$value = $group[$field_name];
$yes_selected = ($value == 1) ? 'checked="checked"' : '';
$no_selected = ($value == 0) ? 'checked="checked"' : '';
if ($field_name == 'can_rate_pictures') {
echo $table_start.$tr_start.$td_start.$lang_groupmgr_php['rating'].$td_end;
} elseif ($field_name == 'can_send_ecards') {
echo $tr_start.$td_start.$lang_groupmgr_php['ecards'].$td_end;
} elseif ($field_name == 'can_post_comments') {
echo $tr_start.$td_start.$lang_groupmgr_php['comments'].$td_end;
} elseif ($field_name == 'can_upload_pictures') {
echo $table_start.$tr_start.$td_start.$lang_groupmgr_php['allowed'].$td_end;
} elseif ($field_name == 'pub_upl_need_approval') {
echo $tr_start.$td_start.$lang_groupmgr_php['approval'].$td_end;
} elseif ($field_name == 'can_create_albums') {
echo $table_start.$tr_start.$td_start.$lang_groupmgr_php['allowed'].$td_end;
} elseif ($field_name == 'priv_upl_need_approval') {
echo $tr_start.$td_start.$lang_groupmgr_php['approval'].$td_end;
}
if ($group['group_id'] == 3 && $CONFIG['allow_unlogged_access'] == 0) {
$disabled_yes = 'disabled="disabled"';
$disabled_no = 'disabled="disabled"';
} else {
$disabled_yes = '';
$disabled_no = '';
}
echo <<< EOT
$td_start
{$lang_common['yes']}
$td_end
$td_start
{$lang_common['no']}
$td_end
$tr_end
EOT;
if ($field_name== 'can_post_comments' || $field_name== 'pub_upl_need_approval') {
echo $table_end . " ";
} else {
echo "";
}
} // foreach ($field_list as $field_name)
echo $table_end . " ";
// Option for access level for group
echo $table_start;
if ($group['group_id'] == 3) {
$group['access_level'] = $CONFIG['allow_unlogged_access'];
}
foreach ($access_levels as $al_value => $al_label) {
$selected = (($group['access_level'] == $al_value) ? 'checked="checked"' : '');
echo $tr_start . $td_start;
echo <<{$al_label}
EOT;
echo $td_end . $tr_end;
}
echo $table_end;
echo " ";
echo <<< EOT
EOT;
} // while
mysql_free_result($result);
}
function get_post_var($var)
{
global $lang_errors;
$superCage = Inspekt::makeSuperCage();
if (!$superCage->post->keyExists($var)) {
cpg_die(CRITICAL_ERROR, $lang_errors['param_missing'] . " ($var)", __FILE__, __LINE__);
}
return $superCage->post->getInt($var);
}
function process_post_data()
{
global $CONFIG, $lang_errors;
$superCage = Inspekt::makeSuperCage();
//Check if the form token is valid
if(!checkFormToken()){
cpg_die(ERROR, $lang_errors['invalid_form_token'], __FILE__, __LINE__);
}
$field_list = array('group_name', 'group_quota', 'can_rate_pictures', 'can_send_ecards', 'can_post_comments', 'can_upload_pictures', 'pub_upl_need_approval', 'can_create_albums', 'priv_upl_need_approval', 'access_level');
$group_id_array = get_post_var('group_id');
$guests_disabled = ($CONFIG['allow_unlogged_access'] == 0);
foreach ($group_id_array as $key => $group_id) {
// For guest/anonymous group, update the configuration setting 'allow_unlogged_access'
if ($group_id == 3) {
cpg_config_set('allow_unlogged_access', $superCage->post->getInt('access_level_' . $group_id));
}
// For the guest/anonymous group, don't update the database if the settings were disabled
if (($group_id == 3) && $guests_disabled) {
continue;
}
$set_statement = '';
foreach ($field_list as $field) {
if ($field == 'group_name') {
$set_statement .= $field . "='" . $superCage->post->getEscaped($field . '_' . $group_id) . "',";
} else {
$set_statement .= $field . "='" . $superCage->post->getInt($field . '_' . $group_id) . "',";
}
}
$set_statement = substr($set_statement, 0, -1);
cpg_db_query("UPDATE {$CONFIG['TABLE_USERGROUPS']} SET $set_statement WHERE group_id = '$group_id' LIMIT 1");
}
}
if ($superCage->post->keyExists('del_sel') && $superCage->post->keyExists('delete_group')) {
$delete_group_arr = $superCage->post->getInt('delete_group');
if (is_array($delete_group_arr)) {
foreach ($delete_group_arr as $group_id) {
cpg_db_query("DELETE FROM {$CONFIG['TABLE_USERGROUPS']} WHERE group_id = '" . (int)$group_id . "' LIMIT 1");
cpg_db_query("UPDATE {$CONFIG['TABLE_USERS']} SET user_group = '2' WHERE user_group = '" . (int)$group_id . "'");
}
}
} elseif ($superCage->post->keyExists('new_group')) {
cpg_db_query("INSERT INTO {$CONFIG['TABLE_USERGROUPS']} (group_name) VALUES ('')");
} elseif ($superCage->post->keyExists('apply_modifs')) {
process_post_data();
}
pageheader($lang_groupmgr_php['title']);
echo <<