author | Rémi Cardona <remi.cardona@logilab.fr> |
Tue, 15 Sep 2015 16:56:57 +0200 | |
changeset 10609 | e2d8e81bfe68 |
parent 10496 | e95b559a06a2 |
child 12792 | e2cdb1be6bd9 |
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 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
3 |
Frequently Asked Questions (FAQ) |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
4 |
================================ |
116
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 |
|
5228
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
7 |
Generalities |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
8 |
```````````` |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
9 |
|
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
10 |
Why do you use the LGPL license to prevent me from doing X ? |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
11 |
------------------------------------------------------------ |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
12 |
|
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
13 |
LGPL means that *if* you redistribute your application, you need to |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
14 |
redistribute the changes you made to CubicWeb under the LGPL licence. |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
15 |
|
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
16 |
Publishing a web site has nothing to do with redistributing source |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
17 |
code according to the terms of the LGPL. A fair amount of companies |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
18 |
use modified LGPL code for internal use. And someone could publish a |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
19 |
*CubicWeb* component under a BSD licence for others to plug into a |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
20 |
LGPL framework without any problem. The only thing we are trying to |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
21 |
prevent here is someone taking the framework and packaging it as |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
22 |
closed source to his own clients. |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
23 |
|
1715 | 24 |
Why does not CubicWeb have a template language ? |
25 |
------------------------------------------------ |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
26 |
|
2547
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
27 |
There are enough template languages out there. You can use your |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
28 |
preferred template language if you want. [explain how to use a |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
29 |
template language] |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
30 |
|
2547
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
31 |
*CubicWeb* does not define its own templating language as this was |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
32 |
not our goal. Based on our experience, we realized that |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
33 |
we could gain productivity by letting designers use design tools |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
34 |
and developpers develop without the use of the templating language |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
35 |
as an intermediary that could not be anyway efficient for both parties. |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
36 |
Python is the templating language that we use in *CubicWeb*, but again, |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
37 |
it does not prevent you from using a templating language. |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
38 |
|
5156
0ec436cba1a6
[doc/book] add q/a on i18n customisation, misc tweaks
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
39 |
Moreover, CubicWeb currently supports `simpletal`_ out of the box and |
0ec436cba1a6
[doc/book] add q/a on i18n customisation, misc tweaks
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
40 |
it is also possible to use the `cwtags`_ library to build html trees |
0ec436cba1a6
[doc/book] add q/a on i18n customisation, misc tweaks
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
41 |
using the `with statement`_ with more comfort than raw strings. |
0ec436cba1a6
[doc/book] add q/a on i18n customisation, misc tweaks
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
42 |
|
0ec436cba1a6
[doc/book] add q/a on i18n customisation, misc tweaks
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
43 |
.. _`simpletal`: http://www.owlfish.com/software/simpleTAL/ |
0ec436cba1a6
[doc/book] add q/a on i18n customisation, misc tweaks
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
44 |
.. _`cwtags`: http://www.cubicweb.org/project/cwtags |
0ec436cba1a6
[doc/book] add q/a on i18n customisation, misc tweaks
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
45 |
.. _`with statement`: http://www.python.org/dev/peps/pep-0343/ |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
46 |
|
1715 | 47 |
Why do you think using pure python is better than using a template language ? |
48 |
----------------------------------------------------------------------------- |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
49 |
|
2547
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
50 |
Python is an Object Oriented Programming language and as such it |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
51 |
already provides a consistent and strong architecture and syntax |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
52 |
a templating language would not reach. |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
53 |
|
2547
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
54 |
Using Python instead of a template langage for describing the user interface |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
55 |
makes it to maintain with real functions/classes/contexts without the need of |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
56 |
learning a new dialect. By using Python, we use standard OOP techniques and |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
57 |
this is a key factor in a robust application. |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
58 |
|
1715 | 59 |
CubicWeb looks pretty recent. Is it stable ? |
60 |
-------------------------------------------- |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
61 |
|
2547
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
62 |
It is constantly evolving, piece by piece. The framework has evolved since |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
63 |
2001 and data has been migrated from one schema to the other ever since. There |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
64 |
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
|
65 |
|
5228
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
66 |
You can see the roadmap there: |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
67 |
http://www.cubicweb.org/project/cubicweb?tab=projectroadmap_tab. |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
68 |
|
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
69 |
|
1715 | 70 |
Why is the RQL query language looking similar to X ? |
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
71 |
---------------------------------------------------- |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
72 |
|
2547
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
73 |
It may remind you of SQL but it is higher level than SQL, more like |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
74 |
SPARQL. Except that SPARQL did not exist when we started the project. |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
75 |
With version 3.4, CubicWeb has support for SPARQL. |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
76 |
|
5156
0ec436cba1a6
[doc/book] add q/a on i18n customisation, misc tweaks
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
77 |
The RQL language is what is going to make a difference with django- |
2547
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
78 |
like frameworks for several reasons. |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
79 |
|
2547
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
80 |
1. accessing data is *much* easier with it. One can write complex |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
81 |
queries with RQL that would be tedious to define and hard to maintain |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
82 |
using an object/filter suite of method calls. |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
83 |
|
2547
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
84 |
2. it offers an abstraction layer allowing your applications to run |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
85 |
on multiple back-ends. That means not only various SQL backends |
10221
17ad882a211f
[doc] Don't pretend we know cubicweb runs on mysql
Julien Cristau <julien.cristau@logilab.fr>
parents:
10067
diff
changeset
|
86 |
(postgresql, sqlite, sqlserver, mysql), but also non-SQL data stores like |
17ad882a211f
[doc] Don't pretend we know cubicweb runs on mysql
Julien Cristau <julien.cristau@logilab.fr>
parents:
10067
diff
changeset
|
87 |
LDAP directories and subversion/mercurial repositories (see the `vcsfile` |
17ad882a211f
[doc] Don't pretend we know cubicweb runs on mysql
Julien Cristau <julien.cristau@logilab.fr>
parents:
10067
diff
changeset
|
88 |
component). |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
89 |
|
4748
135329e51713
[book/faq] cleanup & complete a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
2547
diff
changeset
|
90 |
Which ajax library is CubicWeb using ? |
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
91 |
-------------------------------------- |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
92 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
93 |
CubicWeb uses jQuery_ and provides a few helpers on top of that. Additionally, |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
94 |
some jQuery plugins are provided (some are provided in specific cubes). |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
95 |
|
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
96 |
.. _jQuery: http://jquery.com |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
97 |
|
1678
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
98 |
|
5228
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
99 |
Development |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
100 |
``````````` |
1678
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
101 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
102 |
How to change the instance logo ? |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
103 |
--------------------------------- |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
104 |
|
10379
a1cc6788e9de
[doc] how to change logo using css
Rabah Meradi <rabah.meradi@logilab.fr>
parents:
10067
diff
changeset
|
105 |
The logo is managed by css. You must provide a custom css that will contain |
a1cc6788e9de
[doc] how to change logo using css
Rabah Meradi <rabah.meradi@logilab.fr>
parents:
10067
diff
changeset
|
106 |
the code below: |
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
107 |
|
10379
a1cc6788e9de
[doc] how to change logo using css
Rabah Meradi <rabah.meradi@logilab.fr>
parents:
10067
diff
changeset
|
108 |
:: |
a1cc6788e9de
[doc] how to change logo using css
Rabah Meradi <rabah.meradi@logilab.fr>
parents:
10067
diff
changeset
|
109 |
|
a1cc6788e9de
[doc] how to change logo using css
Rabah Meradi <rabah.meradi@logilab.fr>
parents:
10067
diff
changeset
|
110 |
#logo { |
a1cc6788e9de
[doc] how to change logo using css
Rabah Meradi <rabah.meradi@logilab.fr>
parents:
10067
diff
changeset
|
111 |
background-image: url("logo.jpg"); |
a1cc6788e9de
[doc] how to change logo using css
Rabah Meradi <rabah.meradi@logilab.fr>
parents:
10067
diff
changeset
|
112 |
} |
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
113 |
|
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
114 |
|
10379
a1cc6788e9de
[doc] how to change logo using css
Rabah Meradi <rabah.meradi@logilab.fr>
parents:
10067
diff
changeset
|
115 |
``logo.jpg`` is in ``mycube/data`` directory. |
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
116 |
|
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
117 |
How to create an anonymous user ? |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
118 |
--------------------------------- |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
119 |
|
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
120 |
This allows to browse the site without being authenticated. In the |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
121 |
``all-in-one.conf`` file of your instance, define the anonymous user |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
122 |
as follows :: |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
123 |
|
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
124 |
# login of the CubicWeb user account to use for anonymous user (if you want to |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
125 |
# allow anonymous) |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
126 |
anonymous-user=anon |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
127 |
|
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
128 |
# password of the CubicWeb user account matching login |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
129 |
anonymous-password=anon |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
130 |
|
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
131 |
You also must ensure that this `anon` user is a registered user of |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
132 |
the DB backend. If not, you can create through the administation |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
133 |
interface of your instance by adding a user with in the group `guests`. |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
134 |
|
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
135 |
.. note:: |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
136 |
While creating a new instance, you can decide to allow access |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
137 |
to anonymous user, which will automatically execute what is |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
138 |
decribed above. |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
139 |
|
1678
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
140 |
|
5228
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
141 |
How to format an entity date attribute ? |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
142 |
---------------------------------------- |
2547
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
143 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
144 |
If your schema has an attribute of type `Date` or `Datetime`, you usually want to |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
145 |
format it when displaying it. First, you should define your preferred format |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
146 |
using the site configuration panel |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
147 |
``http://appurl/view?vid=systempropertiesform`` and then set ``ui.date`` and/or |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
148 |
``ui.datetime``. Then in the view code, use: |
4748
135329e51713
[book/faq] cleanup & complete a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
2547
diff
changeset
|
149 |
|
2547
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
150 |
.. sourcecode:: python |
1678
67162cb05b4b
[doc] Add FAQ entries based on answers from forum.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1677
diff
changeset
|
151 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
152 |
entity.printable_value(date_attribute) |
5228
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
153 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
154 |
which will always return a string whatever the attribute's type (so it's |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
155 |
recommended also for other attribute types). By default it expects to generate |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
156 |
HTML, so it deals with rich text formating, xml escaping... |
5228
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
157 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
158 |
How to update a database after a schema modification ? |
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 |
|
2547
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
161 |
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
|
162 |
|
5156
0ec436cba1a6
[doc/book] add q/a on i18n customisation, misc tweaks
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
163 |
* update the permissions and properties of an entity or a relation: |
2547
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
164 |
``sync_schema_props_perms('MyEntityOrRelation')``. |
1350
31e4c8d30e5d
[doc] Adds how to add attribute in DB.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1348
diff
changeset
|
165 |
|
5156
0ec436cba1a6
[doc/book] add q/a on i18n customisation, misc tweaks
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
166 |
* add an attribute: ``add_attribute('MyEntityType', 'myattr')``. |
1350
31e4c8d30e5d
[doc] Adds how to add attribute in DB.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1348
diff
changeset
|
167 |
|
5156
0ec436cba1a6
[doc/book] add q/a on i18n customisation, misc tweaks
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
168 |
* 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
|
169 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
170 |
I get `NoSelectableObject` exceptions, how do I debug selectors ? |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
171 |
----------------------------------------------------------------- |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
172 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
173 |
You just need to put the appropriate context manager around view/component |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
174 |
selection. One standard place for components is in cubicweb/vregistry.py: |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
175 |
|
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
176 |
.. sourcecode:: python |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
177 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
178 |
def possible_objects(self, *args, **kwargs): |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
179 |
"""return an iterator on possible objects in this registry for the given |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
180 |
context |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
181 |
""" |
8190
2a3c1b787688
[vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8032
diff
changeset
|
182 |
from logilab.common.registry import traced_selection |
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
183 |
with traced_selection(): |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
184 |
for appobjects in self.itervalues(): |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
185 |
try: |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
186 |
yield self._select_best(appobjects, *args, **kwargs) |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
187 |
except NoSelectableObject: |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
188 |
continue |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
189 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
190 |
This will yield additional WARNINGs, like this:: |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
191 |
|
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
192 |
2009-01-09 16:43:52 - (cubicweb.selectors) WARNING: selector one_line_rset returned 0 for <class 'cubicweb.web.views.basecomponents.WFHistoryVComponent'> |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
193 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
194 |
For views, you can put this context in `cubicweb/web/views/basecontrollers.py` in |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
195 |
the `ViewController`: |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
196 |
|
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
197 |
.. sourcecode:: python |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
198 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
199 |
def _select_view_and_rset(self, rset): |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
200 |
... |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
201 |
try: |
8190
2a3c1b787688
[vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8032
diff
changeset
|
202 |
from logilab.common.registry import traced_selection |
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
203 |
with traced_selection(): |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
204 |
view = self._cw.vreg['views'].select(vid, req, rset=rset) |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
205 |
except ObjectNotFound: |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
206 |
self.warning("the view %s could not be found", vid) |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
207 |
req.set_message(req._("The view %s could not be found") % vid) |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
208 |
vid = vid_from_rset(req, rset, self._cw.vreg.schema) |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
209 |
view = self._cw.vreg['views'].select(vid, req, rset=rset) |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
210 |
... |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
211 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
212 |
I get "database is locked" when executing tests |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
213 |
----------------------------------------------- |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
214 |
|
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
215 |
If you have "database is locked" as error when you are executing security tests, |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
216 |
it is usually because commit or rollback are missing before login() calls. |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
217 |
|
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
218 |
You can also use a context manager, to avoid such errors, as described |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
219 |
here: :ref:`securitytest`. |
1348
28bb9efe0cc8
[doc] Add information on anonymous user configuration.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
1191
diff
changeset
|
220 |
|
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
221 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
222 |
What are hooks used for ? |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
223 |
------------------------- |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
224 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
225 |
Hooks are executed around (actually before or after) events. The most common |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
226 |
events are data creation, update and deletion. They permit additional constraint |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
227 |
checking (those not expressible at the schema level), pre and post computations |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
228 |
depending on data movements. |
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
229 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
230 |
As such, they are a vital part of the framework. |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
231 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
232 |
Other kinds of hooks, called Operations, are available |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
233 |
for execution just before commit. |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
234 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
235 |
For more information, read :ref:`hooks` section. |
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
236 |
|
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
237 |
|
5228
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
238 |
Configuration |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
239 |
````````````` |
1808 | 240 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
241 |
How to configure a LDAP source ? |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
242 |
-------------------------------- |
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
|
243 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
244 |
See :ref:`LDAP`. |
4748
135329e51713
[book/faq] cleanup & complete a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
2547
diff
changeset
|
245 |
|
5393
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
246 |
How to import LDAP users in |cubicweb| ? |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
247 |
---------------------------------------- |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
248 |
|
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
249 |
Here is a useful script which enables you to import LDAP users |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
250 |
into your *CubicWeb* instance by running the following: |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
251 |
|
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
252 |
.. sourcecode:: python |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
253 |
|
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
254 |
import os |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
255 |
import pwd |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
256 |
import sys |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
257 |
|
5924
b218df942dd4
[book] update rql documentation and some erroneous/deprecated examples
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
5781
diff
changeset
|
258 |
from logilab.database import get_connection |
5393
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
259 |
|
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
260 |
def getlogin(): |
5924
b218df942dd4
[book] update rql documentation and some erroneous/deprecated examples
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
5781
diff
changeset
|
261 |
"""avoid using os.getlogin() because of strange tty/stdin problems |
5393
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
262 |
(man 3 getlogin) |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
263 |
Another solution would be to use $LOGNAME, $USER or $USERNAME |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
264 |
""" |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
265 |
return pwd.getpwuid(os.getuid())[0] |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
266 |
|
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
267 |
|
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
268 |
try: |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
269 |
database = sys.argv[1] |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
270 |
except IndexError: |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
271 |
print 'USAGE: python ldap2system.py <database>' |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
272 |
sys.exit(1) |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
273 |
|
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
274 |
if raw_input('update %s db ? [y/n]: ' % database).strip().lower().startswith('y'): |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
275 |
cnx = get_connection(user=getlogin(), database=database) |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
276 |
cursor = cnx.cursor() |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
277 |
|
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
278 |
insert = ('INSERT INTO euser (creation_date, eid, modification_date, login, ' |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
279 |
' firstname, surname, last_login_time, upassword) ' |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
280 |
"VALUES (%(mtime)s, %(eid)s, %(mtime)s, %(login)s, %(firstname)s, " |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
281 |
"%(surname)s, %(mtime)s, './fqEz5LeZnT6');") |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
282 |
update = "UPDATE entities SET source='system' WHERE eid=%(eid)s;" |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
283 |
cursor.execute("SELECT eid,type,source,extid,mtime FROM entities WHERE source!='system'") |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
284 |
for eid, type, source, extid, mtime in cursor.fetchall(): |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
285 |
if type != 'CWUser': |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
286 |
print "don't know what to do with entity type", type |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
287 |
continue |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
288 |
if source != 'ldapuser': |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
289 |
print "don't know what to do with source type", source |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
290 |
continue |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
291 |
ldapinfos = dict(x.strip().split('=') for x in extid.split(',')) |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
292 |
login = ldapinfos['uid'] |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
293 |
firstname = ldapinfos['uid'][0].upper() |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
294 |
surname = ldapinfos['uid'][1:].capitalize() |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
295 |
if login != 'jcuissinat': |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
296 |
args = dict(eid=eid, type=type, source=source, login=login, |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
297 |
firstname=firstname, surname=surname, mtime=mtime) |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
298 |
print args |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
299 |
cursor.execute(insert, args) |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
300 |
cursor.execute(update, args) |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
301 |
|
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
302 |
cnx.commit() |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
303 |
cnx.close() |
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
304 |
|
875bdc0fe8ce
[doc/book] hide most XXXs
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5388
diff
changeset
|
305 |
|
5228
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
306 |
Security |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
307 |
```````` |
1890
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
308 |
|
2173
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
309 |
How to reset the password for user joe ? |
7fae9300b9f9
[doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
310 |
---------------------------------------- |
1890
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
311 |
|
2547
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
312 |
If you want to reset the admin password for ``myinstance``, do:: |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
313 |
|
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
314 |
$ cubicweb-ctl reset-admin-pwd myinstance |
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
315 |
|
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
316 |
You need to generate a new encrypted password:: |
1890
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
317 |
|
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
318 |
$ python |
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
319 |
>>> 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
|
320 |
>>> crypt_password('joepass') |
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
321 |
'qHO8282QN5Utg' |
2172
cf8f9180e63e
delete-trailing-whitespace
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2041
diff
changeset
|
322 |
>>> |
1890
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
323 |
|
2547
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
324 |
and paste it in the database:: |
1890
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
325 |
|
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
326 |
$ psql mydb |
108f3b6584b7
[doc] add faq about reseting password for some user
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1808
diff
changeset
|
327 |
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
|
328 |
UPDATE 1 |
2316
234475d6ed7b
added entry about bad user account
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
2175
diff
changeset
|
329 |
|
6350
74575fb32a4d
[book] updated FAQ 'How to reset the password for user joe' with SQL Server syntax
Alexandre Fayolle <alexandre.fayolle@logilab.fr>
parents:
5924
diff
changeset
|
330 |
if you're running over SQL Server, you need to use the CONVERT |
74575fb32a4d
[book] updated FAQ 'How to reset the password for user joe' with SQL Server syntax
Alexandre Fayolle <alexandre.fayolle@logilab.fr>
parents:
5924
diff
changeset
|
331 |
function to convert the string to varbinary(255). The SQL query is |
74575fb32a4d
[book] updated FAQ 'How to reset the password for user joe' with SQL Server syntax
Alexandre Fayolle <alexandre.fayolle@logilab.fr>
parents:
5924
diff
changeset
|
332 |
therefore:: |
74575fb32a4d
[book] updated FAQ 'How to reset the password for user joe' with SQL Server syntax
Alexandre Fayolle <alexandre.fayolle@logilab.fr>
parents:
5924
diff
changeset
|
333 |
|
74575fb32a4d
[book] updated FAQ 'How to reset the password for user joe' with SQL Server syntax
Alexandre Fayolle <alexandre.fayolle@logilab.fr>
parents:
5924
diff
changeset
|
334 |
update cw_cwuser set cw_upassword=CONVERT(varbinary(255), 'qHO8282QN5Utg') where cw_login='joe'; |
74575fb32a4d
[book] updated FAQ 'How to reset the password for user joe' with SQL Server syntax
Alexandre Fayolle <alexandre.fayolle@logilab.fr>
parents:
5924
diff
changeset
|
335 |
|
6352
2259d834d757
[book] note about different encryption on Unix and Windows
Alexandre Fayolle <alexandre.fayolle@logilab.fr>
parents:
6350
diff
changeset
|
336 |
Be careful, the encryption algorithm is different on Windows and on |
2259d834d757
[book] note about different encryption on Unix and Windows
Alexandre Fayolle <alexandre.fayolle@logilab.fr>
parents:
6350
diff
changeset
|
337 |
Unix. You cannot therefore use a hash generated on Unix to fill in a |
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
338 |
Windows database, nor the other way round. |
6352
2259d834d757
[book] note about different encryption on Unix and Windows
Alexandre Fayolle <alexandre.fayolle@logilab.fr>
parents:
6350
diff
changeset
|
339 |
|
2259d834d757
[book] note about different encryption on Unix and Windows
Alexandre Fayolle <alexandre.fayolle@logilab.fr>
parents:
6350
diff
changeset
|
340 |
|
5924
b218df942dd4
[book] update rql documentation and some erroneous/deprecated examples
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
5781
diff
changeset
|
341 |
You can prefer use a migration script similar to this shell invocation instead:: |
b218df942dd4
[book] update rql documentation and some erroneous/deprecated examples
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
5781
diff
changeset
|
342 |
|
b218df942dd4
[book] update rql documentation and some erroneous/deprecated examples
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
5781
diff
changeset
|
343 |
$ cubicweb-ctl shell <instance> |
7250
fe27390bf2f8
[book] fix documentation + add chpasswd.py script
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6592
diff
changeset
|
344 |
>>> from cubicweb import Binary |
5924
b218df942dd4
[book] update rql documentation and some erroneous/deprecated examples
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
5781
diff
changeset
|
345 |
>>> from cubicweb.server.utils import crypt_password |
b218df942dd4
[book] update rql documentation and some erroneous/deprecated examples
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
5781
diff
changeset
|
346 |
>>> crypted = crypt_password('joepass') |
b218df942dd4
[book] update rql documentation and some erroneous/deprecated examples
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
5781
diff
changeset
|
347 |
>>> rset = rql('Any U WHERE U is CWUser, U login "joe"') |
b218df942dd4
[book] update rql documentation and some erroneous/deprecated examples
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
5781
diff
changeset
|
348 |
>>> joe = rset.get_entity(0,0) |
8483
4ba11607d84a
[entity api] unify set_attributes / set_relations into a cw_set method. Closes #2423719
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8190
diff
changeset
|
349 |
>>> joe.cw_set(upassword=Binary(crypted)) |
7250
fe27390bf2f8
[book] fix documentation + add chpasswd.py script
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6592
diff
changeset
|
350 |
|
fe27390bf2f8
[book] fix documentation + add chpasswd.py script
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6592
diff
changeset
|
351 |
Please, refer to the script example is provided in the `misc/examples/chpasswd.py` file. |
5924
b218df942dd4
[book] update rql documentation and some erroneous/deprecated examples
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
5781
diff
changeset
|
352 |
|
b218df942dd4
[book] update rql documentation and some erroneous/deprecated examples
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
5781
diff
changeset
|
353 |
The more experimented people would use RQL request directly:: |
b218df942dd4
[book] update rql documentation and some erroneous/deprecated examples
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
5781
diff
changeset
|
354 |
|
b218df942dd4
[book] update rql documentation and some erroneous/deprecated examples
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
5781
diff
changeset
|
355 |
>>> rql('SET X upassword %(a)s WHERE X is CWUser, X login "joe"', |
b218df942dd4
[book] update rql documentation and some erroneous/deprecated examples
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
5781
diff
changeset
|
356 |
... {'a': crypted}) |
b218df942dd4
[book] update rql documentation and some erroneous/deprecated examples
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
5781
diff
changeset
|
357 |
|
2316
234475d6ed7b
added entry about bad user account
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
2175
diff
changeset
|
358 |
I've just created a user in a group and it doesn't work ! |
234475d6ed7b
added entry about bad user account
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
2175
diff
changeset
|
359 |
--------------------------------------------------------- |
234475d6ed7b
added entry about bad user account
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
2175
diff
changeset
|
360 |
|
234475d6ed7b
added entry about bad user account
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
2175
diff
changeset
|
361 |
You are probably getting errors such as :: |
234475d6ed7b
added entry about bad user account
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
2175
diff
changeset
|
362 |
|
2547
f32af375339d
[doc] fix FAQ layout
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2535
diff
changeset
|
363 |
remove {'PR': 'Project', 'C': 'CWUser'} from solutions since your_user has no read access to cost |
2316
234475d6ed7b
added entry about bad user account
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
2175
diff
changeset
|
364 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
365 |
This is because you have to put your user in the "users" group. The user has to |
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
366 |
be in both groups. |
5156
0ec436cba1a6
[doc/book] add q/a on i18n customisation, misc tweaks
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
367 |
|
5228
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
368 |
How is security implemented ? |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
369 |
------------------------------ |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
370 |
|
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
371 |
The basis for security is a mapping from operations to groups or |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
372 |
arbitrary RQL expressions. These mappings are scoped to entities and |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
373 |
relations. |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
374 |
|
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
375 |
This is an example for an Entity Type definition: |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
376 |
|
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
377 |
.. sourcecode:: python |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
378 |
|
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
379 |
class Version(EntityType): |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
380 |
"""a version is defining the content of a particular project's |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
381 |
release""" |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
382 |
# definition of attributes is voluntarily missing |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
383 |
__permissions__ = {'read': ('managers', 'users', 'guests',), |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
384 |
'update': ('managers', 'logilab', 'owners'), |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
385 |
'delete': ('managers',), |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
386 |
'add': ('managers', 'logilab', |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
387 |
ERQLExpression('X version_of PROJ, U in_group G, ' |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
388 |
'PROJ require_permission P, ' |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
389 |
'P name "add_version", P require_group G'),)} |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
390 |
|
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
391 |
The above means that permission to read a Version is granted to any |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
392 |
user that is part of one of the groups 'managers', 'users', 'guests'. |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
393 |
The 'add' permission is granted to users in group 'managers' or |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
394 |
'logilab' or to users in group G, if G is linked by a permission |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
395 |
entity named "add_version" to the version's project. |
5156
0ec436cba1a6
[doc/book] add q/a on i18n customisation, misc tweaks
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
396 |
|
5228
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
397 |
An example for a Relation Definition (RelationType both defines a |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
398 |
relation type and implicitly one relation definition, on which the |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
399 |
permissions actually apply): |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
400 |
|
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
401 |
.. sourcecode:: python |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
402 |
|
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
403 |
class version_of(RelationType): |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
404 |
"""link a version to its project. A version is necessarily linked |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
405 |
to one and only one project. """ |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
406 |
# some lines voluntarily missing |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
407 |
__permissions__ = {'read': ('managers', 'users', 'guests',), |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
408 |
'delete': ('managers', ), |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
409 |
'add': ('managers', 'logilab', |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
410 |
RRQLExpression('O require_permission P, P name "add_version", ' |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
411 |
'U in_group G, P require_group G'),) } |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
412 |
|
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
413 |
The main difference lies in the basic available operations (there is |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
414 |
no 'update' operation) and the usage of an RRQLExpression (rql |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
415 |
expression for a relation) instead of an ERQLExpression (rql |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
416 |
expression for an entity). |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
417 |
|
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
418 |
You can find additional information in the section :ref:`securitymodel`. |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
419 |
|
5781
a3e60e0fb0f3
[doc/book/faq] question on security
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5393
diff
changeset
|
420 |
Is it possible to bypass security from the UI (web front) part ? |
a3e60e0fb0f3
[doc/book/faq] question on security
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5393
diff
changeset
|
421 |
---------------------------------------------------------------- |
a3e60e0fb0f3
[doc/book/faq] question on security
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5393
diff
changeset
|
422 |
|
6592
4dad0ec0a44f
[book] FAQ: reorganize content, improve NoSelectableObject section, add database
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
6352
diff
changeset
|
423 |
No. Only Hooks/Operations can do that. |
5781
a3e60e0fb0f3
[doc/book/faq] question on security
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5393
diff
changeset
|
424 |
|
5228
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
425 |
Can PostgreSQL and CubicWeb authentication work with kerberos ? |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
426 |
---------------------------------------------------------------- |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
427 |
|
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
428 |
If you have PostgreSQL set up to accept kerberos authentication, you can set |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
429 |
the db-host, db-name and db-user parameters in the `sources` configuration |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
430 |
file while leaving the password blank. It should be enough for your |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
431 |
instance to connect to postgresql with a kerberos ticket. |
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
432 |
|
369b8aff535b
[doc/book] add sections to the FAQ, try to reorder stuff
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5157
diff
changeset
|
433 |