Showing 3 changed files with 36 additions and 47 deletions
+25 -40
lib/Gitprep/Manager.pm
... ...
@@ -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;
+10 -6
templates/auto/index.html.ep
... ...
@@ -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
       % }
+1 -1
templates/settings.html.ep
... ...
@@ -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