Browse Source

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

Damien Accorsi 11 years ago
parent
commit
2a501596fa

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

14
 from PIL import Image as pil
14
 from PIL import Image as pil
15
 
15
 
16
 import tg
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
 from tg.i18n import ugettext as _, lazy_ugettext as l_
18
 from tg.i18n import ugettext as _, lazy_ugettext as l_
19
 from tg import predicates as tgp
19
 from tg import predicates as tgp
20
 
20
 
27
 from pboard.model import serializers as pms
27
 from pboard.model import serializers as pms
28
 from pboard import model as pm
28
 from pboard import model as pm
29
 from pboard.lib.auth import can_read, can_write
29
 from pboard.lib.auth import can_read, can_write
30
+import repoze.who.api
30
 
31
 
31
 from pboard.controllers import apimenu as pcam
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
 FIXME_ERROR_CODE=-1
42
 FIXME_ERROR_CODE=-1
35
 
43
 
36
 
44
 

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

163
 
163
 
164
         return dict(search_string=keywords, found_nodes=loFoundNodes)
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
     for keyword in plKeywordList:
244
     for keyword in plKeywordList:
245
         loKeywordFilteringClauses.append(pbmd.PBNode.data_label.ilike('%'+keyword+'%'))
245
         loKeywordFilteringClauses.append(pbmd.PBNode.data_label.ilike('%'+keyword+'%'))
246
         loKeywordFilteringClauses.append(pbmd.PBNode.data_content.ilike('%'+keyword+'%'))
246
         loKeywordFilteringClauses.append(pbmd.PBNode.data_content.ilike('%'+keyword+'%'))
247
+        loKeywordFilteringClauses.append(pbmd.PBNode.data_file_name.ilike('%'+keyword+'%'))
247
 
248
 
248
     loKeywordFilteringClausesAsOr = sqla.or_(*loKeywordFilteringClauses) # Combine them with or to a BooleanClauseList
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
         .filter(loKeywordFilteringClausesAsOr)\
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
         .order_by(sqla.desc(pbmd.PBNode.node_type))\
254
         .order_by(sqla.desc(pbmd.PBNode.node_type))\
254
         .limit(piMaxNodeNb)\
255
         .limit(piMaxNodeNb)\
255
         .all()
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

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
           </div>
58
           </div>
59
         </div>
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
       </div>
85
       </div>
78
     </div>
86
     </div>
79
   </div>
87
   </div>

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

13
     <link rel="stylesheet" type="text/css" media="screen" href="${tg.url('/css/external/font-awesome-4.1.0/css/font-awesome.min.css')}" />
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
 </head>
14
 </head>
15
 <body class="${self.body_class()}">
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
   <script src="${tg.url('/javascript/pod.js')}"></script>
17
   <script src="${tg.url('/javascript/pod.js')}"></script>
18
 
18
 
19
   <div class="container">
19
   <div class="container">
186
             </li>
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
               <li class="dropdown">
190
               <li class="dropdown">
209
                 <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> ${request.identity['user'].display_name}</a>
191
                 <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> ${request.identity['user'].display_name}</a>
210
                 <ul class="dropdown-menu pull-right">
192
                 <ul class="dropdown-menu pull-right">