... | ... |
@@ -2,14 +2,14 @@ package Gitprep::Manager; |
2 | 2 |
use Mojo::Base -base; |
3 | 3 |
|
4 | 4 |
use Carp 'croak'; |
5 |
+use Encode 'encode'; |
|
5 | 6 |
use File::Copy 'move'; |
6 | 7 |
use File::Path qw/mkpath rmtree/; |
7 | 8 |
use File::Temp (); |
8 |
-use Encode 'encode'; |
|
9 | 9 |
|
10 | 10 |
has 'app'; |
11 | 11 |
|
12 |
-sub admin_user { |
|
12 |
+sub admin_id { |
|
13 | 13 |
my $self = shift; |
14 | 14 |
|
15 | 15 |
# Admin user |
... | ... |
@@ -19,18 +19,10 @@ sub admin_user { |
19 | 19 |
return $admin_user; |
20 | 20 |
} |
21 | 21 |
|
22 |
-sub exists_admin { |
|
23 |
- my $self = shift; |
|
24 |
- |
|
25 |
- my $row = $self->app->dbi->model('user') |
|
26 |
- ->select(where => {admin => 1})->one; |
|
27 |
- |
|
28 |
- return $row ? 1 : 0;; |
|
29 |
-} |
|
30 |
- |
|
31 | 22 |
sub default_branch { |
32 | 23 |
my ($self, $user, $project) = @_; |
33 | 24 |
|
25 |
+ # Default branch |
|
34 | 26 |
my $default_branch = $self->app->dbi->model('project') |
35 | 27 |
->select('default_branch', id => [$user, $project]) |
36 | 28 |
->value; |
... | ... |
@@ -81,9 +73,8 @@ sub members { |
81 | 73 |
sub create_project { |
82 | 74 |
my ($self, $user, $project, $opts) = @_; |
83 | 75 |
|
84 |
- my $dbi = $self->app->dbi; |
|
85 |
- |
|
86 | 76 |
# Create project |
77 |
+ my $dbi = $self->app->dbi; |
|
87 | 78 |
my $error; |
88 | 79 |
eval { |
89 | 80 |
$dbi->connector->txn(sub { |
... | ... |
@@ -99,9 +90,8 @@ sub create_project { |
99 | 90 |
sub create_user { |
100 | 91 |
my ($self, $user, $data) = @_; |
101 | 92 |
|
102 |
- my $dbi = $self->app->dbi; |
|
103 |
- |
|
104 | 93 |
# Create user |
94 |
+ my $dbi = $self->app->dbi; |
|
105 | 95 |
my $error; |
106 | 96 |
eval { |
107 | 97 |
$dbi->connector->txn(sub { |
... | ... |
@@ -117,9 +107,8 @@ sub create_user { |
117 | 107 |
sub delete_project { |
118 | 108 |
my ($self, $user, $project) = @_; |
119 | 109 |
|
120 |
- my $dbi = $self->app->dbi; |
|
121 |
- |
|
122 | 110 |
# Delete project |
111 |
+ my $dbi = $self->app->dbi; |
|
123 | 112 |
my $error; |
124 | 113 |
eval { |
125 | 114 |
$dbi->connector->txn(sub { |
... | ... |
@@ -130,16 +119,13 @@ sub delete_project { |
130 | 119 |
}); |
131 | 120 |
}; |
132 | 121 |
croak $error if $@; |
133 |
- |
|
134 |
- return 1; |
|
135 | 122 |
} |
136 | 123 |
|
137 | 124 |
sub delete_user { |
138 | 125 |
my ($self, $user) = @_; |
139 | 126 |
|
140 |
- my $dbi = $self->app->dbi; |
|
141 |
- |
|
142 | 127 |
# Delete user |
128 |
+ my $dbi = $self->app->dbi; |
|
143 | 129 |
my $error; |
144 | 130 |
eval { |
145 | 131 |
$dbi->connector->txn(sub { |
... | ... |
@@ -150,16 +136,13 @@ sub delete_user { |
150 | 136 |
}); |
151 | 137 |
}; |
152 | 138 |
croak $error if $@; |
153 |
- |
|
154 |
- return 1; |
|
155 | 139 |
} |
156 | 140 |
|
157 | 141 |
sub original_project { |
158 | 142 |
my ($self, $user, $project) = @_; |
159 | 143 |
|
160 |
- my $dbi = $self->app->dbi; |
|
161 |
- |
|
162 |
- my $original_project = $dbi->model('project') |
|
144 |
+ # Original project |
|
145 |
+ my $original_project = $self->app->dbi->model('project') |
|
163 | 146 |
->select('original_project', id => [$user, $project]) |
164 | 147 |
->value; |
165 | 148 |
return unless defined $original_project && length $original_project; |
... | ... |
@@ -170,9 +153,8 @@ sub original_project { |
170 | 153 |
sub original_user { |
171 | 154 |
my ($self, $user, $project) = @_; |
172 | 155 |
|
173 |
- my $dbi = $self->app->dbi; |
|
174 |
- |
|
175 |
- my $original_user = $dbi->model('project') |
|
156 |
+ # Orginal user |
|
157 |
+ my $original_user = $self->app->dbi->model('project') |
|
176 | 158 |
->select('original_user', id => [$user, $project]) |
177 | 159 |
->value; |
178 | 160 |
return unless defined $original_user && length $original_user; |
... | ... |
@@ -182,7 +164,8 @@ sub original_user { |
182 | 164 |
|
183 | 165 |
sub users { |
184 | 166 |
my $self = shift; |
185 |
- |
|
167 |
+ |
|
168 |
+ # Users |
|
186 | 169 |
my $users = $self->app->dbi->model('user')->select( |
187 | 170 |
'id', |
188 | 171 |
where => [':admin{<>}',{admin => 1}], |
... | ... |
@@ -195,33 +178,35 @@ sub users { |
195 | 178 |
sub _delete_db_user { |
196 | 179 |
my ($self, $user) = @_; |
197 | 180 |
|
181 |
+ # Delete database user |
|
198 | 182 |
$self->app->dbi->model('user')->delete(id => $user); |
199 | 183 |
} |
200 | 184 |
|
201 | 185 |
sub _delete_user_dir { |
202 | 186 |
my ($self, $user) = @_; |
203 |
- |
|
204 |
- my $home = $self->app->git->rep_home; |
|
205 |
- my $user_dir = "$home/$user"; |
|
187 |
+ |
|
188 |
+ # Delete user directory |
|
189 |
+ my $rep_home = $self->app->git->rep_home; |
|
190 |
+ my $user_dir = "$rep_home/$user"; |
|
206 | 191 |
rmtree $user_dir; |
207 | 192 |
} |
208 | 193 |
|
209 | 194 |
sub _create_db_user { |
210 | 195 |
my ($self, $user, $data) = @_; |
211 | 196 |
|
197 |
+ # Create database user |
|
212 | 198 |
$self->app->dbi->model('user')->insert($data, id => $user); |
213 | 199 |
} |
214 | 200 |
|
215 | 201 |
sub _create_user_dir { |
216 | 202 |
my ($self, $user) = @_; |
217 |
- |
|
218 |
- my $home = $self->app->git->rep_home; |
|
219 |
- my $user_dir = "$home/$user"; |
|
203 |
+ |
|
204 |
+ # Create user directory |
|
205 |
+ my $rep_home = $self->app->git->rep_home; |
|
206 |
+ my $user_dir = "$rep_home/$user"; |
|
220 | 207 |
mkpath $user_dir; |
221 | 208 |
} |
222 | 209 |
|
223 |
-sub exists_project { shift->_exists_project(@_) } |
|
224 |
- |
|
225 | 210 |
sub fork_project { |
226 | 211 |
my ($self, $user, $original_user, $project) = @_; |
227 | 212 |
|
... | ... |
@@ -293,7 +278,7 @@ sub rename_project { |
293 | 278 |
|
294 | 279 |
my $error = {}; |
295 | 280 |
|
296 |
- if ($self->_exists_project($user, $renamed_project) |
|
281 |
+ if ($self->exists_project($user, $renamed_project) |
|
297 | 282 |
|| $self->_exists_rep($user, $renamed_project)) |
298 | 283 |
{ |
299 | 284 |
$error->{message} = 'Already exists'; |
... | ... |
@@ -569,7 +554,7 @@ sub _delete_rep { |
569 | 554 |
if -e $rep; |
570 | 555 |
} |
571 | 556 |
|
572 |
-sub _exists_project { |
|
557 |
+sub exists_project { |
|
573 | 558 |
my ($self, $user, $project) = @_; |
574 | 559 |
|
575 | 560 |
my $dbi = $self->app->dbi; |
... | ... |
@@ -1,10 +1,13 @@ |
1 | 1 |
<% |
2 |
- my $api = gitprep_api; |
|
3 |
- my $users = app->manager->users; |
|
2 |
+ # Users |
|
3 |
+ my $manager = app->manager; |
|
4 |
+ my $users = $manager->users; |
|
4 | 5 |
|
5 |
- unless (app->manager->exists_admin) { |
|
6 |
+ # Goto Start page |
|
7 |
+ unless (defined $manager->admin_id) { |
|
6 | 8 |
$self->redirect_to('/_start'); |
7 |
- return 1; |
|
9 |
+ $self->finish_rendering; |
|
10 |
+ return; |
|
8 | 11 |
} |
9 | 12 |
%> |
10 | 13 |
|
... | ... |
@@ -15,9 +18,10 @@ |
15 | 18 |
<h3>Users</h3> |
16 | 19 |
<ul class="nav nav-tabs nav-stacked"> |
17 | 20 |
% for my $user (@$users) { |
21 |
+ % my $uid = $user->{id}; |
|
18 | 22 |
<li> |
19 |
- <a href="<%= url_for("/$user->{id}") %>"> |
|
20 |
- <%= $user->{id} %> |
|
23 |
+ <a href="<%= url_for("/$uid") %>"> |
|
24 |
+ <%= $uid %> |
|
21 | 25 |
</a> |
22 | 26 |
</li> |
23 | 27 |
% } |
... | ... |
@@ -175,7 +175,7 @@ |
175 | 175 |
}); |
176 | 176 |
|
177 | 177 |
// Select default branch |
178 |
- var default_branch = "<%= $api->default_branch($user, $project) %>"; |
|
178 |
+ var default_branch = "<%= app->manager->default_branch($user, $project) %>"; |
|
179 | 179 |
$('select[name="default_branch"]').val(default_branch); |
180 | 180 |
}); |
181 | 181 |
|