C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\webcalendar\nonusers_handler.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php
include_once 'includes/init.php';
load_user_layers ();

if ( ! 
$is_admin ) {
  echo 
"<h2>" translate("Error") .
    
"</h2>" translate("You are not authorized") . ".\n";
  
print_trailer ();
  echo 
"</body></html>\n";
  exit;
}
$error "";

if ( 
$action == "Delete" || $action == translate ("Delete") ) {
  
// delete this nonuser calendar
  
$user $nid;

  
// Get event ids for all events this user is a participant
  
$events = array ();
  
$res dbi_query "SELECT webcal_entry.cal_id " .
    
"FROM webcal_entry, webcal_entry_user " .
    
"WHERE webcal_entry.cal_id = webcal_entry_user.cal_id " .
    
"AND webcal_entry_user.cal_login = '$user'" );
  if ( 
$res ) {
    while ( 
$row dbi_fetch_row $res ) ) {
      
$events[] = $row[0];
    }
  }

  
// Now count number of participants in each event...
  // If just 1, then save id to be deleted
  
$delete_em = array ();
  for ( 
$i 0$i count $events ); $i++ ) {
    
$res dbi_query "SELECT COUNT(*) FROM webcal_entry_user " .
      
"WHERE cal_id = " $events[$i] );
    if ( 
$res ) {
      if ( 
$row dbi_fetch_row $res ) ) {
        if ( 
$row[0] == )
      
$delete_em[] = $events[$i];
      }
      
dbi_free_result $res );
    }
  }
  
// Now delete events that were just for this user
  
for ( $i 0$i count $delete_em ); $i++ ) {
    
dbi_query "DELETE FROM webcal_entry WHERE cal_id = " $delete_em[$i] );
  }

  
// Delete user participation from events
  
dbi_query "DELETE FROM webcal_entry_user WHERE cal_login = '$user'" );

  
// Delete any layers other users may have that point to this user.
  
dbi_query "DELETE FROM webcal_user_layers WHERE cal_layeruser = '$user'" );

  
// Delete user
  
if ( ! dbi_query "DELETE FROM webcal_nonuser_cals WHERE cal_login = '$user'" ) )
     
$error translate ("Database error") . ": " dbi_error();

} else {
  if ( 
$action == "Save" || $action == translate ("Save") ) {
  
// Updating
    
$sql "UPDATE webcal_nonuser_cals SET ";
    if (
$nlastname$sql .= " cal_lastname = '$nlastname', ";
    if (
$nfirstname$sql .= " cal_firstname = '$nfirstname', ";
    
$sql .= "cal_admin = '$nadmin' WHERE cal_login = '$nid'";
    if ( ! 
dbi_query $sql ) ) {
      
$error translate ("Database error") . ": " dbi_error();
    }
  } else {
  
// Adding
    
if (preg_match"/^[\w]+$/"$nid )) {
      
$nid $NONUSER_PREFIX.$nid;
      
$sql "INSERT INTO webcal_nonuser_cals " .
      
"( cal_login, cal_firstname, cal_lastname, cal_admin ) " .
      
"VALUES ( '$nid', '$nfirstname', '$nlastname', '$nadmin' )";
      if ( ! 
dbi_query $sql ) ) {
        
$error translate ("Database error") . ": " dbi_error();
      }
    } else {
      
$error translate ("Calendar ID")." ".translate ("word characters only").".";
    }
  }
}
if ( empty ( 
$error ) ) do_redirect "nonusers.php" );

print_header();
?>

<h2><?php etranslate("Error")?></h2>

<blockquote>
<?php

echo $error;
//if ( $sql != "" )
//  echo "<br /><br /><b>SQL:</b> $sql";
//
?>
</blockquote>

<?php print_trailer(); ?>
</body>
</html>