forked from lix-project/hydra
* hydra: project members can do stuff that the owner can do
This commit is contained in:
parent
f816a5a28d
commit
1c4585dae3
|
@ -139,9 +139,9 @@ sub requireProjectOwner {
|
||||||
my ($c, $project) = @_;
|
my ($c, $project) = @_;
|
||||||
|
|
||||||
requireLogin($c) if !$c->user_exists;
|
requireLogin($c) if !$c->user_exists;
|
||||||
|
|
||||||
error($c, "Only the project owner or administrators can perform this operation.")
|
error($c, "Only the project members or administrators can perform this operation.")
|
||||||
unless $c->check_user_roles('admin') || $c->user->username eq $project->owner->username;
|
unless $c->check_user_roles('admin') || $c->user->username eq $project->owner->username || defined $c->model('DB::ProjectMembers')->find({ project => $project, userName => $c->user->username });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
93
src/lib/Hydra/Schema/ProjectMembers.pm
Normal file
93
src/lib/Hydra/Schema/ProjectMembers.pm
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
package Hydra::Schema::ProjectMembers;
|
||||||
|
|
||||||
|
# Created by DBIx::Class::Schema::Loader
|
||||||
|
# DO NOT MODIFY THE FIRST PART OF THIS FILE
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
use base 'DBIx::Class::Core';
|
||||||
|
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
Hydra::Schema::ProjectMembers
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
__PACKAGE__->table("ProjectMembers");
|
||||||
|
|
||||||
|
=head1 ACCESSORS
|
||||||
|
|
||||||
|
=head2 project
|
||||||
|
|
||||||
|
data_type: text
|
||||||
|
default_value: undef
|
||||||
|
is_foreign_key: 1
|
||||||
|
is_nullable: 0
|
||||||
|
size: undef
|
||||||
|
|
||||||
|
=head2 username
|
||||||
|
|
||||||
|
data_type: text
|
||||||
|
default_value: undef
|
||||||
|
is_foreign_key: 1
|
||||||
|
is_nullable: 0
|
||||||
|
size: undef
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
__PACKAGE__->add_columns(
|
||||||
|
"project",
|
||||||
|
{
|
||||||
|
data_type => "text",
|
||||||
|
default_value => undef,
|
||||||
|
is_foreign_key => 1,
|
||||||
|
is_nullable => 0,
|
||||||
|
size => undef,
|
||||||
|
},
|
||||||
|
"username",
|
||||||
|
{
|
||||||
|
data_type => "text",
|
||||||
|
default_value => undef,
|
||||||
|
is_foreign_key => 1,
|
||||||
|
is_nullable => 0,
|
||||||
|
size => undef,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
__PACKAGE__->set_primary_key("project", "username");
|
||||||
|
|
||||||
|
=head1 RELATIONS
|
||||||
|
|
||||||
|
=head2 project
|
||||||
|
|
||||||
|
Type: belongs_to
|
||||||
|
|
||||||
|
Related object: L<Hydra::Schema::Projects>
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
__PACKAGE__->belongs_to("project", "Hydra::Schema::Projects", { name => "project" }, {});
|
||||||
|
|
||||||
|
=head2 username
|
||||||
|
|
||||||
|
Type: belongs_to
|
||||||
|
|
||||||
|
Related object: L<Hydra::Schema::Users>
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
__PACKAGE__->belongs_to(
|
||||||
|
"username",
|
||||||
|
"Hydra::Schema::Users",
|
||||||
|
{ username => "username" },
|
||||||
|
{},
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
# Created by DBIx::Class::Schema::Loader v0.05003 @ 2010-03-10 10:46:50
|
||||||
|
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:/5E52ddbqTr6+kf+ixYZGA
|
||||||
|
|
||||||
|
|
||||||
|
# You can replace this text with custom content, and it will be preserved on regeneration
|
||||||
|
1;
|
Loading…
Reference in a new issue