2 # Create, modify or delete a view
4 require './mysql-lib.pl';
6 &error_setup($text{'view_err'});
7 &can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
8 $access{'edonly'} && &error($text{'dbase_ecannot'});
9 $access{'views'} || &error($text{'view_ecannot'});
13 $sql = "drop view "."estr($in{'old'});
14 &execute_sql_logged($in{'db'}, $sql);
15 &webmin_log("delete", "view", $in{'old'}, \%in);
20 $in{'name'} =~ /^\S+$/ || &error($text{'view_ename'});
21 @views = &list_views($in{'db'});
22 &indexof($in{'name'}, @views) >= 0 &&
23 &error($text{'view_eclash'});
24 @tables = &list_tables($in{'db'});
25 &indexof($in{'name'}, @tables) >= 0 &&
26 &error($text{'view_eclash2'});
28 $in{'query'} =~ /\S/ || &error($text{'view_equery'});
29 $in{'query'} =~ s/\r|\n/ /g;
30 $in{'definer_def'} || $in{'definer'} =~ /\S/ ||
31 &error($text{'view_edefiner'});
34 # Alter the existing view
36 "algorithm = $in{'algorithm'} ".
37 "definer = $in{'definer'} ".
38 "sql security $in{'security'} ".
39 "view "."estr($in{'old'})." ".
41 ($in{'check'} ? "with $in{'check'} check option" : "");
46 "algorithm = $in{'algorithm'} ".
47 ($in{'definer_def'} ? "" : "definer = $in{'definer'} ").
48 ($in{'security'} ? "sql security $in{'security'} " : "").
49 "view "."estr($in{'name'})." ".
51 ($in{'check'} ? "with $in{'check'} check option" : "");
53 &execute_sql_logged($in{'db'}, $sql);
56 &webmin_log("modify", "view", $in{'old'}, \%in);
59 &webmin_log("create", "view", $in{'name'}, \%in);
62 &redirect("edit_dbase.cgi?db=$in{'db'}");