* hydra: project members can do stuff that the owner can do

[?]
Mar 10, 2010, 10:02 AM
NABL63FIFXIY2VIPFSK3RE4DLUVBVDJ7H2V6QA7LVY3RRQ3UWVGAC

Dependencies

  • [2] D5QIOJGP * Move everything up one directory.
  • [3] FPK5LF53 * Put the project-related actions in a separate controller. Put the
  • [4] 5NO7NCKT * Refactoring.
  • [5] A52HEFHQ * Allow builds to be restarted (if they failed with a transient error,
  • [6] CS7T2XFI
  • [*] LBNVQXUB * Build the /build stuff in a separate controller.

Change contents

  • replacement in src/lib/Hydra/Helper/CatalystUtils.pm at line 142
    [3.1434][3.1434:1439](),[3.1439][3.11102:11188](),[3.11188][3.1528:1625](),[3.1528][3.1528:1625]()
    error($c, "Only the project owner or administrators can perform this operation.")
    unless $c->check_user_roles('admin') || $c->user->username eq $project->owner->username;
    [3.1434]
    [3.1625]
    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 || defined $c->model('DB::ProjectMembers')->find({ project => $project, userName => $c->user->username });
  • file addition: ProjectMembers.pm (----------)
    [2.477]
    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;