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