-
Notifications
You must be signed in to change notification settings - Fork 4
/
TODO
115 lines (89 loc) · 4.35 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
TODO
* bi_rights in bi. Dangerous, as it is not always clear we update bi when
we change wiki (for example when displaying subwikiboxes)
* nobody vs. NoSuchUser. The current behavior (never raise NoSuchUser
when we do a get_user_by_name is misleading when we want to take
care of nobody explicitly, and makes it easy to forget that the
function might have failed.
- Wiki (serious??): it is possible to create a page toto and toto/titi
toto may be a directory or a page! That's probably a problem?
(in Eliom that's not possible)
- Log the connection of users!
- replace Actions by redirections to avoid the problem of reposting POST data
(how to give informations to fallbacks?)
- IMPORTANT WARNING: the cache may cause inconsistencies of data
if several processes are modifying the database
- Clean the cache every 6 seconds?
- uniformize labels (put labels everywhere, and always the same name for the
same type)
- Give up with ocamlduce? For now, no.
- Take care of exception (database ...) more carefully and write error messages
- internationalisation
- warning: if we load Wiki_site several times in the same site, it will fail.
Is it a problem? Can we write a better error message?
How to make sure that:
- user information is taken only once, for example role in the wiki,
in the forum and only if needed (lazy?)? And even if it is after an action.
- all widgets have a ?classe parameter?
- all database errors are taken into account?
Wrap all db result in a kind of exception monad?
Wiki:
+ allow to register some kind of redirection (like wikipedia)
(basically the same, but with something that shows that it is a redirection)
- Revoir le changement des droits. Quels droits ? Qui peut les changer ?
Faut-il sauver les droits pour chaque version ???
- Hierarchical menu box (as in Eliom_tools)
- not possible to make all kinds of links in menus for now
(like <<nonattachedlink>> or <<link>>)
- There is an experimental non-attached service that displays wikipages
as if it were the usual (suffix) service. But editing wikiboxes does not
work inside this page!!!!!!!!!!!
To fix this, we probably need a new feature in Eliom:
"non-attached parameters"???
- Revoir la partie dynamique de la wikisyntaxe <<cond>> etc ...
- Is it possible to cache __after__ having decoded the wikisyntax?
(pb: some parts are dynamic and depends on the user or the request)
- Add a detailed wikisyntax help (with all extensions).
May be as a static wikicreole file, that would be loaded dynamically?
* Users:
- Impossible to give rights to users who do not exist for now (if using
external authentication, the user is created the first time she logs in ...)
May be create the user automatically if she exists on the system when we
we to give rights.
- PAM or LDAP: not really clean
implement LDAP.
- Implement PAM as DBM: no need for threads
( or Lwt_unix jobs )
User widgets:
- clean everything
- Use a class model closer to wiki? (and remove Widget.ml?)
- Probably define connection/deconnection actions here and not in
session_manager? (cf wiki_widgets).
- account creation: it is recommended to ask for an email
(and create an account) only when necessary, for example if the users
want to perform an action that is not possible without beeing connected.
Avoid a large registration form to fill before beeing able to do anything ...
Problems due to Postgresql:
- Errors are just strings => only one exception
- very difficult to abstract types (like Users.group)
because the db returns int32
Wiki extensions:
- add_a_content_extension a_link_extension add_block_extension ...
complex and not completely satisfactory. For example a_link_extension returns
(string * XML Lwt.t) instead of (string * XML) Lwt.t
- I don't know how to put wikisyntax inside inline extensions!
(as xml_of_wiki returns block!)
For now it looks like a hack.
(for ex to use wikisyntax in <<logoutlink>> or <<nonattachedlink>>
or <<link>> or <<menu>>)
Ocsimore_lib:
- De quoi on se sert ?
- interface
Ocamlduce:
- I am worried about the efficiency of sequence concatenation in ocamlduce
for example in the creole parser ... They seem to be pairs so it must be ok,
but ... (pairs of what?)
For example in creole_parser.mly there is several times:
{{ map {: s :} with i -> i }}. Is it ok?
Creole:
- How to write a <<span>> extension? (inline)