* Allow authorised users to create projects.

[?]
Mar 24, 2009, 2:22 PM
BHJ62LYETTTVB53IGPMYJ4H2BT26AKZBGDI32DIVHBX7ZMFOXILAC

Dependencies

  • [2] UWVMQIAC * Refactoring.
  • [3] EYNG4EL4 * Regenerate the bindings from a clean sqlite database.
  • [4] RU7AQO7U * Role-based access control. Only admins can create projects. Only
  • [5] 6LTPI6B2
  • [6] FPK5LF53 * Put the project-related actions in a separate controller. Put the
  • [7] W6DC6K4I * Happy Javascript hacking.
  • [8] KVPYKWZ7 * Allow `-' in project/jobset names.
  • [9] V4RNHJNR * Add a link to each project's homepage. Suggested by karltk.
  • [*] 7YBYT2LQ

Change contents

  • edit in src/lib/Hydra/Controller/Project.pm at line 66
    [3.2903]
    [3.2903]
    }
    sub requireMayCreateProjects {
    my ($c) = @_;
    requireLogin($c) if !$c->user_exists;
    error($c, "Only administrators or authorised users can perform this operation.")
    unless $c->check_user_roles('admin') || $c->check_user_roles('create-projects');
  • replacement in src/lib/Hydra/Controller/Project.pm at line 82
    [3.2971][3.2971:2993]()
    requireAdmin($c);
    [3.2971]
    [3.2993]
    requireMayCreateProjects($c);
  • replacement in src/lib/Hydra/Controller/Project.pm at line 93
    [3.3174][3.3174:3196]()
    requireAdmin($c);
    [3.3174]
    [3.3196]
    requireMayCreateProjects($c);
  • edit in src/lib/Hydra/Controller/Project.pm at line 101
    [3.3459]
    [3.3459]
    my $owner = $c->check_user_roles('admin')
    ? trim $c->request->params->{owner} : $c->user->username;
  • replacement in src/lib/Hydra/Controller/Project.pm at line 104
    [3.3516][3.3516:3616]()
    {name => $projectName, displayname => "", owner => trim $c->request->params->{owner}});
    [3.3516]
    [3.3616]
    {name => $projectName, displayname => "", owner => $owner});
  • replacement in src/root/project.tt at line 182
    [3.5290][2.3209:3347]()
    <td><tt>[% INCLUDE maybeEditString param="owner" value=project.owner.username edit=(edit && c.check_user_roles('admin')) %]</tt></td>
    [3.5290]
    [3.3619]
    <td><tt>[% INCLUDE maybeEditString param="owner" value=(project.owner.username || c.user.username) edit=(edit && c.check_user_roles('admin')) %]</tt></td>