| ... | ... |
@@ -150,7 +150,9 @@ sub default_branch {
|
| 150 | 150 |
} |
| 151 | 151 |
|
| 152 | 152 |
sub fork_project {
|
| 153 |
- my ($self, $user, $original_user, $project) = @_; |
|
| 153 |
+ my ($self, $user_id, $original_user_id, $project_id) = @_; |
|
| 154 |
+ |
|
| 155 |
+ my $original_user_row_id = $self->api->get_user_row_id($original_user_id); |
|
| 154 | 156 |
|
| 155 | 157 |
# Fork project |
| 156 | 158 |
my $dbi = $self->app->dbi; |
| ... | ... |
@@ -159,25 +161,21 @@ sub fork_project {
|
| 159 | 161 |
$dbi->connector->txn(sub {
|
| 160 | 162 |
|
| 161 | 163 |
# Original project id |
| 162 |
- my $project_info = $dbi->model('project')->select(
|
|
| 163 |
- ['original_project', 'private'], |
|
| 164 |
- where => {user => $original_user, id => $project}
|
|
| 164 |
+ my $project = $dbi->model('project')->select(
|
|
| 165 |
+ ['row_id', 'private'], |
|
| 166 |
+ where => {user => $original_user_row_id, id => $project_id}
|
|
| 165 | 167 |
)->one; |
| 166 | 168 |
|
| 167 |
- my $original_project = $project_info->{original_project};
|
|
| 168 |
- |
|
| 169 |
- croak "Can't get original project id" |
|
| 170 |
- unless defined $original_project && $original_project > 0; |
|
| 169 |
+ use D;d [$original_user_row_id, $project_id, $project]; |
|
| 171 | 170 |
|
| 172 | 171 |
# Create project |
| 173 | 172 |
eval {
|
| 174 | 173 |
$self->_create_project( |
| 175 |
- $user, |
|
| 176 |
- $project, |
|
| 174 |
+ $user_id, |
|
| 175 |
+ $project_id, |
|
| 177 | 176 |
{
|
| 178 |
- original_user => $original_user, |
|
| 179 |
- original_project => $original_project, |
|
| 180 |
- private => $project_info->{private}
|
|
| 177 |
+ original_project => $project->{row_id},
|
|
| 178 |
+ private => $project->{private}
|
|
| 181 | 179 |
} |
| 182 | 180 |
); |
| 183 | 181 |
}; |
| ... | ... |
@@ -185,7 +183,7 @@ sub fork_project {
|
| 185 | 183 |
|
| 186 | 184 |
# Create repository |
| 187 | 185 |
eval {
|
| 188 |
- $self->_fork_rep($original_user, $project, $user, $project); |
|
| 186 |
+ $self->_fork_rep($original_user_id, $project_id, $user_id, $project_id); |
|
| 189 | 187 |
}; |
| 190 | 188 |
croak $error = $@ if $@; |
| 191 | 189 |
}); |
| ... | ... |
@@ -247,7 +245,7 @@ sub member_projects {
|
| 247 | 245 |
} |
| 248 | 246 |
|
| 249 | 247 |
sub create_project {
|
| 250 |
- my ($self, $user, $project, $opts) = @_; |
|
| 248 |
+ my ($self, $user_id, $project_id, $opts) = @_; |
|
| 251 | 249 |
|
| 252 | 250 |
my $params = {};
|
| 253 | 251 |
if ($opts->{private}) {
|
| ... | ... |
@@ -259,9 +257,9 @@ sub create_project {
|
| 259 | 257 |
my $error; |
| 260 | 258 |
eval {
|
| 261 | 259 |
$dbi->connector->txn(sub {
|
| 262 |
- eval { $self->_create_project($user, $project, $params) };
|
|
| 260 |
+ eval { $self->_create_project($user_id, $project_id, $params) };
|
|
| 263 | 261 |
croak $error = $@ if $@; |
| 264 |
- eval {$self->_create_rep($user, $project, $opts) };
|
|
| 262 |
+ eval {$self->_create_rep($user_id, $project_id, $opts) };
|
|
| 265 | 263 |
croak $error = $@ if $@; |
| 266 | 264 |
}); |
| 267 | 265 |
}; |
| ... | ... |
@@ -930,13 +928,17 @@ sub parse_authorized_keys_file {
|
| 930 | 928 |
} |
| 931 | 929 |
|
| 932 | 930 |
sub _create_project {
|
| 933 |
- my ($self, $user, $project, $params) = @_; |
|
| 931 |
+ my ($self, $user_id, $project_id, $params) = @_; |
|
| 932 |
+ |
|
| 933 |
+ my $user_row_id = $self->api->get_user_row_id($user_id); |
|
| 934 | 934 |
$params ||= {};
|
| 935 |
+ $params->{user} = $user_row_id;
|
|
| 936 |
+ $params->{id} = $project_id;
|
|
| 935 | 937 |
|
| 936 | 938 |
# Create project |
| 937 | 939 |
my $dbi = $self->app->dbi; |
| 938 | 940 |
$dbi->connector->txn(sub {
|
| 939 |
- $dbi->model('project')->insert($params, id => [$user, $project]);
|
|
| 941 |
+ $dbi->model('project')->insert($params);
|
|
| 940 | 942 |
}); |
| 941 | 943 |
} |
| 942 | 944 |
|
| ... | ... |
@@ -1175,15 +1177,15 @@ sub _exists_rep {
|
| 1175 | 1177 |
} |
| 1176 | 1178 |
|
| 1177 | 1179 |
sub _fork_rep {
|
| 1178 |
- my ($self, $user, $project, $to_user, $to_project) = @_; |
|
| 1180 |
+ my ($self, $user_id, $project_id, $to_user_id, $to_project_id) = @_; |
|
| 1179 | 1181 |
|
| 1180 | 1182 |
# Fork repository |
| 1181 | 1183 |
my $git = $self->app->git; |
| 1182 | 1184 |
|
| 1183 |
- my $rep_info = $self->app->rep_info($user, $project); |
|
| 1185 |
+ my $rep_info = $self->app->rep_info($user_id, $project_id); |
|
| 1184 | 1186 |
my $rep_git_dir = $rep_info->{git_dir};
|
| 1185 | 1187 |
|
| 1186 |
- my $to_rep_info = $self->app->rep_info($to_user, $to_project); |
|
| 1188 |
+ my $to_rep_info = $self->app->rep_info($to_user_id, $to_project_id); |
|
| 1187 | 1189 |
my $to_rep_git_dir = $to_rep_info->{git_dir};
|
| 1188 | 1190 |
|
| 1189 | 1191 |
my @cmd = ( |
| ... | ... |
@@ -14,8 +14,6 @@ |
| 14 | 14 |
where => {id => $user_id, admin => 0}
|
| 15 | 15 |
)->one; |
| 16 | 16 |
|
| 17 |
- warn $user_id; |
|
| 18 |
- |
|
| 19 | 17 |
# Projects |
| 20 | 18 |
unless (app->manager->exists_user($user_id)) {
|
| 21 | 19 |
$self->reply->not_found; |