Browse Source

Merge branch 'master' of https://bitbucket.org/lebouquetin/protov1

Damien Accorsi 10 years ago
parent
commit
2a501596fa

+ 9 - 1
pboard/pboard/controllers/api.py View File

@@ -14,7 +14,7 @@ from datetime import datetime
14 14
 from PIL import Image as pil
15 15
 
16 16
 import tg
17
-from tg import expose, flash, require, url, lurl, request, redirect, tmpl_context
17
+from tg import expose, flash, require, url, lurl, request, response, redirect, tmpl_context
18 18
 from tg.i18n import ugettext as _, lazy_ugettext as l_
19 19
 from tg import predicates as tgp
20 20
 
@@ -27,10 +27,18 @@ from pboard.model import auth as pma
27 27
 from pboard.model import serializers as pms
28 28
 from pboard import model as pm
29 29
 from pboard.lib.auth import can_read, can_write
30
+import repoze.who.api
30 31
 
31 32
 from pboard.controllers import apimenu as pcam
32 33
 
33 34
 
35
+        who_api = repoze.who.api.get_api(request.environ)
36
+        creds = {}
37
+        creds['login'] = email
38
+        creds['password'] = password
39
+        authenticated, headers = who_api.login(creds)
40
+        response.headers = headers
41
+
34 42
 FIXME_ERROR_CODE=-1
35 43
 
36 44
 

+ 3 - 0
pboard/pboard/controllers/root.py View File

@@ -163,5 +163,8 @@ class RootController(BaseController):
163 163
 
164 164
         return dict(search_string=keywords, found_nodes=loFoundNodes)
165 165
 
166
+    @expose('pboard.templates.create_account')
167
+    def create_account(self):
168
+        return dict()
166 169
 
167 170
 

+ 3 - 2
pboard/pboard/lib/dbapi.py View File

@@ -244,12 +244,13 @@ class PODUserFilteredApiController(object):
244 244
     for keyword in plKeywordList:
245 245
         loKeywordFilteringClauses.append(pbmd.PBNode.data_label.ilike('%'+keyword+'%'))
246 246
         loKeywordFilteringClauses.append(pbmd.PBNode.data_content.ilike('%'+keyword+'%'))
247
+        loKeywordFilteringClauses.append(pbmd.PBNode.data_file_name.ilike('%'+keyword+'%'))
247 248
 
248 249
     loKeywordFilteringClausesAsOr = sqla.or_(*loKeywordFilteringClauses) # Combine them with or to a BooleanClauseList
249 250
 
250
-    loResultsForSomeKeywords = DBSession.query(pbmd.PBNode).options(joinedload_all("_lAllChildren"))\
251
+    loResultsForSomeKeywords = DBSession.query(pbmd.PBNode).options(joinedload_all("_lAllChildren")).join(pbma.Rights).join(pbma.user_group_table, pbma.Rights.group_id==pbma.user_group_table.columns['group_id'])\
251 252
         .filter(loKeywordFilteringClausesAsOr)\
252
-        .filter(pbmd.PBNode.owner_id.in_(liOwnerIdList))\
253
+        .filter((pbmd.PBNode.owner_id.in_(liOwnerIdList)) | (pbma.user_group_table.c.user_id.in_(liOwnerIdList) & pbmd.PBNode.is_shared))\
253 254
         .order_by(sqla.desc(pbmd.PBNode.node_type))\
254 255
         .limit(piMaxNodeNb)\
255 256
         .all()

File diff suppressed because it is too large
+ 10308 - 0
pboard/pboard/public/javascript/jquery.js


+ 22 - 0
pboard/pboard/templates/create_account.mak View File

@@ -0,0 +1,22 @@
1
+<%inherit file="local:templates.master"/>
2
+<%namespace name="POD" file="pboard.templates.pod"/>
3
+
4
+<%def name="title()">
5
+  pod :: ${_('Create account')}
6
+</%def>
7
+
8
+<div class="row">
9
+  <div class="span10 offset1">
10
+    <div class="row">
11
+      <div class="span10">
12
+        <div class="well">
13
+          <h1>pod <small>Simple tool, flexible data.</small></h1>
14
+        </div>
15
+      </div>
16
+    </div>
17
+  </div>
18
+</div>
19
+
20
+<div class="row">
21
+${POD.SignUpForm('16em')}
22
+</div>

