Enable full https push with user client certificate creation
[girocco.git] / cgi / delproj.cgi
blob8d76966feb4254f710bb265aecfac39e4126553a
1 #!/usr/bin/perl
2 # (c) Petr Baudis <pasky@suse.cz>
3 # GPLv2
5 use strict;
6 use warnings;
8 use lib ".";
9 use Girocco::CGI;
10 use Girocco::Config;
11 use Girocco::Project;
12 use Girocco::Util;
14 my $gcgi = Girocco::CGI->new('Project Removal');
15 my $cgi = $gcgi->cgi;
17 my $name = $cgi->param('name');
19 unless (defined $name) {
20 print "<p>I need the project name as an argument now.</p>\n";
21 exit;
24 if (!Girocco::Project::valid_name($name)) {
25 print "<p>Invalid project name. Go away, sorcerer.</p>\n";
26 exit;
29 if (!Girocco::Project::does_exist($name)) {
30 print "<p>Sorry but this project does not exist. Now, how did you <em>get</em> here?!</p>\n";
31 exit;
34 my $proj = Girocco::Project->load($name);
35 $proj or die "not found project $name, that's really weird!";
36 $proj->{cpwd} = $cgi->param('cpwd');
38 if (!$proj->{mirror} && !$proj->is_empty) {
39 print "<p>Sorry but you can remove only mirrored or empty projects. Pushed projects cannot be removed. Please tell the administrator if you really want to.</p>\n";
40 exit;
43 if ($proj->has_forks()) {
44 print "<p>Sorry but this project has forks associated. Such projects cannot be removed. Please tell the administrator if you really want to.</p>\n";
45 exit;
48 if ($cgi->param('y0')) {
49 # submitted
50 if (not $proj->authenticate($gcgi)) {
51 exit;
53 $proj->delete;
54 print "<p>Project successfully deleted. Have a nice day.</p>\n";
55 exit;
58 my $url = $proj->{url};
59 my $type = $proj->{mirror} ? "mirrored" : "empty";
61 print <<EOT;
62 <p>Please confirm that you are going to remove $type project
63 $name ($url) from the site.</p>
64 <form method="post">
65 <input type="hidden" name="name" value="$name" />
66 EOT
67 if ($Girocco::Config::project_passwords) {
68 print <<EOT;
69 <p>Admin password: <input type="password" name="cpwd" /> <sup><a href="pwproj.cgi?name=$name">(forgot password?)</a></sup></p>
70 EOT
72 print <<EOT;
73 <p><input type="submit" name="y0" value="Remove" /></p>
74 </form>
75 EOT