浏览代码

use config as param in every internal api + with_context method in API

Guénaël Muller 7 年前
父节点
当前提交
7d7f68f2f8

+ 1 - 0
tracim/command/user.py 查看文件

153
         self._group_api = GroupApi(
153
         self._group_api = GroupApi(
154
             current_user=None,
154
             current_user=None,
155
             session=self._session,
155
             session=self._session,
156
+            config=self._app_config,
156
         )
157
         )
157
         user = self._proceed_user(parsed_args)
158
         user = self._proceed_user(parsed_args)
158
         self._proceed_groups(user, parsed_args)
159
         self._proceed_groups(user, parsed_args)

+ 3 - 0
tracim/fixtures/content.py 查看文件

24
         admin_workspace_api = WorkspaceApi(
24
         admin_workspace_api = WorkspaceApi(
25
             current_user=admin,
25
             current_user=admin,
26
             session=self._session,
26
             session=self._session,
27
+            config=self._config,
27
         )
28
         )
28
         bob_workspace_api = WorkspaceApi(
29
         bob_workspace_api = WorkspaceApi(
29
             current_user=bob,
30
             current_user=bob,
30
             session=self._session,
31
             session=self._session,
32
+            config=self._config
31
         )
33
         )
32
         content_api = ContentApi(
34
         content_api = ContentApi(
33
             current_user=admin,
35
             current_user=admin,
37
         role_api = RoleApi(
39
         role_api = RoleApi(
38
             current_user=admin,
40
             current_user=admin,
39
             session=self._session,
41
             session=self._session,
42
+            config=self._config,
40
         )
43
         )
41
 
44
 
42
         # Workspaces
45
         # Workspaces

+ 5 - 0
tracim/lib/core/group.py 查看文件

1
 # -*- coding: utf-8 -*-
1
 # -*- coding: utf-8 -*-
2
 import typing
2
 import typing
3
 
3
 
4
+from tracim import CFG
5
+
4
 __author__ = 'damien'
6
 __author__ = 'damien'
5
 
7
 
6
 from tracim.models.auth import Group, User
8
 from tracim.models.auth import Group, User
14
             self,
16
             self,
15
             session: Session,
17
             session: Session,
16
             current_user: typing.Optional[User],
18
             current_user: typing.Optional[User],
19
+            config: CFG
20
+
17
     ):
21
     ):
18
         self._user = current_user
22
         self._user = current_user
19
         self._session = session
23
         self._session = session
24
+        self._config = config
20
 
25
 
21
     def _base_query(self) -> Query:
26
     def _base_query(self) -> Query:
22
         return self._session.query(Group)
27
         return self._session.query(Group)

+ 22 - 1
tracim/lib/core/userworkspace.py 查看文件

1
 # -*- coding: utf-8 -*-
1
 # -*- coding: utf-8 -*-
2
 import typing
2
 import typing
3
 
3
 
4
+from tracim import CFG
5
+from tracim.models.context_models import UserRoleWorkspaceInContext
6
+
4
 __author__ = 'damien'
7
 __author__ = 'damien'
5
 
8
 
6
 from sqlalchemy.orm import Session
9
 from sqlalchemy.orm import Session
38
         ],
41
         ],
39
     }
42
     }
40
 
43
 
44
+    def get_user_role_workspace_with_context(
45
+            self,
46
+            user_role: UserRoleInWorkspace
47
+    ) -> UserRoleWorkspaceInContext:
48
+        """
49
+        Return WorkspaceInContext object from Workspace
50
+        """
51
+        workspace = UserRoleWorkspaceInContext(
52
+            user_role=user_role,
53
+            dbsession=self._session,
54
+            config=self._config,
55
+        )
56
+        return workspace
57
+
41
     @classmethod
58
     @classmethod
42
     def role_can_read_member_role(cls, reader_role: int, tested_role: int) \
59
     def role_can_read_member_role(cls, reader_role: int, tested_role: int) \
43
             -> bool:
60
             -> bool:
56
 
73
 
57
         return role
74
         return role
58
 
75
 
59
-    def __init__(self, session: Session, current_user: typing.Optional[User]):
76
+    def __init__(self,
77
+                 session: Session,
78
+                 current_user: typing.Optional[User],
79
+                 config: CFG):
60
         self._session = session
80
         self._session = session
61
         self._user = current_user
81
         self._user = current_user
82
+        self._config = config
62
 
83
 
63
     def _get_one_rsc(self, user_id, workspace_id):
84
     def _get_one_rsc(self, user_id, workspace_id):
64
         """
85
         """

+ 20 - 0
tracim/lib/core/workspace.py 查看文件

3
 
3
 
4
 from sqlalchemy.orm import Query
4
 from sqlalchemy.orm import Query
5
 from sqlalchemy.orm import Session
5
 from sqlalchemy.orm import Session
6
+
7
+from tracim import CFG
6
 from tracim.lib.utils.translation import fake_translator as _
8
 from tracim.lib.utils.translation import fake_translator as _
7
 
9
 
8
 from tracim.lib.core.userworkspace import RoleApi
10
 from tracim.lib.core.userworkspace import RoleApi
9
 from tracim.models.auth import Group
11
 from tracim.models.auth import Group
10
 from tracim.models.auth import User
12
 from tracim.models.auth import User
13
+from tracim.models.context_models import WorkspaceInContext
11
 from tracim.models.data import UserRoleInWorkspace
14
 from tracim.models.data import UserRoleInWorkspace
12
 from tracim.models.data import Workspace
15
 from tracim.models.data import Workspace
13
 
16
 
20
             self,
23
             self,
21
             session: Session,
24
             session: Session,
22
             current_user: User,
25
             current_user: User,
26
+            config: CFG,
23
             force_role: bool=False
27
             force_role: bool=False
24
     ):
28
     ):
25
         """
29
         """
28
         """
32
         """
29
         self._session = session
33
         self._session = session
30
         self._user = current_user
34
         self._user = current_user
35
+        self._config = config
31
         self._force_role = force_role
36
         self._force_role = force_role
32
 
37
 
33
     def _base_query_without_roles(self):
38
     def _base_query_without_roles(self):
42
             filter(UserRoleInWorkspace.user_id == self._user.user_id).\
47
             filter(UserRoleInWorkspace.user_id == self._user.user_id).\
43
             filter(Workspace.is_deleted == False)
48
             filter(Workspace.is_deleted == False)
44
 
49
 
