author | Nicolas Chauvat <nicolas.chauvat@logilab.fr> |
Fri, 26 Jun 2009 13:51:08 +0200 | |
branch | stable |
changeset 2175 | 16d3c37c5d28 |
parent 2174 | 7f576dc9502e |
child 2316 | 234475d6ed7b |
permissions | -rw-r--r-- |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
1 |
.. -*- coding: utf-8 -*- |
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
2 |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
3 |
Frequently Asked Questions |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
4 |
========================== |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
5 |
|
310
cdd2b1247c50
[doc] add links to google-appengine forum
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
306
diff
changeset
|
6 |
[XXX 'copy answer from forum' means reusing text from |
cdd2b1247c50
[doc] add links to google-appengine forum
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
306
diff
changeset
|
7 |
http://groups.google.com/group/google-appengine/browse_frm/thread/c9476925f5f66ec6 |
cdd2b1247c50
[doc] add links to google-appengine forum
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
306
diff
changeset
|
8 |
and |
cdd2b1247c50
[doc] add links to google-appengine forum
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
306
diff
changeset
|
9 |
http://groups.google.com/group/google-appengine/browse_frm/thread/d791ce17e2716147/eb078f8cfe8426e0 |
cdd2b1247c50
[doc] add links to google-appengine forum
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
306
diff
changeset
|
10 |
and |
cdd2b1247c50
[doc] add links to google-appengine forum
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
306
diff
changeset
|
11 |
http://groups.google.com/group/google-appengine/browse_frm/thread/f48cf6099973aef5/c28cd6934dd72457 |
cdd2b1247c50
[doc] add links to google-appengine forum
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
306
diff
changeset
|
12 |
] |
cdd2b1247c50
[doc] add links to google-appengine forum
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
306
diff
changeset
|
13 |
|
1715 | 14 |
Why does not CubicWeb have a template language ? |
15 |
------------------------------------------------ |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
16 |
|
344
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
17 |
There are enough template languages out there. You can use your |
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
18 |
preferred template language if you want. [explain how to use a |
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
19 |
template language] |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
20 |
|
2175
16d3c37c5d28
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2174
diff
changeset
|
21 |
*CubicWeb* does not define its own templating language as this was |
344
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
22 |
not our goal. Based on our experience, we realized that |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
23 |
we could gain productivity by letting designers use design tools |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
24 |
and developpers develop without the use of the templating language |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
25 |
as an intermediary that could not be anyway efficient for both parties. |
2175
16d3c37c5d28
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2174
diff
changeset
|
26 |
Python is the templating language that we use in *CubicWeb*, but again, |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
27 |
it does not prevent you from using a templating language. |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
28 |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
29 |
The reason template languages are not used in this book is that |
344
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
30 |
experience has proved us that using pure python was less cumbersome. |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
31 |
|
1715 | 32 |
Why do you think using pure python is better than using a template language ? |
33 |
----------------------------------------------------------------------------- |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
34 |
|
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
35 |
Python is an Object Oriented Programming language and as such it |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
36 |
already provides a consistent and strong architecture and syntax |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
37 |
a templating language would not reach. |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
38 |
|
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
39 |
When doing development, you need a real language and template |
344
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
40 |
languages are not real languages. |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
41 |
|
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
42 |
Using Python enables developing applications for which code is |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
43 |
easier to maintain with real functions/classes/contexts |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
44 |
without the need of learning a new dialect. By using Python, |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
45 |
we use standard OOP techniques and this is a key factor in a |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
46 |
robust application. |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
47 |
|
1890
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
48 |
Why do you use the LGPL license to prevent me from doing X ? |
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
49 |
------------------------------------------------------------ |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
50 |
|
1890
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
51 |
LGPL means that *if* you redistribute your application, you need to |
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
52 |
redistribute the changes you made to CubicWeb under the LGPL licence. |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
53 |
|
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
54 |
Publishing a web site has nothing to do with redistributing |
1890
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
55 |
source code. A fair amount of companies use modified LGPL code |
2175
16d3c37c5d28
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2174
diff
changeset
|
56 |
for internal use. And someone could publish a *CubicWeb* component |
1890
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
57 |
under a BSD licence for others to plug into a LGPL framework without |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
58 |
any problem. The only thing we are trying to prevent here is someone |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
59 |
taking the framework and packaging it as closed source to his own |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
60 |
clients. |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
61 |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
62 |
|
1715 | 63 |
CubicWeb looks pretty recent. Is it stable ? |
64 |
-------------------------------------------- |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
65 |
|
1890
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
66 |
It is constantly evolving, piece by piece. The framework has evolved since |
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
67 |
2001 and data has been migrated from one schema to the other ever since. There |
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
68 |
is a well-defined way to handle data and schema migration. |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
69 |
|
1715 | 70 |
Why is the RQL query language looking similar to X ? |
71 |
----------------------------------------------------- |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
72 |
|
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
73 |
It may remind you of SQL but it is higher level than SQL, more like |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
74 |
SPARQL. Except that SPARQL did not exist when we started the project. |
2150 | 75 |
Having SPARQL as a query language has been in our backlog for years. |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
76 |
|
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
77 |
That RQL language is what is going to make a difference with django- |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
78 |
like frameworks for several reasons. |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
79 |
|
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
80 |
1. accessing data is *much* easier with it. One can write complex |
344
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
81 |
queries with RQL that would be tedious to define and hard to maintain |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
82 |
using an object/filter suite of method calls. |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
83 |
|
344
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
84 |
2. it offers an abstraction layer allowing your applications to run |
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
85 |
on multiple back-ends. That means not only various SQL backends |
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
86 |
(postgresql, sqlite, mysql), but also multiple databases at the |
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
87 |
same time, and also non-SQL data stores like LDAP directories and |
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
88 |
subversion/mercurial repositories (see the `vcsfile` |
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
89 |
component). Google App Engine is yet another supported target for |
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
90 |
RQL. |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
91 |
|
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
92 |
[copy answer from forum, explain why similar to sparql and why better |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
93 |
than django and SQL] |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
94 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
95 |
which ajax library is CubicWeb using ? |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
96 |
-------------------------------------- |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
97 |
|
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
98 |
[CubicWeb uses jQuery and adds a thin layer on top of that] |
1678
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
99 |
|
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
100 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
101 |
How is security implemented ? |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
102 |
------------------------------ |
1678
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
103 |
|
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
104 |
This is an example of how it works in our framework:: |
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
105 |
|
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
106 |
class Version(EntityType): |
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
107 |
"""a version is defining the content of a particular project's |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
108 |
release""" |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
109 |
# definition of attributes is voluntarily missing |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
110 |
permissions = {'read': ('managers', 'users', 'guests',), |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
111 |
'update': ('managers', 'logilab', 'owners',), |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
112 |
'delete': ('managers', ), |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
113 |
'add': ('managers', 'logilab', |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
114 |
ERQLExpression('X version_of PROJ, U in_group G, ' |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
115 |
'PROJ require_permission P, ' |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
116 |
'P name "add_version", P require_group G'),)} |
1678
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
117 |
|
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
118 |
The above means that permission to read a Version is granted to any |
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
119 |
user that is part of one of the groups 'managers', 'users', 'guests'. |
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
120 |
The 'add' permission is granted to users in group 'managers' or |
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
121 |
'logilab' and to users in group G, if G is linked by a permission |
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
122 |
entity named "add_version" to the version's project. |
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
123 |
:: |
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
124 |
|
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
125 |
class version_of(RelationType): |
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
126 |
"""link a version to its project. A version is necessarily linked |
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
127 |
to one and only one project. """ |
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
128 |
# some lines voluntarily missing |
2172
cf8f9180e63e
delete-trailing-whitespace
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2041
diff
changeset
|
129 |
permissions = {'read': ('managers', 'users', 'guests',), |
1678
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
130 |
'delete': ('managers', ), |
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
131 |
'add': ('managers', 'logilab', |
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
132 |
RRQLExpression('O require_permission P, P name "add_version", |
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
133 |
'U in_group G, P require_group G'),) } |
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
134 |
|
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
135 |
You can find additional information in the section :ref:`security`. |
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
136 |
|
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
137 |
[XXX what does the second example means in addition to the first one?] |
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
138 |
|
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
139 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
140 |
What is `Error while publishing rest text ...` ? |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
141 |
------------------------------------------------ |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
142 |
|
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
143 |
While modifying the description of an entity, you get an error message in |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
144 |
the application `Error while publishing ...` for Rest text and plain text. |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
145 |
The server returns a traceback like as follows :: |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
146 |
|
1191
216141cf47a3
remove all erudi and ginco occurences in the doc
Emile Anclin <emile.anclin@logilab.fr>
parents:
383
diff
changeset
|
147 |
2008-10-06 15:05:08 - (cubicweb.rest) ERROR: error while publishing ReST text |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
148 |
Traceback (most recent call last): |
1191
216141cf47a3
remove all erudi and ginco occurences in the doc
Emile Anclin <emile.anclin@logilab.fr>
parents:
383
diff
changeset
|
149 |
File "/home/user/src/blogdemo/cubicweb/common/rest.py", line 217, in rest_publish |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
150 |
File "/usr/lib/python2.5/codecs.py", line 817, in open |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
151 |
file = __builtin__.open(filename, mode, buffering) |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
152 |
TypeError: __init__() takes at most 3 arguments (4 given) |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
153 |
|
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
154 |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
155 |
This can be fixed by applying the patch described in : |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
156 |
http://code.google.com/p/googleappengine/issues/detail?id=48 |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
157 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
158 |
What are hooks used for ? |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
159 |
------------------------- |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
160 |
|
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
161 |
Hooks are executed around (actually before or after) events. The |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
162 |
most common events are data creation, update and deletion. They |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
163 |
permit additional constraint checking (those not expressible at the |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
164 |
schema level), pre and post computations depending on data |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
165 |
movements. |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
166 |
|
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
167 |
As such, they are a vital part of the framework. |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
168 |
|
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
169 |
Other kinds of hooks, called Operations, are available |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
170 |
for execution just before commit. |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
171 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
172 |
When should you define an HTML template rather than define a graphical component ? |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
173 |
---------------------------------------------------------------------------------- |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
174 |
|
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
175 |
An HTML template cannot contain code, hence it is only about static |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
176 |
content. A component is made of code and operations that apply on a |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
177 |
well defined context (request, result set). It enables much more |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
178 |
dynamic views. |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
179 |
|
1715 | 180 |
What is the difference between `AppRsetObject` and `AppObject` ? |
181 |
---------------------------------------------------------------- |
|
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
182 |
|
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
183 |
`AppRsetObject` instances are selected on a request and a result |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
184 |
set. `AppObject` instances are directly selected by id. |
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
185 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
186 |
How to update a database after a schema modification ? |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
187 |
------------------------------------------------------ |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
188 |
|
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
189 |
It depends on what has been modified in the schema. |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
190 |
|
2172
cf8f9180e63e
delete-trailing-whitespace
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2041
diff
changeset
|
191 |
* Update of an attribute permissions and properties: |
1350
31e4c8d30e5d
[doc] Adds how to add attribute in DB.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1348
diff
changeset
|
192 |
``synchronize_eschema('MyEntity')``. |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
193 |
|
2172
cf8f9180e63e
delete-trailing-whitespace
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2041
diff
changeset
|
194 |
* Update of a relation permissions and properties: |
1350
31e4c8d30e5d
[doc] Adds how to add attribute in DB.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1348
diff
changeset
|
195 |
``synchronize_rschema('MyRelation')``. |
31e4c8d30e5d
[doc] Adds how to add attribute in DB.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1348
diff
changeset
|
196 |
|
31e4c8d30e5d
[doc] Adds how to add attribute in DB.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1348
diff
changeset
|
197 |
* Add an attribute: ``add_attribute('MyEntityType', 'myattr')``. |
31e4c8d30e5d
[doc] Adds how to add attribute in DB.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1348
diff
changeset
|
198 |
|
31e4c8d30e5d
[doc] Adds how to add attribute in DB.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1348
diff
changeset
|
199 |
* Add a relation: ``add_relation_definition('SubjRelation', 'MyRelation', 'ObjRelation')``. |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
200 |
|
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
201 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
202 |
How to create an anonymous user ? |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
203 |
--------------------------------- |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
204 |
|
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
205 |
This allows to bypass authentication for your site. In the |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
206 |
``all-in-one.conf`` file of your instance, define the anonymous user |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
207 |
as follows :: |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
208 |
|
1191
216141cf47a3
remove all erudi and ginco occurences in the doc
Emile Anclin <emile.anclin@logilab.fr>
parents:
383
diff
changeset
|
209 |
# login of the CubicWeb user account to use for anonymous user (if you want to |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
210 |
# allow anonymous) |
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
211 |
anonymous-user=anon |
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
212 |
|
1191
216141cf47a3
remove all erudi and ginco occurences in the doc
Emile Anclin <emile.anclin@logilab.fr>
parents:
383
diff
changeset
|
213 |
# password of the CubicWeb user account matching login |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
214 |
anonymous-password=anon |
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
215 |
|
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
216 |
You also must ensure that this `anon` user is a registered user of |
1348
28bb9efe0cc8
[doc] Add information on anonymous user configuration.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1191
diff
changeset
|
217 |
the DB backend. If not, you can create through the administation |
28bb9efe0cc8
[doc] Add information on anonymous user configuration.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1191
diff
changeset
|
218 |
interface of your instance by adding a user with the role `guests`. |
28bb9efe0cc8
[doc] Add information on anonymous user configuration.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1191
diff
changeset
|
219 |
This could be the admin account (for development |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
220 |
purposes, of course). |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
221 |
|
1348
28bb9efe0cc8
[doc] Add information on anonymous user configuration.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1191
diff
changeset
|
222 |
.. note:: |
28bb9efe0cc8
[doc] Add information on anonymous user configuration.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1191
diff
changeset
|
223 |
While creating a new instance, you can decide to allow access |
1378
3645800647ef
[doc] Fix typo.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1354
diff
changeset
|
224 |
to anonymous user, which will automatically execute what is |
1348
28bb9efe0cc8
[doc] Add information on anonymous user configuration.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1191
diff
changeset
|
225 |
decribed above. |
28bb9efe0cc8
[doc] Add information on anonymous user configuration.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1191
diff
changeset
|
226 |
|
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
227 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
228 |
How to change the application logo ? |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
229 |
------------------------------------ |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
230 |
|
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
231 |
There are two ways of changing the logo. |
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
232 |
|
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
233 |
1. The easiest way to use a different logo is to replace the existing |
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
234 |
``logo.png`` in ``myapp/data`` by your prefered icon and refresh. |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
235 |
By default all application will look for a ``logo.png`` to be |
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
236 |
rendered in the logo section. |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
237 |
|
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
1440
diff
changeset
|
238 |
.. image:: ../images/lax-book.06-main-template-logo.en.png |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
239 |
|
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
240 |
2. In your cube directory, you can specify which file to use for the logo. |
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
241 |
This is configurable in ``mycube/data/external_resources``: :: |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
242 |
|
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
243 |
LOGO = DATADIR/path/to/mylogo.gif |
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
244 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
245 |
where DATADIR is ``mycube/data``. |
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
246 |
|
1808 | 247 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
248 |
How to configure a LDAP source ? |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
249 |
-------------------------------- |
335
643db91242b1
[doc] Integration of card http://intranet.logilab.fr/intra/card/eid/3355 to the book.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
317
diff
changeset
|
250 |
|
358
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
251 |
Your instance's sources are defined in ``/etc/cubicweb.d/myapp/sources``. |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
252 |
Configuring an LDAP source is about declaring that source in your |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
253 |
instance configuration file such as: :: |
335
643db91242b1
[doc] Integration of card http://intranet.logilab.fr/intra/card/eid/3355 to the book.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
317
diff
changeset
|
254 |
|
358
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
255 |
[ldapuser] |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
256 |
adapter=ldapuser |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
257 |
# ldap host |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
258 |
host=myhost |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
259 |
# base DN to lookup for usres |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
260 |
user-base-dn=ou=People,dc=mydomain,dc=fr |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
261 |
# user search scope |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
262 |
user-scope=ONELEVEL |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
263 |
# classes of user |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
264 |
user-classes=top,posixAccount |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
265 |
# attribute used as login on authentication |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
266 |
user-login-attr=uid |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
267 |
# name of a group in which ldap users will be by default |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
268 |
user-default-group=users |
1191
216141cf47a3
remove all erudi and ginco occurences in the doc
Emile Anclin <emile.anclin@logilab.fr>
parents:
383
diff
changeset
|
269 |
# map from ldap user attributes to cubicweb attributes |
358
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
270 |
user-attrs-map=gecos:email,uid:login |
335
643db91242b1
[doc] Integration of card http://intranet.logilab.fr/intra/card/eid/3355 to the book.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
317
diff
changeset
|
271 |
|
358
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
272 |
Any change applied to configuration file requires to restart your |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
273 |
application. |
383
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
274 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
275 |
I get NoSelectableObject exceptions, how do I debug selectors ? |
1715 | 276 |
--------------------------------------------------------------- |
383
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
277 |
|
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
278 |
You just need to put the appropriate context manager around view/component |
2041
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
279 |
selection (one standard place in in vreg.py) : :: |
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
280 |
|
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
281 |
def possible_objects(self, registry, *args, **kwargs): |
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
282 |
"""return an iterator on possible objects in a registry for this result set |
383
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
283 |
|
2041
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
284 |
actions returned are classes, not instances |
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
285 |
""" |
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
286 |
from cubicweb.selectors import traced_selection |
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
287 |
with traced_selection(): |
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
288 |
for vobjects in self.registry(registry).values(): |
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
289 |
try: |
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
290 |
yield self.select(vobjects, *args, **kwargs) |
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
291 |
except NoSelectableObject: |
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
292 |
continue |
383
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
293 |
|
2041
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
294 |
Don't forget the 'from __future__ improt with_statement' at the |
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
295 |
module top-level. |
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
296 |
|
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
297 |
This will yield additional WARNINGs, like this: |
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
298 |
:: |
383
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
299 |
|
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
300 |
2009-01-09 16:43:52 - (cubicweb.selectors) WARNING: selector one_line_rset returned 0 for <class 'cubicweb.web.views.basecomponents.WFHistoryVComponent'> |
1354
e71f704aaf40
[doc] Adds HowTo format date.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1350
diff
changeset
|
301 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
302 |
How to format an entity date attribute ? |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
303 |
---------------------------------------- |
1354
e71f704aaf40
[doc] Adds HowTo format date.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1350
diff
changeset
|
304 |
|
e71f704aaf40
[doc] Adds HowTo format date.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1350
diff
changeset
|
305 |
If your schema has an attribute of type Date or Datetime, you might |
e71f704aaf40
[doc] Adds HowTo format date.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1350
diff
changeset
|
306 |
want to format it. First, you should define your preferred format using |
1900
8dd4bb69c73d
[tests] fix test after eproperties got renamed to cwproperties
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1890
diff
changeset
|
307 |
the site configuration panel ``http://appurl/view?vid=systempropertiesform`` |
1354
e71f704aaf40
[doc] Adds HowTo format date.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1350
diff
changeset
|
308 |
and then set ``ui.date`` and/or ``ui.datetime``. |
e71f704aaf40
[doc] Adds HowTo format date.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1350
diff
changeset
|
309 |
Then in the view code, use:: |
2172
cf8f9180e63e
delete-trailing-whitespace
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2041
diff
changeset
|
310 |
|
1354
e71f704aaf40
[doc] Adds HowTo format date.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1350
diff
changeset
|
311 |
self.format_date(entity.date_attribute) |
1599
38a1d0f190e2
[doc] add FAQ about kerberos auth with postgresql
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1440
diff
changeset
|
312 |
|
1715 | 313 |
Can PostgreSQL and CubicWeb authentication work with kerberos ? |
314 |
---------------------------------------------------------------- |
|
1599
38a1d0f190e2
[doc] add FAQ about kerberos auth with postgresql
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1440
diff
changeset
|
315 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
316 |
If you have PostgreSQL set up to accept kerberos authentication, you can set |
1599
38a1d0f190e2
[doc] add FAQ about kerberos auth with postgresql
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1440
diff
changeset
|
317 |
the db-host, db-name and db-user parameters in the `sources` configuration |
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
318 |
file while leaving the password blank. It should be enough for your |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
319 |
application to connect to postgresql with a kerberos ticket. |
1715 | 320 |
|
2172
cf8f9180e63e
delete-trailing-whitespace
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2041
diff
changeset
|
321 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
322 |
How to load data from a script ? |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
323 |
-------------------------------- |
1715 | 324 |
|
325 |
The following script aims at loading data within a script assuming pyro-nsd is |
|
326 |
running and your application is configured with ``pyro-server=yes``, otherwise |
|
327 |
you would not be able to use dbapi. :: |
|
328 |
||
329 |
from cubicweb import dbapi |
|
330 |
||
331 |
cnx = dbapi.connection(database='instance-id', user='admin', password='admin') |
|
332 |
cur = cnx.cursor() |
|
333 |
for name in ('Personal', 'Professional', 'Computers'): |
|
334 |
cur.execute('INSERT Blog B: B name %s', name) |
|
335 |
cnx.commit() |
|
336 |
||
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
337 |
What is the CubicWeb datatype corresponding to GAE datastore's UserProperty ? |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
338 |
----------------------------------------------------------------------------- |
1715 | 339 |
|
340 |
If you take a look at your application schema and |
|
341 |
click on "display detailed view of metadata" you will see that there |
|
342 |
is a Euser entity in there. That's the one that is modeling users. The |
|
343 |
thing that corresponds to a UserProperty is a relationship between |
|
344 |
your entity and the Euser entity. As in :: |
|
345 |
||
346 |
class TodoItem(EntityType): |
|
347 |
text = String() |
|
348 |
todo_by = SubjectRelation('Euser') |
|
349 |
||
350 |
[XXX check that cw handle users better by |
|
351 |
mapping Google Accounts to local Euser entities automatically] |
|
352 |
||
1890
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
353 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
354 |
How to reset the password for user joe ? |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
355 |
---------------------------------------- |
1890
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
356 |
|
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
357 |
You need to generate a new encrypted password:: |
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
358 |
|
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
359 |
$ python |
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
360 |
>>> from cubicweb.server.utils import crypt_password |
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
361 |
>>> crypt_password('joepass') |
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
362 |
'qHO8282QN5Utg' |
2172
cf8f9180e63e
delete-trailing-whitespace
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2041
diff
changeset
|
363 |
>>> |
1890
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
364 |
|
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
365 |
and paste it in the database:: |
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
366 |
|
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
367 |
$ psql mydb |
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
368 |
mydb=> update cw_cwuser set cw_upassword='qHO8282QN5Utg' where cw_login='joe'; |
2041
296e897ab8e1
be more precise & helpful
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
1900
diff
changeset
|
369 |
UPDATE 1 |