admins or project owners can edit or delete a project.
RU7AQO7U4HCWJNQTR2KRGDLLG24WYD47MWIHREV6SIAPCPDQHAWQC S66BOMVUACAUDSGSDWP7ZIXVMZSQHWXOZYVTB7ILUCWZ7DDFAKVAC J5UVLXOK6EDIL5I7VKWH4V2QDS4DPD7FHRK6XBWSXFRQS4JKXFZQC GCHNNFZPCYM3BPOCU5GASALJ6ONWMEVEEGVD7KKLTWC7YQKJ5KZAC W6DC6K4INJQOJYR553ISCKZV7YIOGHEM3FZQPOLAPSZQ3KSJDMRQC 2AUODJBTW2UJ47UB3SREZ7O7UTTJDQ4AGUQMPZAI4F3Y6BUF6LUQC KFFNFE4D7OTXSHUI5W5FD4SZNZIUCOFNY44ZCQXG5SNAPHYQYQHAC UVMFS73TI6RARMAAGY2UVS5LCPZUKLQECXQQVER4F7S4BNUXQQ3AC PHX2HIVGHHKCAX6VNN2WXD4LRGSA74KQMJCCTMHK7HS6JPELVECAC L2E6EVE2RVFVDCUNRJ4CZYSQNS2DZUA5DTBETHBDUQUV2KQQRAOQC CLJQCY2XHIDNNMFBJ5PK3GQEN6RFALEFKXBJRWZPEIKR4PR5ZQ5AC ZVTSOVHNQNQCRF3N44RKDQSL3UM7HSLTAXICMWEE6EIA6SWJXZCQC M552HLIAP52D42AVXVC5SGROAYN2TBCEUZOXESWEMBBUX7G3U6TAC X27GNHDV5KPZ5GSH6DCAJMNCEMZLCP7M43JWF2X3O5QWXMOX273AC IK53RV4VGOHLCZGQCCIKPB45M3C7M7YMNBOJFBGZJ4LWIZNU4QNQC TWVSALRLHGSY6SHLMLT53K2A5SUCPU3SNFPZ2KWYOLDQUJBSZ2OAC PKPWUHUXLGPQFQUTNHLVGWNT6AB3H2VMDCBKT6IPZDC53CEL4W7QC US27ZTX5HCH53SQN2KFSCV2GL2625XL5J3WCDR7D5HLPA7ZSPX5AC 7YBYT2LQML2PKEO6UO4444AGSASS664UCDXW2YO3ALB7THQHCEBQC N22GPKYTOLZLBGTGDATQDVZ4R5APZEAOIA7L32X4UXBH4XNI7MWAC if ($subcommand ne "") {return requireLogin($c) if !$c->user_exists;if (!$c->check_user_roles('admin') && $c->user->username ne $project->owner) {return error($c, "Only the project owner or the administrator can perform this operation.");}if ($subcommand eq "edit") {$c->stash->{edit} = 1;}elsif ($subcommand eq "submit" && $isPosted) {$c->model('DB')->schema->txn_do(sub {updateProject($c, $project);});return $c->res->redirect($c->uri_for("/project", trim $c->request->params->{name}));}
if ($subcommand eq "edit") {$c->stash->{edit} = 1;} elsif ($subcommand eq "submit" && $isPosted) {$c->model('DB')->schema->txn_do(sub {updateProject($c, $project);});return $c->res->redirect($c->uri_for("/project", trim $c->request->params->{name}));} elsif ($subcommand eq "delete" && $isPosted) {$c->model('DB')->schema->txn_do(sub {$project->delete;});return $c->res->redirect($c->uri_for("/"));} elsif ($subcommand eq "") {} else {return error($c, "Unknown subcommand $subcommand.");
elsif ($subcommand eq "delete" && $isPosted) {$c->model('DB')->schema->txn_do(sub {$project->delete;});return $c->res->redirect($c->uri_for("/"));}else {return error($c, "Unknown subcommand $subcommand.");}
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-26 20:02:52# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:LRcAsbLWbetVw+DCDnv/9w
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-27 00:07:44# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:BEl4PIMuykTwqyl7La0pKQ
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-26 20:02:52# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Pu6gWxltfVJJ+9DBiC9bYg
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-27 00:07:44# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:uEkpbb6hgGe47sDE7KtLDQ
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-26 20:02:52# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:X5GXZRLAaCMl8OKBGjtztw
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-27 00:07:44# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:CfJnTtjRXGV5dD/MWbrJxA
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-26 20:02:52# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:h32zqOEGcpXQy7pshiWVMA
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-27 00:07:44# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:AFGyXbj7hMxpQxjzgpvrCw
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-26 20:02:52# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:egegc7kFKTt9cEGuomi0cQ
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-27 00:07:44# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:O6brsCdVF4TfvtmI9R+TOA
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-26 20:02:52# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:kFD90OFRM1aqVVCBCh/geA
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-27 00:07:44# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:klPmbTcngdzKN+Dzhj8gvw
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-26 20:02:52# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:r/3GaLIIWaX1fh8kfuQp+w
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-27 00:07:44# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:vGVYmR4k3kezEwiCGSXZWQ
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-26 20:02:52# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:yTp1XcBSQ+6OJvVLugRh1w
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-27 00:07:44# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ORooKeTpZBPOQCgosHLGeg
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-26 20:02:52# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:lYdNLENxLW2mtZ2w+jou8w
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-27 00:07:44# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ZeFpiIuYHvaFqRSppuUpoA
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-26 20:02:52# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Bk/vLWpBjR3ZU0p1KN7KfA
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-27 00:07:44# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:/PmcpU0eiLZT+dlUZYyTaQ
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-26 20:02:52# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:9xvvQg/H0oibycB6B45V5A
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-27 00:07:44# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:EGgAWXbhcEC0uBobJMfpUw
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-26 20:02:52# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:3YMBhMqCjtpUjoTx4JLTOw
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-27 00:07:44# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:jdyfk3vHisJRyE+VNR6dNA
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-26 20:02:52# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:SSKVFeg7ieeLJcF+s1uWWw
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-27 00:07:44# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:N/yG0cEhf0Y9Ve9YkdwRfA
package Hydra::Schema::Userroles;use strict;use warnings;use base 'DBIx::Class';__PACKAGE__->load_components("Core");__PACKAGE__->table("UserRoles");__PACKAGE__->add_columns("username",{ data_type => "text", is_nullable => 0, size => undef },"role",{ data_type => "text", is_nullable => 0, size => undef },);__PACKAGE__->set_primary_key("username", "role");__PACKAGE__->belongs_to("username", "Hydra::Schema::Users", { username => "username" });# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-27 00:07:44# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:f16iU2I/Htdo7mXHvAdwyQ# You can replace this text with custom content, and it will be preserved on regeneration1;
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-26 20:02:52# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:BgF6FK+9d7+cc72sp6pfCQ
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-27 00:07:44# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:wwRBfogrkKN2QdgmFjcUlA
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-26 20:02:52# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:jK/9VMZBot2RJwtlHA6QIg
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-27 00:07:44# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:OcrPIHyQBUa+kF79Ltf95g
[% WRAPPER layout.tt title="Login to Hydra" %][% PROCESS common.tt %]<h1>Login</h1>[% IF c.user_exists %]<p>You are already logged in as <tt>[% c.user.username %]</tt>.You can <a href="[% c.uri_for('/logout') %]">logout</a> here.</p>[% ELSE %][% IF errorMsg %]<p class="error">Error: [% errorMsg %]</p>[% END %]<form method="post" action="[% c.uri_for('/login') %]"><table class="layoutTable"><tr><td>Username:</td><td><input type="text" name="username" /></td></tr><tr><td>Password:</td><td><input type="password" name="password" /></td></tr><tr colspan="2"><td><input type="submit" name="login" value="Login" /></td></tr></table></form>[% END %][% END %]
create table UserRoles (userName text not null,role text not null,primary key (userName, role),foreign key (userName) references Users(userName) -- ignored by sqlite);create trigger cascadeUserDeletebefore delete on Usersfor each row begindelete from UserRoles where userName = old.userName;end;