50
+    def get_workspace_with_context(
51
+            self,
52
+            workspace: Workspace
53
+    ) -> WorkspaceInContext:
54
+        """
55
+        Return WorkspaceInContext object from Workspace
56
+        """
57
+        workspace = WorkspaceInContext(
58
+            workspace=workspace,
59
+            dbsession=self._session,
60
+            config=self._config,
61
+        )
62
+        return workspace
63
+
45
     def create_workspace(
64
     def create_workspace(
46
             self,
65
             self,
47
             label: str='',
66
             label: str='',
62
         role_api = RoleApi(
81
         role_api = RoleApi(
63
             session=self._session,
82
             session=self._session,
64
             current_user=self._user,
83
             current_user=self._user,
84
+            config=self._config
65
         )
85
         )
66
 
86
 
67
         role = role_api.create_one(
87
         role = role_api.create_one(

+ 5 - 1
tracim/lib/utils/request.py 查看文件

115
         if 'workspace_id' not in request.json_body:
115
         if 'workspace_id' not in request.json_body:
116
             raise WorkspaceNotFound('No workspace_id param in json body')
116
             raise WorkspaceNotFound('No workspace_id param in json body')
117
         workspace_id = request.json_body['workspace_id']
117
         workspace_id = request.json_body['workspace_id']
118
-        wapi = WorkspaceApi(current_user=user, session=request.dbsession)
118
+        wapi = WorkspaceApi(
119
+            current_user=user,
120
+            session=request.dbsession,
121
+            config=request.registry.settings['CFG']
122
+        )
119
         workspace = wapi.get_one(workspace_id)
123
         workspace = wapi.get_one(workspace_id)
120
     except JSONDecodeError:
124
     except JSONDecodeError:
121
         raise WorkspaceNotFound('Bad json body')
125
         raise WorkspaceNotFound('Bad json body')

+ 10 - 2
tracim/lib/webdav/dav_provider.py 查看文件

72
         if path == root_path:
72
         if path == root_path:
73
             return resources.RootResource(path, environ, user=user, session=session)
73
             return resources.RootResource(path, environ, user=user, session=session)
74
 
74
 
75
-        workspace_api = WorkspaceApi(current_user=user, session=session)
75
+        workspace_api = WorkspaceApi(
76
+            current_user=user,
77
+            session=session,
78
+            config=self.app_config,
79
+        )
76
         workspace = self.get_workspace_from_path(path, workspace_api)
80
         workspace = self.get_workspace_from_path(path, workspace_api)
77
 
81
 
78
         # If the request path is in the form root/name, then we return a WorkspaceResource resource
82
         # If the request path is in the form root/name, then we return a WorkspaceResource resource
194
 
198
 
195
         workspace = self.get_workspace_from_path(
199
         workspace = self.get_workspace_from_path(
196
             path,
200
             path,
197
-            WorkspaceApi(current_user=user, session=session)
201
+            WorkspaceApi(
202
+                current_user=user,
203
+                session=session,
204
+                config=self.app_config,
205
+            )
198
         )
206
         )
199
 
207
 
200
         if parent_path == root_path or workspace is None:
208
         if parent_path == root_path or workspace is None:

+ 3 - 1
tracim/lib/webdav/resources.py 查看文件

90
         self.workspace_api = WorkspaceApi(
90
         self.workspace_api = WorkspaceApi(
91
             current_user=self.user,
91
             current_user=self.user,
92
             session=session,
92
             session=session,
93
-            force_role=True
93
+            force_role=True,
94
+            config=self.provider.app_config
94
         )
95
         )
95
 
96
 
96
     def __repr__(self) -> str:
97
     def __repr__(self) -> str:
1254
             workspace_api = WorkspaceApi(
1255
             workspace_api = WorkspaceApi(
1255
                 current_user=self.user,
1256
                 current_user=self.user,
1256
                 session=self.session,
1257
                 session=self.session,
1258
+                config=self.provider.app_config,
1257
                 )
1259
                 )
1258
             content_api = ContentApi(
1260
             content_api = ContentApi(
1259
                 current_user=self.user,
1261
                 current_user=self.user,

+ 1 - 0
tracim/tests/__init__.py 查看文件

159
         WorkspaceApi(
159
         WorkspaceApi(
160
             current_user=user,
160
             current_user=user,
161
             session=self.session,
161
             session=self.session,
162
+            config=self.app_config,
162
         ).create_workspace(name, save_now=True)
163
         ).create_workspace(name, save_now=True)
163
 
164
 
164
         eq_(
165
         eq_(

+ 217 - 59
tracim/tests/library/test_content_api.py 查看文件

107
             config=self.app_config,
107
             config=self.app_config,
108
             current_user=None,
108
             current_user=None,
109
         )
109
         )
110
-        group_api = GroupApi(current_user=None,session=self.session)
110
+        group_api = GroupApi(
111
+            current_user=None,
112
+            session=self.session,
113
+            config=self.app_config,
114
+        )
111
         groups = [group_api.get_one(Group.TIM_USER),
115
         groups = [group_api.get_one(Group.TIM_USER),
112
                   group_api.get_one(Group.TIM_MANAGER),
116
                   group_api.get_one(Group.TIM_MANAGER),
113
                   group_api.get_one(Group.TIM_ADMIN)]
117
                   group_api.get_one(Group.TIM_ADMIN)]
116
                                 groups=groups, save_now=True)
120
                                 groups=groups, save_now=True)
117
         workspace = WorkspaceApi(
121
         workspace = WorkspaceApi(
118
             current_user=user,
122
             current_user=user,
119
-            session=self.session
123
+            session=self.session,
124
+            config=self.app_config,
120
         ).create_workspace('test workspace', save_now=True)
125
         ).create_workspace('test workspace', save_now=True)
121
         api = ContentApi(
126
         api = ContentApi(
122
             current_user=user,
127
             current_user=user,
133
 
138
 
134
         # Refresh instances after commit
139
         # Refresh instances after commit
135
         user = uapi.get_one(uid)
140
         user = uapi.get_one(uid)
136
-        workspace_api = WorkspaceApi(current_user=user, session=self.session)
141
+        workspace_api = WorkspaceApi(
142
+            current_user=user,
143
+            session=self.session,
144
+            config=self.app_config
145
+        )
137
         workspace = workspace_api.get_one(wid)
146
         workspace = workspace_api.get_one(wid)
138
         api = ContentApi(
147
         api = ContentApi(
139
             current_user=user,
148
             current_user=user,
154
 
163
 
155
         # Refresh instances after commit
164
         # Refresh instances after commit
156
         user = uapi.get_one(uid)
165
         user = uapi.get_one(uid)
157
-        workspace_api = WorkspaceApi(current_user=user, session=self.session)
166
+        workspace_api = WorkspaceApi(
167
+            current_user=user,
168
+            session=self.session,
169
+            config=self.app_config
170
+        )
158
         workspace = workspace_api.get_one(wid)
171
         workspace = workspace_api.get_one(wid)
159
         api = ContentApi(
172
         api = ContentApi(
160
             current_user=user, 
173
             current_user=user, 
168
         # Test that the item is still available if "show deleted" is activated
181
         # Test that the item is still available if "show deleted" is activated
169
         # Refresh instances after commit
182
         # Refresh instances after commit
170
         user = uapi.get_one(uid)
183
         user = uapi.get_one(uid)
171
-        workspace_api = WorkspaceApi(current_user=user, session=self.session)
184
+        workspace_api = WorkspaceApi(
185
+            current_user=user,
186
+            session=self.session,
187
+            config=self.app_config,
188
+        )
172
         api = ContentApi(
189
         api = ContentApi(
173
             current_user=user,
190
             current_user=user,
174
             session=self.session,
191
             session=self.session,
184
             config=self.app_config,
201
             config=self.app_config,
185
             current_user=None,
202
             current_user=None,
186
         )
203
         )
187
-        group_api = GroupApi(current_user=None, session=self.session)
204
+        group_api = GroupApi(
205
+            current_user=None,
206
+            session=self.session,
207
+            config=self.app_config,
208
+        )
188
         groups = [group_api.get_one(Group.TIM_USER),
209
         groups = [group_api.get_one(Group.TIM_USER),
189
                   group_api.get_one(Group.TIM_MANAGER),
210
                   group_api.get_one(Group.TIM_MANAGER),
190
                   group_api.get_one(Group.TIM_ADMIN)]
211
                   group_api.get_one(Group.TIM_ADMIN)]
191
 
212
 
192
         user = uapi.create_user(email='this.is@user',
213
         user = uapi.create_user(email='this.is@user',
193
                                 groups=groups, save_now=True)
214
                                 groups=groups, save_now=True)
194
-        workspace_api = WorkspaceApi(current_user=user, session=self.session)
215
+        workspace_api = WorkspaceApi(
216
+            current_user=user,
217
+            session=self.session,
218
+            config=self.app_config,
219
+        )
195
         workspace = workspace_api.create_workspace(
220
         workspace = workspace_api.create_workspace(
196
             'test workspace',
221
             'test workspace',
197
             save_now=True
222
             save_now=True
210
         transaction.commit()
235
         transaction.commit()
211
         # Refresh instances after commit
236
         # Refresh instances after commit
212
         user = uapi.get_one(uid)
237
         user = uapi.get_one(uid)
213
-        workspace_api = WorkspaceApi(current_user=user, session=self.session)
238
+        workspace_api = WorkspaceApi(
239
+            current_user=user,
240
+            session=self.session,
241
+            config=self.app_config,
242
+        )
214
         api = ContentApi(
243
         api = ContentApi(
215
             session=self.session,
244
             session=self.session,
216
             current_user=user,
245
             current_user=user,
231
 
260
 
232
         # Refresh instances after commit
261
         # Refresh instances after commit
233
         user = uapi.get_one(uid)
262
         user = uapi.get_one(uid)
234
-        workspace_api = WorkspaceApi(current_user=user, session=self.session)
263
+        workspace_api = WorkspaceApi(
264
+            current_user=user,
265
+            session=self.session,
266
+            config=self.app_config,
267
+        )
235
         workspace = workspace_api.get_one(wid)
268
         workspace = workspace_api.get_one(wid)
236
         api = ContentApi(
269
         api = ContentApi(
237
             current_user=user, 
270
             current_user=user, 
245
 
278
 
246
         # Refresh instances after commit
279
         # Refresh instances after commit
247
         user = uapi.get_one(uid)
280
         user = uapi.get_one(uid)
248
-        workspace_api = WorkspaceApi(current_user=user, session=self.session)
281
+        workspace_api = WorkspaceApi(
282
+            current_user=user,
283
+            session=self.session,
284
+            config=self.app_config,
285
+        )
249
         workspace = workspace_api.get_one(wid)
286
         workspace = workspace_api.get_one(wid)
250
         api = ContentApi(
287
         api = ContentApi(
251
             current_user=user,
288
             current_user=user,
269
             config=self.app_config,
306
             config=self.app_config,
270
             current_user=None,
307
             current_user=None,
271
         )
308
         )
272
-        group_api = GroupApi(current_user=None, session=self.session)
309
+        group_api = GroupApi(
310
+            current_user=None,
311
+            session=self.session,
312
+            config=self.app_config,
313
+        )
273
         groups = [group_api.get_one(Group.TIM_USER),
314
         groups = [group_api.get_one(Group.TIM_USER),
274
                   group_api.get_one(Group.TIM_MANAGER),
315
                   group_api.get_one(Group.TIM_MANAGER),
275
                   group_api.get_one(Group.TIM_ADMIN)]
316
                   group_api.get_one(Group.TIM_ADMIN)]
281
         )
322
         )
282
         workspace = WorkspaceApi(
323
         workspace = WorkspaceApi(
283
             current_user=user,
324
             current_user=user,
284
-            session=self.session
325
+            session=self.session,
326
+            config=self.app_config,
285
         ).create_workspace(
327
         ).create_workspace(
286
             'test workspace',
328
             'test workspace',
287
             save_now=True
329
             save_now=True
301
 
343
 
302
         # Refresh instances after commit
344
         # Refresh instances after commit
303
         user = uapi.get_one(uid)
345
         user = uapi.get_one(uid)
304
-        workspace_api = WorkspaceApi(current_user=user, session=self.session)
346
+        workspace_api = WorkspaceApi(
347
+            current_user=user,
348
+            session=self.session,
349
+            config=self.app_config,
350
+        )
305
         workspace = workspace_api.get_one(wid)
351
         workspace = workspace_api.get_one(wid)
306
         api = ContentApi(
352
         api = ContentApi(
307
             current_user=user, 
353
             current_user=user, 
326
             config=self.app_config,
372
             config=self.app_config,
327
             current_user=None,
373
             current_user=None,
328
         )
374
         )
329
-        group_api = GroupApi(current_user=None, session=self.session)
375
+        group_api = GroupApi(
376
+            current_user=None,
377
+            session=self.session,
378
+            config=self.app_config
379
+        )
330
         groups = [group_api.get_one(Group.TIM_USER),
380
         groups = [group_api.get_one(Group.TIM_USER),
331
                   group_api.get_one(Group.TIM_MANAGER),
381
                   group_api.get_one(Group.TIM_MANAGER),
332
                   group_api.get_one(Group.TIM_ADMIN)]
382
                   group_api.get_one(Group.TIM_ADMIN)]
335
                                 groups=groups, save_now=True)
385
                                 groups=groups, save_now=True)
336
         workspace = WorkspaceApi(
386
         workspace = WorkspaceApi(
337
             current_user=user,
387
             current_user=user,
338
-            session=self.session
388
+            session=self.session,
389
+            config=self.app_config
339
         ).create_workspace('test workspace', save_now=True)
390
         ).create_workspace('test workspace', save_now=True)
340
         api = ContentApi(
391
         api = ContentApi(
341
             current_user=user, 
392
             current_user=user, 
371
 
422
 
372
         # Refresh instances after commit
423
         # Refresh instances after commit
373
         user = uapi.get_one(uid)
424
         user = uapi.get_one(uid)
374
-        workspace_api = WorkspaceApi(current_user=user, session=self.session)
425
+        workspace_api = WorkspaceApi(
426
+            current_user=user,
427
+            session=self.session,
428
+            config=self.app_config,
429
+        )
375
         workspace = workspace_api.get_one(wid)
430
         workspace = workspace_api.get_one(wid)
376
         api = ContentApi(
431
         api = ContentApi(
377
             current_user=user,
432
             current_user=user,
394
         )
449
         )
395
         group_api = GroupApi(
450
         group_api = GroupApi(
396
             current_user=None,
451
             current_user=None,
397
-            session=self.session
452
+            session=self.session,
453
+            config=self.app_config,
398
         )
454
         )
399
         groups = [group_api.get_one(Group.TIM_USER),
455
         groups = [group_api.get_one(Group.TIM_USER),
400
                   group_api.get_one(Group.TIM_MANAGER),
456
                   group_api.get_one(Group.TIM_MANAGER),
405
 
461
 
406
         workspace = WorkspaceApi(
462
         workspace = WorkspaceApi(
407
             current_user=user,
463
             current_user=user,
408
-            session=self.session
464
+            session=self.session,
465
+            config=self.app_config,
409
         ).create_workspace(
466
         ).create_workspace(
410
             'test workspace',
467
             'test workspace',
411
             save_now=True
468
             save_now=True
432
         )
489
         )
433
         group_api = GroupApi(
490
         group_api = GroupApi(
434
             current_user=None,
491
             current_user=None,
435
-            session=self.session
492
+            session=self.session,
493
+            config=self.app_config,
436
         )
494
         )
437
         groups = [group_api.get_one(Group.TIM_USER),
495
         groups = [group_api.get_one(Group.TIM_USER),
438
                   group_api.get_one(Group.TIM_MANAGER),
496
                   group_api.get_one(Group.TIM_MANAGER),
443
 
501
 
444
         workspace = WorkspaceApi(
502
         workspace = WorkspaceApi(
445
             current_user=user,
503
             current_user=user,
446
-            session=self.session
504
+            session=self.session,
505
+            config=self.app_config,
447
         ).create_workspace(
506
         ).create_workspace(
448
             'test workspace',
507
             'test workspace',
449
             save_now=True
508
             save_now=True
474
         )
533
         )
475
         group_api = GroupApi(
534
         group_api = GroupApi(
476
             current_user=None,
535
             current_user=None,
477
-            session=self.session
536
+            session=self.session,
537
+            config=self.config,
478
         )
538
         )
479
         groups = [group_api.get_one(Group.TIM_USER),
539
         groups = [group_api.get_one(Group.TIM_USER),
480
                   group_api.get_one(Group.TIM_MANAGER),
540
                   group_api.get_one(Group.TIM_MANAGER),
485
 
545
 
486
         workspace = WorkspaceApi(
546
         workspace = WorkspaceApi(
487
             current_user=user,
547
             current_user=user,
488
-            session=self.session
548
+            session=self.session,
549
+            config=self.app_config,
489
         ).create_workspace(
550
         ).create_workspace(
490
             'test workspace',
551
             'test workspace',
491
             save_now=True
552
             save_now=True
516
         )
577
         )
517
         group_api = GroupApi(
578
         group_api = GroupApi(
518
             current_user=None,
579
             current_user=None,
519
-            session=self.session
580
+            session=self.session,
581
+            config=self.app_config
520
         )
582
         )
521
         groups = [group_api.get_one(Group.TIM_USER),
583
         groups = [group_api.get_one(Group.TIM_USER),
522
                   group_api.get_one(Group.TIM_MANAGER),
584
                   group_api.get_one(Group.TIM_MANAGER),
534
         )
596
         )
535
         workspace = WorkspaceApi(
597
         workspace = WorkspaceApi(
536
             current_user=user,
598
             current_user=user,
537
-            session=self.session
599
+            session=self.session,
600
+            config=self.app_config,
538
         ).create_workspace(
601
         ).create_workspace(
539
             'test workspace',
602
             'test workspace',
540
             save_now=True
603
             save_now=True
541
         )
604
         )
542
-        RoleApi(current_user=user, session=self.session).create_one(
605
+        RoleApi(
606
+            current_user=user,
607
+            session=self.session,
608
+            config=self.app_config,
609
+        ).create_one(
543
             user2,
610
             user2,
544
             workspace,
611
             workspace,
545
             UserRoleInWorkspace.WORKSPACE_MANAGER,
612
             UserRoleInWorkspace.WORKSPACE_MANAGER,
581
         workspace2 = WorkspaceApi(
648
         workspace2 = WorkspaceApi(
582
             current_user=user2,
649
             current_user=user2,
583
             session=self.session,
650
             session=self.session,
651
+            config=self.app_config,
584
         ).create_workspace(
652
         ).create_workspace(
585
             'test workspace2',
653
             'test workspace2',
586
             save_now=True
654
             save_now=True
628
         )
696
         )
629
         group_api = GroupApi(
697
         group_api = GroupApi(
630
             current_user=None,
698
             current_user=None,
631
-            session=self.session
699
+            session=self.session,
700
+            config=self.app_config,
632
         )
701
         )
633
         groups = [group_api.get_one(Group.TIM_USER),
702
         groups = [group_api.get_one(Group.TIM_USER),
634
                   group_api.get_one(Group.TIM_MANAGER),
703
                   group_api.get_one(Group.TIM_MANAGER),
646
         )
715
         )
647
         workspace = WorkspaceApi(
716
         workspace = WorkspaceApi(
648
             current_user=user,
717
             current_user=user,
649
-            session=self.session
718
+            session=self.session,
719
+            config=self.app_config,
650
         ).create_workspace(
720
         ).create_workspace(
651
             'test workspace',
721
             'test workspace',
652
             save_now=True
722
             save_now=True
653
         )
723
         )
654
-        RoleApi(current_user=user, session=self.session).create_one(
724
+        RoleApi(
725
+            current_user=user,
726
+            session=self.session,
727
+            config=self.app_config,
728
+        ).create_one(
655
             user2,
729
             user2,
656
             workspace,
730
             workspace,
657
             UserRoleInWorkspace.WORKSPACE_MANAGER,
731
             UserRoleInWorkspace.WORKSPACE_MANAGER,
692
         )
766
         )
693
         workspace2 = WorkspaceApi(
767
         workspace2 = WorkspaceApi(
694
             current_user=user2,
768
             current_user=user2,
695
-            session=self.session
769
+            session=self.session,
770
+            config=self.app_config,
696
         ).create_workspace(
771
         ).create_workspace(
697
             'test workspace2',
772
             'test workspace2',
698
             save_now=True
773
             save_now=True
738
         )
813
         )
739
         group_api = GroupApi(
814
         group_api = GroupApi(
740
             current_user=None,
815
             current_user=None,
741
-            session=self.session
816
+            session=self.session,
817
+            config=self.app_config,
742
         )
818
         )
743
         groups = [group_api.get_one(Group.TIM_USER),
819
         groups = [group_api.get_one(Group.TIM_USER),
744
                   group_api.get_one(Group.TIM_MANAGER),
820
                   group_api.get_one(Group.TIM_MANAGER),
756
         )
832
         )
757
         workspace = WorkspaceApi(
833
         workspace = WorkspaceApi(
758
             current_user=user,
834
             current_user=user,
759
-            session=self.session
835
+            session=self.session,
836
+            config=self.app_config,
760
         ).create_workspace(
837
         ).create_workspace(
761
             'test workspace',
838
             'test workspace',
762
             save_now=True
839
             save_now=True
763
         )
840
         )
764
-        RoleApi(current_user=user, session=self.session).create_one(
841
+        RoleApi(
842
+            current_user=user,
843
+            session=self.session,
844
+            config=self.app_config,
845
+        ).create_one(
765
             user2, workspace,
846
             user2, workspace,
766
             UserRoleInWorkspace.WORKSPACE_MANAGER,
847
             UserRoleInWorkspace.WORKSPACE_MANAGER,
767
             with_notif=False
848
             with_notif=False
837
         )
918
         )
838
         group_api = GroupApi(
919
         group_api = GroupApi(
839
             current_user=None,
920
             current_user=None,
840
-            session=self.session
921
+            session=self.session,
922
+            config=self.app_config,
841
         )
923
         )
842
         groups = [group_api.get_one(Group.TIM_USER),
924
         groups = [group_api.get_one(Group.TIM_USER),
843
                   group_api.get_one(Group.TIM_MANAGER),
925
                   group_api.get_one(Group.TIM_MANAGER),
851
         wapi = WorkspaceApi(
933
         wapi = WorkspaceApi(
852
             current_user=user_a,
934
             current_user=user_a,
853
             session=self.session,
935
             session=self.session,
936
+            config=self.app_config,
854
         )
937
         )
855
         workspace1 = wapi.create_workspace(
938
         workspace1 = wapi.create_workspace(
856
             'test workspace n°1',
939
             'test workspace n°1',
862
         role_api1 = RoleApi(
945
         role_api1 = RoleApi(
863
             current_user=user_a,
946
             current_user=user_a,
864
             session=self.session,
947
             session=self.session,
948
+            config=self.app_config,
865
         )
949
         )
866
         role_api1.create_one(
950
         role_api1.create_one(
867
             user_b,
951
             user_b,
873
         role_api2 = RoleApi(
957
         role_api2 = RoleApi(
874
             current_user=user_b,
958
             current_user=user_b,
875
             session=self.session,
959
             session=self.session,
960
+            config=self.app_config,
876
         )
961
         )
877
         role_api2.create_one(user_b, workspace2, UserRoleInWorkspace.READER,
962
         role_api2.create_one(user_b, workspace2, UserRoleInWorkspace.READER,
878
                              False)
963
                              False)
940
         )
1025
         )
941
         group_api = GroupApi(
1026
         group_api = GroupApi(
942
             current_user=None,
1027
             current_user=None,
943
-            session=self.session
1028
+            session=self.session,
1029
+            config = self.app_config,
944
         )
1030
         )
945
         groups = [group_api.get_one(Group.TIM_USER),
1031
         groups = [group_api.get_one(Group.TIM_USER),
946
                   group_api.get_one(Group.TIM_MANAGER),
1032
                   group_api.get_one(Group.TIM_MANAGER),
957
             save_now=True
1043
             save_now=True
958
         )
1044
         )
959
 
1045
 
960
-        wapi = WorkspaceApi(current_user=user_a, session=self.session)
1046
+        wapi = WorkspaceApi(
1047
+            current_user=user_a,
1048
+            session=self.session,
1049
+            config=self.app_config,
1050
+        )
961
         workspace_api = WorkspaceApi(
1051
         workspace_api = WorkspaceApi(
962
             current_user=user_a,
1052
             current_user=user_a,
963
-            session=self.session
1053
+            session=self.session,
1054
+            config=self.app_config,
964
         )
1055
         )
965
         workspace = wapi.create_workspace(
1056
         workspace = wapi.create_workspace(
966
             'test workspace',
1057
             'test workspace',
969
         role_api = RoleApi(
1060
         role_api = RoleApi(
970
             current_user=user_a,
1061
             current_user=user_a,
971
             session=self.session,
1062
             session=self.session,
1063
+            config=self.app_config,
972
         )
1064
         )
973
         role_api.create_one(
1065
         role_api.create_one(
974
             user_b,
1066
             user_b,
1004
             config=self.app_config,
1096
             config=self.app_config,
1005
             current_user=None,
1097
             current_user=None,
1006
         )
1098
         )
1007
-        group_api = GroupApi(current_user=None, session=self.session)
1099
+        group_api = GroupApi(
1100
+            current_user=None,
1101
+            session=self.session,
1102
+            config=self.app_config,
1103
+        )
1008
         groups = [group_api.get_one(Group.TIM_USER),
1104
         groups = [group_api.get_one(Group.TIM_USER),
1009
                   group_api.get_one(Group.TIM_MANAGER),
1105
                   group_api.get_one(Group.TIM_MANAGER),
1010
                   group_api.get_one(Group.TIM_ADMIN)]
1106
                   group_api.get_one(Group.TIM_ADMIN)]
1023
         wapi = WorkspaceApi(
1119
         wapi = WorkspaceApi(
1024
             current_user=user_a,
1120
             current_user=user_a,
1025
             session=self.session,
1121
             session=self.session,
1122
+            config=self.app_config,
1026
         )
1123
         )
1027
         workspace = wapi.create_workspace(
1124
         workspace = wapi.create_workspace(
1028
             'test workspace',
1125
             'test workspace',
1031
         role_api = RoleApi(
1128
         role_api = RoleApi(
1032
             current_user=user_a,
1129
             current_user=user_a,
1033
             session=self.session,
1130
             session=self.session,
1131
+            config=self.app_config,
1034
         )
1132
         )
1035
         role_api.create_one(
1133
         role_api.create_one(
1036
             user_b,
1134
             user_b,
1097
             config=self.app_config,
1195
             config=self.app_config,
1098
             current_user=None,
1196
             current_user=None,
1099
         )
1197
         )
1100
-        group_api = GroupApi(current_user=None, session=self.session)
1198
+        group_api = GroupApi(
1199
+            current_user=None,
1200
+            session=self.session,
1201
+            config=self.app_config,
1202
+        )
1101
         groups = [group_api.get_one(Group.TIM_USER),
1203
         groups = [group_api.get_one(Group.TIM_USER),
1102
                   group_api.get_one(Group.TIM_MANAGER),
1204
                   group_api.get_one(Group.TIM_MANAGER),
1103
                   group_api.get_one(Group.TIM_ADMIN)]
1205
                   group_api.get_one(Group.TIM_ADMIN)]
1108
             save_now=True
1210
             save_now=True
1109
         )
1211
         )
1110
 
1212
 
1111
-        workspace_api = WorkspaceApi(current_user=user1, session=self.session)
1213
+        workspace_api = WorkspaceApi(
1214
+            current_user=user1,
1215
+            session=self.session,
1216
+            config=self.app_config,
1217
+        )
1112
         workspace = workspace_api.create_workspace(
1218
         workspace = workspace_api.create_workspace(
1113
             'test workspace',
1219
             'test workspace',
1114
             save_now=True
1220
             save_now=True
1122
 
1228
 
1123
         RoleApi(
1229
         RoleApi(
1124
             current_user=user1,
1230
             current_user=user1,
1125
-            session=self.session
1231
+            session=self.session,
1232
+            config=self.app_config,
1126
         ).create_one(
1233
         ).create_one(
1127
             user2,
1234
             user2,
1128
             workspace,
1235
             workspace,
1153
         user1 = uapi.get_one(u1id)
1260
         user1 = uapi.get_one(u1id)
1154
         workspace = WorkspaceApi(
1261
         workspace = WorkspaceApi(
1155
             current_user=user1,
1262
             current_user=user1,
1156
-            session=self.session
1263
+            session=self.session,
1264
+            config=self.app_config,
1157
         ).get_one(wid)
1265
         ).get_one(wid)
1158
         api = ContentApi(
1266
         api = ContentApi(
1159
             current_user=user1,
1267
             current_user=user1,
1194
         workspace = WorkspaceApi(
1302
         workspace = WorkspaceApi(
1195
             current_user=user1,
1303
             current_user=user1,
1196
             session=self.session,
1304
             session=self.session,
1305
+            config=self.app_config,
1197
         ).get_one(wid)
1306
         ).get_one(wid)
1198
         api = ContentApi(
1307
         api = ContentApi(
1199
             current_user=user1,
1308
             current_user=user1,
1217
         )
1326
         )
1218
         group_api = GroupApi(
1327
         group_api = GroupApi(
1219
             current_user=None,
1328
             current_user=None,
1220
-            session=self.session
1329
+            session=self.session,
1330
+            config = self.app_config,
1221
         )
1331
         )
1222
         groups = [group_api.get_one(Group.TIM_USER),
1332
         groups = [group_api.get_one(Group.TIM_USER),
1223
                   group_api.get_one(Group.TIM_MANAGER),
1333
                   group_api.get_one(Group.TIM_MANAGER),
1232
         workspace = WorkspaceApi(
1342
         workspace = WorkspaceApi(
1233
             current_user=user1,
1343
             current_user=user1,
1234
             session=self.session,
1344
             session=self.session,
1345
+            config=self.app_config,
1235
         ).create_workspace(
1346
         ).create_workspace(
1236
             'test workspace',
1347
             'test workspace',
1237
             save_now=True
1348
             save_now=True
1243
 
1354
 
1244
         RoleApi(
1355
         RoleApi(
1245
             current_user=user1,
1356
             current_user=user1,
1246
-            session=self.session
1357
+            session=self.session,
1358
+            config=self.app_config,
1247
         ).create_one(
1359
         ).create_one(
1248
             user2,
1360
             user2,
1249
             workspace,
1361
             workspace,
1295
         )
1407
         )
1296
         group_api = GroupApi(
1408
         group_api = GroupApi(
1297
             current_user=None,
1409
             current_user=None,
1298
-            session=self.session
1410
+            session=self.session,
1411
+            config=self.app_config,
1299
         )
1412
         )
1300
         groups = [group_api.get_one(Group.TIM_USER),
1413
         groups = [group_api.get_one(Group.TIM_USER),
1301
                   group_api.get_one(Group.TIM_MANAGER),
1414
                   group_api.get_one(Group.TIM_MANAGER),
1307
             save_now=True
1420
             save_now=True
1308
         )
1421
         )
1309
 
1422
 
1310
-        workspace_api = WorkspaceApi(current_user=user1, session=self.session)
1423
+        workspace_api = WorkspaceApi(
1424
+            current_user=user1,
1425
+            session=self.session,
1426
+            config=self.app_config,
1427
+        )
1311
         workspace = workspace_api.create_workspace(
1428
         workspace = workspace_api.create_workspace(
1312
             'test workspace',
1429
             'test workspace',
1313
             save_now=True
1430
             save_now=True
1321
         RoleApi(
1438
         RoleApi(
1322
             current_user=user1,
1439
             current_user=user1,
1323
             session=self.session,
1440
             session=self.session,
1441
+            config=self.app_config,
1324
         ).create_one(
1442
         ).create_one(
1325
             user2,
1443
             user2,
1326
             workspace,
1444
             workspace,
1348
 
1466
 
1349
         # Refresh instances after commit
1467
         # Refresh instances after commit
1350
         user1 = uapi.get_one(u1id)
1468
         user1 = uapi.get_one(u1id)
1351
-        workspace_api2 = WorkspaceApi(current_user=user1, session=self.session)
1469
+        workspace_api2 = WorkspaceApi(
1470
+            current_user=user1,
1471
+            session=self.session,
1472
+            config=self.app_config,
1473
+        )
1352
         workspace = workspace_api2.get_one(wid)
1474
         workspace = workspace_api2.get_one(wid)
1353
         api = ContentApi(
1475
         api = ContentApi(
1354
             current_user=user1,
1476
             current_user=user1,
1390
         workspace = WorkspaceApi(
1512
         workspace = WorkspaceApi(
1391
             current_user=user1,
1513
             current_user=user1,
1392
             session=self.session,
1514
             session=self.session,
1515
+            config=self.app_config,
1393
         ).get_one(wid)
1516
         ).get_one(wid)
1394
 
1517
 
1395
         updated = api.get_one(pcid, ContentType.Any, workspace)
1518
         updated = api.get_one(pcid, ContentType.Any, workspace)
1410
         group_api = GroupApi(
1533
         group_api = GroupApi(
1411
             current_user=None,
1534
             current_user=None,
1412
             session=self.session,
1535
             session=self.session,
1536
+            config=self.app_config,
1413
         )
1537
         )
1414
         groups = [group_api.get_one(Group.TIM_USER),
1538
         groups = [group_api.get_one(Group.TIM_USER),
1415
                   group_api.get_one(Group.TIM_MANAGER),
1539
                   group_api.get_one(Group.TIM_MANAGER),
1421
             save_now=True,
1545
             save_now=True,
1422
         )
1546
         )
1423
 
1547
 
1424
-        workspace_api = WorkspaceApi(current_user=user1, session=self.session)
1548
+        workspace_api = WorkspaceApi(
1549
+            current_user=user1,
1550
+            session=self.session,
1551
+            config=self.app_config,
1552
+        )
1425
         workspace = workspace_api.create_workspace(
1553
         workspace = workspace_api.create_workspace(
1426
             'test workspace',
1554
             'test workspace',
1427
             save_now=True
1555
             save_now=True
1434
         RoleApi(
1562
         RoleApi(
1435
             current_user=user1,
1563
             current_user=user1,
1436
             session=self.session,
1564
             session=self.session,
1565
+            config=self.app_config,
1437
         ).create_one(
1566
         ).create_one(
1438
             user2,
1567
             user2,
1439
             workspace,
1568
             workspace,
1489
             config=self.app_config,
1618
             config=self.app_config,
1490
             current_user=None,
1619
             current_user=None,
1491
         )
1620
         )
1492
-        group_api = GroupApi(current_user=None, session=self.session)
1621
+        group_api = GroupApi(
1622
+            current_user=None,
1623
+            session=self.session,
1624
+            config=self.app_config,
1625
+        )
1493
         groups = [group_api.get_one(Group.TIM_USER),
1626
         groups = [group_api.get_one(Group.TIM_USER),
1494
                   group_api.get_one(Group.TIM_MANAGER),
1627
                   group_api.get_one(Group.TIM_MANAGER),
1495
                   group_api.get_one(Group.TIM_ADMIN)]
1628
                   group_api.get_one(Group.TIM_ADMIN)]
1501
         )
1634
         )
1502
         u1id = user1.user_id
1635
         u1id = user1.user_id
1503
 
1636
 
1504
-        workspace_api = WorkspaceApi(current_user=user1, session=self.session)
1637
+        workspace_api = WorkspaceApi(
1638
+            current_user=user1,
1639
+            session=self.session,
1640
+            config=self.app_config,
1641
+        )
1505
         workspace = workspace_api.create_workspace(
1642
         workspace = workspace_api.create_workspace(
1506
             'test workspace',
1643
             'test workspace',
1507
             save_now=True
1644
             save_now=True
1514
 
1651
 
1515
         RoleApi(
1652
         RoleApi(
1516
             current_user=user1,
1653
             current_user=user1,
1517
-            session=self.session
1654
+            session=self.session,
1655
+            config=self.app_config,
1518
         ).create_one(
1656
         ).create_one(
1519
             user2,
1657
             user2,
1520
             workspace,
1658
             workspace,
1550
         ).get_one(u1id)
1688
         ).get_one(u1id)
1551
         workspace = WorkspaceApi(
1689
         workspace = WorkspaceApi(
1552
             current_user=user1,
1690
             current_user=user1,
1553
-            session=self.session
1691
+            session=self.session,
1692
+            config=self.app_config,
1554
         ).get_one(wid)
1693
         ).get_one(wid)
1555
 
1694
 
1556
         content = api.get_one(pcid, ContentType.Any, workspace)
1695
         content = api.get_one(pcid, ContentType.Any, workspace)
1588
         workspace = WorkspaceApi(
1727
         workspace = WorkspaceApi(
1589
             current_user=user1,
1728
             current_user=user1,
1590
             session=self.session,
1729
             session=self.session,
1730
+            config=self.app_config,
1591
         ).get_one(wid)
1731
         ).get_one(wid)
1592
         u2 = UserApi(
1732
         u2 = UserApi(
1593
             current_user=None,
1733
             current_user=None,
1637
         )
1777
         )
1638
         group_api = GroupApi(
1778
         group_api = GroupApi(
1639
             current_user=None,
1779
             current_user=None,
1640
-            session=self.session
1780
+            session=self.session,
1781
+            config=self.app_config,
1641
         )
1782
         )
1642
         groups = [group_api.get_one(Group.TIM_USER),
1783
         groups = [group_api.get_one(Group.TIM_USER),
1643
                   group_api.get_one(Group.TIM_MANAGER),
1784
                   group_api.get_one(Group.TIM_MANAGER),
1650
         )
1791
         )
1651
         u1id = user1.user_id
1792
         u1id = user1.user_id
1652
 
1793
 
1653
-        workspace_api = WorkspaceApi(current_user=user1, session=self.session)
1794
+        workspace_api = WorkspaceApi(
1795
+            current_user=user1,
1796
+            session=self.session,
1797
+            config=self.app_config,
1798
+        )
1654
         workspace = workspace_api.create_workspace(
1799
         workspace = workspace_api.create_workspace(
1655
             'test workspace',
1800
             'test workspace',
1656
             save_now=True
1801
             save_now=True
1663
 
1808
 
1664
         RoleApi(
1809
         RoleApi(
1665
             current_user=user1,
1810
             current_user=user1,
1666
-            session=self.session
1811
+            session=self.session,
1812
+            config=self.app_config,
1667
         ).create_one(
1813
         ).create_one(
1668
             user2,
1814
             user2,
1669
             workspace,
1815
             workspace,
1698
         workspace = WorkspaceApi(
1844
         workspace = WorkspaceApi(
1699
             current_user=user1,
1845
             current_user=user1,
1700
             session=self.session,
1846
             session=self.session,
1847
+            config=self.app_config,
1701
         ).get_one(wid)
1848
         ).get_one(wid)
1702
 
1849
 
1703
         content = api.get_one(pcid, ContentType.Any, workspace)
1850
         content = api.get_one(pcid, ContentType.Any, workspace)
1735
         workspace = WorkspaceApi(
1882
         workspace = WorkspaceApi(
1736
             current_user=user1,
1883
             current_user=user1,
1737
             session=self.session,
1884
             session=self.session,
1885
+            config=self.app_config,
1738
         ).get_one(wid)
1886
         ).get_one(wid)
1739
         # show archived is used at the top end of the test
1887
         # show archived is used at the top end of the test
1740
         api = ContentApi(
1888
         api = ContentApi(
1788
         group_api = GroupApi(
1936
         group_api = GroupApi(
1789
             current_user=None,
1937
             current_user=None,
1790
             session=self.session,
1938
             session=self.session,
1939
+            config=self.app_config,
1791
         )
1940
         )
1792
         groups = [group_api.get_one(Group.TIM_USER),
1941
         groups = [group_api.get_one(Group.TIM_USER),
1793
                   group_api.get_one(Group.TIM_MANAGER),
1942
                   group_api.get_one(Group.TIM_MANAGER),
1798
 
1947
 
1799
         workspace = WorkspaceApi(
1948
         workspace = WorkspaceApi(
1800
             current_user=user,
1949
             current_user=user,
1801
-            session=self.session
1950
+            session=self.session,
1951
+            config=self.app_config,
1802
         ).create_workspace(
1952
         ).create_workspace(
1803
             'test workspace',
1953
             'test workspace',
1804
             save_now=True
1954
             save_now=True
1808
             current_user=user, 
1958
             current_user=user, 
1809
             session=self.session,
1959
             session=self.session,
1810
             config=self.app_config,
1960
             config=self.app_config,
1811
-
1812
         )
1961
         )
1813
         a = api.create(ContentType.Folder, workspace, None,
1962
         a = api.create(ContentType.Folder, workspace, None,
1814
                        'this is randomized folder', True)
1963
                        'this is randomized folder', True)
1843
         group_api = GroupApi(
1992
         group_api = GroupApi(
1844
             current_user=None,
1993
             current_user=None,
1845
             session=self.session,
1994
             session=self.session,
1995
+            config=self.app_config,
1846
         )
1996
         )
1847
         groups = [group_api.get_one(Group.TIM_USER),
1997
         groups = [group_api.get_one(Group.TIM_USER),
1848
                   group_api.get_one(Group.TIM_MANAGER),
1998
                   group_api.get_one(Group.TIM_MANAGER),
1853
 
2003
 
1854
         workspace = WorkspaceApi(
2004
         workspace = WorkspaceApi(
1855
             current_user=user,
2005
             current_user=user,
1856
-            session=self.session
2006
+            session=self.session,
2007
+            config=self.app_config,
1857
         ).create_workspace(
2008
         ).create_workspace(
1858
             'test workspace',
2009
             'test workspace',
1859
             save_now=True,
2010
             save_now=True,
1894
             config=self.app_config,
2045
             config=self.app_config,
1895
             current_user=None,
2046
             current_user=None,
1896
         )
2047
         )
1897
-        group_api = GroupApi(current_user=None, session=self.session)
2048
+        group_api = GroupApi(
2049
+            current_user=None,
2050
+            session=self.session,
2051
+            config=self.app_config,
2052
+        )
1898
         groups = [group_api.get_one(Group.TIM_USER),
2053
         groups = [group_api.get_one(Group.TIM_USER),
1899
                   group_api.get_one(Group.TIM_MANAGER),
2054
                   group_api.get_one(Group.TIM_MANAGER),
1900
                   group_api.get_one(Group.TIM_ADMIN)]
2055
                   group_api.get_one(Group.TIM_ADMIN)]
1904
 
2059
 
1905
         workspace = WorkspaceApi(
2060
         workspace = WorkspaceApi(
1906
             current_user=user,
2061
             current_user=user,
1907
-            session=self.session
2062
+            session=self.session,
2063
+            config=self.app_config,
1908
         ).create_workspace('test workspace', save_now=True)
2064
         ).create_workspace('test workspace', save_now=True)
1909
 
2065
 
1910
         api = ContentApi(
2066
         api = ContentApi(
2038
         bob_workspace = WorkspaceApi(
2194
         bob_workspace = WorkspaceApi(
2039
             current_user=bob,
2195
             current_user=bob,
2040
             session=self.session,
2196
             session=self.session,
2197
+            config=self.app_config,
2041
         ).create_workspace(
2198
         ).create_workspace(
2042
             'bob_workspace',
2199
             'bob_workspace',
2043
             save_now=True,
2200
             save_now=True,
2045
         admin_workspace = WorkspaceApi(
2202
         admin_workspace = WorkspaceApi(
2046
             current_user=admin,
2203
             current_user=admin,
2047
             session=self.session,
2204
             session=self.session,
2205
+            config=self.app_config,
2048
         ).create_workspace(
2206
         ).create_workspace(
2049
             'admin_workspace',
2207
             'admin_workspace',
2050
             save_now=True,
2208
             save_now=True,

+ 8 - 2
tracim/tests/library/test_workspace.py 查看文件

44
             .filter(User.email == 'admin@admin.admin').one()
44
             .filter(User.email == 'admin@admin.admin').one()
45
         wapi = WorkspaceApi(
45
         wapi = WorkspaceApi(
46
             session=self.session,
46
             session=self.session,
47
+            config=self.app_config,
47
             current_user=admin,
48
             current_user=admin,
48
         )
49
         )
49
         w = wapi.create_workspace(label='workspace w', save_now=True)
50
         w = wapi.create_workspace(label='workspace w', save_now=True)
57
         rapi = RoleApi(
58
         rapi = RoleApi(
58
             session=self.session,
59
             session=self.session,
59
             current_user=admin,
60
             current_user=admin,
61
+            config=self.app_config,
60
         )
62
         )
61
         r = rapi.create_one(u, w, UserRoleInWorkspace.READER, with_notif=True)
63
         r = rapi.create_one(u, w, UserRoleInWorkspace.READER, with_notif=True)
62
         eq_([r, ], wapi.get_notifiable_roles(workspace=w))
64
         eq_([r, ], wapi.get_notifiable_roles(workspace=w))
75
         wapi = WorkspaceApi(
77
         wapi = WorkspaceApi(
76
             session=self.session,
78
             session=self.session,
77
             current_user=admin,
79
             current_user=admin,
80
+            config=self.app_config,
78
         )
81
         )
79
         eq_([], wapi.get_all_manageable())
82
         eq_([], wapi.get_all_manageable())
80
         # Checks an admin gets all workspaces.
83
         # Checks an admin gets all workspaces.
87
         gapi = GroupApi(
90
         gapi = GroupApi(
88
             session=self.session,
91
             session=self.session,
89
             current_user=None,
92
             current_user=None,
93
+            config=self.app_config,
90
         )
94
         )
91
         u = uapi.create_user('u.s@e.r', [gapi.get_one(Group.TIM_USER)], True)
95
         u = uapi.create_user('u.s@e.r', [gapi.get_one(Group.TIM_USER)], True)
92
         wapi = WorkspaceApi(
96
         wapi = WorkspaceApi(
93
             session=self.session,
97
             session=self.session,
94
-            current_user=u
98
+            current_user=u,
99
+            config=self.app_config,
95
         )
100
         )
96
         rapi = RoleApi(
101
         rapi = RoleApi(
97
             session=self.session,
102
             session=self.session,
98
-            current_user=u
103
+            current_user=u,
104
+            config=self.app_config,
99
         )
105
         )
100
         rapi.create_one(u, w4, UserRoleInWorkspace.READER, False)
106
         rapi.create_one(u, w4, UserRoleInWorkspace.READER, False)
101
         rapi.create_one(u, w3, UserRoleInWorkspace.CONTRIBUTOR, False)
107
         rapi.create_one(u, w3, UserRoleInWorkspace.CONTRIBUTOR, False)

+ 1 - 0
tracim/views/core_api/user_controller.py 查看文件

40
         wapi = WorkspaceApi(
40
         wapi = WorkspaceApi(
41
             current_user=request.current_user,  # User
41
             current_user=request.current_user,  # User
42
             session=request.dbsession,
42
             session=request.dbsession,
43
+            config=app_config,
43
         )
44
         )
44
         # TODO - G.M - 22-05-2018 - Refactor this in a more lib way( avoid
45
         # TODO - G.M - 22-05-2018 - Refactor this in a more lib way( avoid
45
         # try/catch and complex code here).
46
         # try/catch and complex code here).

+ 13 - 9
tracim/views/core_api/workspace_controller.py 查看文件

1
+import typing
2
+
1
 from pyramid.config import Configurator
3
 from pyramid.config import Configurator
2
 from sqlalchemy.orm.exc import NoResultFound
4
 from sqlalchemy.orm.exc import NoResultFound
3
 
5
 
30
     @hapic.output_body(WorkspaceSchema())
32
     @hapic.output_body(WorkspaceSchema())
31
     def workspace(self, context, request: TracimRequest, hapic_data=None):
33
     def workspace(self, context, request: TracimRequest, hapic_data=None):
32
         """
34
         """
33
-        Get workspace information
35
+        Get workspace informations
34
         """
36
         """
35
         wid = hapic_data.path['workspace_id']
37
         wid = hapic_data.path['workspace_id']
36
         app_config = request.registry.settings['CFG']
38
         app_config = request.registry.settings['CFG']
37
         wapi = WorkspaceApi(
39
         wapi = WorkspaceApi(
38
             current_user=request.current_user,  # User
40
             current_user=request.current_user,  # User
39
             session=request.dbsession,
41
             session=request.dbsession,
42
+            config=app_config,
40
         )
43
         )
41
         # TODO - G.M - 22-05-2018 - Refactor this in a more lib way( avoid
44
         # TODO - G.M - 22-05-2018 - Refactor this in a more lib way( avoid
42
         # try/catch and complex code here).
45
         # try/catch and complex code here).
44
             workspace = wapi.get_one(wid)
47
             workspace = wapi.get_one(wid)
45
         except NoResultFound:
48
         except NoResultFound:
46
             raise WorkspaceNotFound()
49
             raise WorkspaceNotFound()
47
-        return WorkspaceInContext(workspace, request.dbsession, app_config)
50
+        return wapi.get_workspace_with_context(workspace)
48
 
51
 
49
     @hapic.with_api_doc()
52
     @hapic.with_api_doc()
50
     @hapic.input_path(WorkspaceIdPathSchema())
53
     @hapic.input_path(WorkspaceIdPathSchema())
57
             context,
60
             context,
58
             request: TracimRequest,
61
             request: TracimRequest,
59
             hapic_data=None
62
             hapic_data=None
60
-    ) -> None:
63
+    ) -> typing.List[UserRoleWorkspaceInContext]:
64
+        """
65
+        Get Members of this workspace
66
+        """
61
         wid = hapic_data.path['workspace_id']
67
         wid = hapic_data.path['workspace_id']
62
         app_config = request.registry.settings['CFG']
68
         app_config = request.registry.settings['CFG']
63
         rapi = RoleApi(
69
         rapi = RoleApi(
64
             current_user=request.current_user,
70
             current_user=request.current_user,
65
             session=request.dbsession,
71
             session=request.dbsession,
72
+            config=app_config,
66
         )
73
         )
67
         wapi = WorkspaceApi(
74
         wapi = WorkspaceApi(
68
             current_user=request.current_user,
75
             current_user=request.current_user,
69
             session=request.dbsession,
76
             session=request.dbsession,
77
+            config=app_config,
70
         )
78
         )
71
         try:
79
         try:
72
             wapi.get_one(wid)
80
             wapi.get_one(wid)
73
         except NoResultFound:
81
         except NoResultFound:
74
             raise WorkspaceNotFound()
82
             raise WorkspaceNotFound()
75
         return [
83
         return [
76
-            UserRoleWorkspaceInContext(
77
-                user_role,
78
-                request.dbsession,
79
-                app_config
80
-            )
84
+            rapi.get_user_role_workspace_with_context(user_role)
81
             for user_role in rapi.get_all_for_workspace(wid)
85
             for user_role in rapi.get_all_for_workspace(wid)
82
         ]
86
         ]
83
 
87
 
91
         configurator.add_route('workspace', '/workspaces/{workspace_id}', request_method='GET')  # nopep8
95
         configurator.add_route('workspace', '/workspaces/{workspace_id}', request_method='GET')  # nopep8
92
         configurator.add_view(self.workspace, route_name='workspace')
96
         configurator.add_view(self.workspace, route_name='workspace')
93
         configurator.add_route('workspace_members', '/workspaces/{workspace_id}/members', request_method='GET')  # nopep8
97
         configurator.add_route('workspace_members', '/workspaces/{workspace_id}/members', request_method='GET')  # nopep8
94
-        configurator.add_view(self.workspaces_members, route_name='workspace_members')
98
+        configurator.add_view(self.workspaces_members, route_name='workspace_members')  # nopep8