... | ... |
@@ -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; |