+ 24 - 16
pboard/pboard/templates/index.mak View File

@@ -58,22 +58,30 @@
58 58
           </div>
59 59
         </div>
60 60
 
61
-        ${POD.SignUpForm('16em')}
62
-        <!--div class="span2">
63
-          <div class="row">
64
-            <p style="border: 1px solid #F00;">
65
-              Want to try?
66
-            </p>
67
-          </div>
68
-          <div class="row">
69
-            <p class="btn btn-success">
70
-              <a class="btn btn-success">
71
-                <i class="fa fa-2x fa-dot-circle-o"></i>
72
-                <strong>Sign up</strong>
73
-              </a>
74
-            </p>
75
-          </div>
76
-        </div-->
61
+		% if not request.identity:
62
+        <div class="span3">
63
+          <div class="well text-center" style="min-height: 16em;">
64
+			<form action="${tg.url('/login_handler')}">
65
+			  <fieldset>
66
+				<legend><i class="fa fa-key" style="vertical-align: baseline !important;"></i> Login</legend>
67
+				<input class="span2" type="text" id="login" name="login" placeholder="email...">
68
+				<input class="span2" type="password" id="password" name="password" placeholder="password...">
69
+				<div class="span2 control-group">
70
+				  Remember me <input type="checkbox" id="loginremember" name="remember" value="2252000"/>
71
+				</div>
72
+				<input type="submit" id="submit" value="Login" />
73
+			  </fieldset>
74
+			</form>
75
+		  </div>
76
+		</div>
77
+		% else:
78
+		<div class="span3">
79
+          <div class="well text-center" style="min-height: 16em;">
80
+		    <p>${_('Welcome, ')}${request.identity['user'].display_name}</p>
81
+			<p>${_('Click on Documents in the top menu to access you data.')}</p>
82
+		  </div>
83
+		</div>
84
+		% endif
77 85
       </div>
78 86
     </div>
79 87
   </div>

+ 2 - 20
pboard/pboard/templates/master.mak View File

@@ -13,7 +13,7 @@
13 13
     <link rel="stylesheet" type="text/css" media="screen" href="${tg.url('/css/external/font-awesome-4.1.0/css/font-awesome.min.css')}" />
14 14
 </head>
15 15
 <body class="${self.body_class()}">
16
-  <script src="http://code.jquery.com/jquery.js"></script>
16
+  <script src="${tg.url('/javascript/jquery.js')}"></script>
17 17
   <script src="${tg.url('/javascript/pod.js')}"></script>
18 18
 
19 19
   <div class="container">
@@ -186,25 +186,7 @@
186 186
             </li>
187 187
 
188 188
 
189
-            % if not request.identity:
190
-              <li class="dropdown">
191
-                <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> Login</a>
192
-                <ul class="dropdown-menu pull-right">
193
-                  <li class="text-center">
194
-                    <form action="${tg.url('/login_handler')}">
195
-                      <fieldset>
196
-                        <legend><i class="fa fa-key" style="vertical-align: baseline !important;"></i> Login</legend>
197
-                        <input class="span2" type="text" id="login" name="login" placeholder="email...">
198
-                        <input class="span2" type="password" id="password" name="password" placeholder="password...">
199
-                        <div class="span2 control-group">
200
-                          Remember me <input type="checkbox" id="loginremember" name="remember" value="2252000"/>
201
-                        </div>
202
-                        <input type="submit" id="submit" value="Login" />
203
-                      </fieldset>
204
-                    </form>
205
-                 </ul>
206
-              </li>
207
-            % else:
189
+            % if request.identity:
208 190
               <li class="dropdown">
209 191
                 <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> ${request.identity['user'].display_name}</a>
210 192
                 <ul class="dropdown-menu pull-right">