Showing
15 changed files
with
538 additions
and
77 deletions
1 | +2013-11-26 Georg Hopp georg@steffers.org | ||
2 | + * M assets/js/application.js: | ||
3 | + * M assets/js/session.js: | ||
4 | + update user informations when session timeouts | ||
5 | + * M src/http/parser/p_post_vars.c: | ||
6 | + fix urldecode of post vars. I can't urldecode the whole | ||
7 | + body and then start splitting it into values because the | ||
8 | + urldecode can add reserved characters. I have to urldecode | ||
9 | + each value by it's own. TODO: check if the keys have to be | ||
10 | + urldecoded too. | ||
11 | + * M include/utils/http.h: | ||
12 | + * M src/http/parser/p_post_vars.c: | ||
13 | + * M src/utils/http.c: | ||
14 | + urldecode post values | ||
15 | + * M src/taskrambler.c: | ||
16 | + more valgrind indicated fixes | ||
17 | + | ||
18 | +2013-11-25 Georg Hopp georg@steffers.org | ||
19 | + * M src/http/worker/get_asset.c: | ||
20 | + reduce expire for assets to 12 hours...currently I expect | ||
21 | + changes even more often. At the end this is another condidate | ||
22 | + for the configuration file. | ||
23 | + * M src/application/controller/signup/create.c: | ||
24 | + * M src/application/controller/user/create.c: | ||
25 | + * M src/application/controller/user/update.c: | ||
26 | + * M src/application/create_user.c: | ||
27 | + * M src/application/login.c: | ||
28 | + * M src/application/update_password.c: | ||
29 | + * M src/application/update_user.c: | ||
30 | + * M src/config/config.c: | ||
31 | + * M src/config/value.c: | ||
32 | + fixed various memory management issues detected with valgrind | ||
33 | + | ||
34 | +2013-11-24 Georg Hopp georg@steffers.org | ||
35 | + * D assets/js/session.orig.js: | ||
36 | + remove obsolete file | ||
37 | + * M Makefile.am: | ||
38 | + * M assets/html/_menu.html: | ||
39 | + * A assets/html/_myaccount.html: | ||
40 | + * M assets/html/layout.html: | ||
41 | + * M assets/js/application.js: | ||
42 | + * M assets/js/init.js: | ||
43 | + * M assets/js/menu.js: | ||
44 | + * M assets/style/common.css: | ||
45 | + * M assets/style/taskrambler.css: | ||
46 | + * M include/application/application.h: | ||
47 | + * M src/application/Makefile.am: | ||
48 | + * A src/application/controller/_get_credential_from_args.c: | ||
49 | + * A src/application/controller/_get_user_from_args.c: | ||
50 | + * M src/application/controller/_process_user_create_args.c: | ||
51 | + * A src/application/controller/_update_user_from_args.c: | ||
52 | + * A src/application/controller/user/update.c: | ||
53 | + * A src/application/update_user.c: | ||
54 | + * M src/http/worker/process.c: | ||
55 | + * M src/router/route.c: | ||
56 | + basic user update functionality | ||
57 | + * M Makefile.am: | ||
58 | + add missing javascript files and optimize symlink creation | ||
59 | + * M src/storage/storage.c: | ||
60 | + create database files world read-/writable | ||
61 | + * M Makefile.am: | ||
62 | + install working directories as world read-/writeable and | ||
63 | + symlink layout instead of installing the files. | ||
64 | + | ||
65 | +2013-11-11 Georg Hopp georg@steffers.org | ||
66 | + * M assets/html/layout.html: | ||
67 | + * A assets/js/application.js: | ||
68 | + * M assets/js/init.js: | ||
69 | + * A assets/js/menu.js: | ||
70 | + * M assets/js/session.js: | ||
71 | + * A assets/js/session.orig.js: | ||
72 | + * A assets/js/user.js: | ||
73 | + some work on the javascript... | ||
74 | + still I think it's not very good, but better than before. | ||
75 | + | ||
76 | +2013-11-10 Georg Hopp georg@steffers.org | ||
77 | + * M Makefile.am: | ||
78 | + * M assets/html/layout.html: | ||
79 | + * A assets/js/jquery.ui.touch-punch.min.js: | ||
80 | + add jQuery ui touch-punch for draggable support on | ||
81 | + mobile devices. Thanks to Dave Furfero. | ||
82 | + * M assets/js/session.js: | ||
83 | + * M include/user.h: | ||
84 | + * M src/application/controller/_process_user_create_args.c: | ||
85 | + * M src/application/controller/currentuser/read.c: | ||
86 | + * M src/application/login.c: | ||
87 | + * M src/user/user.c: | ||
88 | + add username to user class. This will contain the common | ||
89 | + name (cn) of an ldap authenticated user and the email | ||
90 | + address of an otherwise authenticated user. This is done | ||
91 | + to be able to have a good way to store an application user | ||
92 | + for ldap authenticated users. | ||
93 | + * M include/application/application.h: | ||
94 | + * M src/application/application.c: | ||
95 | + * M src/taskrambler.c: | ||
96 | + use the new authentication container | ||
97 | + * M include/auth/auth.h: | ||
98 | + * M src/auth/Makefile.am: | ||
99 | + * A src/auth/auth.c: | ||
100 | + * A src/auth/create.c: | ||
101 | + created an authentication container. This could initialize | ||
102 | + the needed authentications and then be injected as a single | ||
103 | + object into the application class | ||
104 | + * M include/class/interface/class.h: | ||
105 | + * M src/class/interface/i_class.c: | ||
106 | + add function to create an object with a va_list pointer | ||
107 | + instead of its argument list. Obviously the va_list must | ||
108 | + contain the correct values for the class constructor. | ||
109 | + | ||
110 | +2013-11-09 Georg Hopp georg@steffers.org | ||
111 | + * M assets/html/_author.html: | ||
112 | + * M assets/html/_login.html: | ||
113 | + * M assets/html/_signup.html: | ||
114 | + * M assets/html/layout.html: | ||
115 | + * M assets/js/init.js: | ||
116 | + * M assets/style/common.css: | ||
117 | + * M assets/style/taskrambler.css: | ||
118 | + make signup and login popup visually more fitting to the | ||
119 | + rest of the pages. | ||
120 | + | ||
121 | +2013-11-08 Georg Hopp georg@steffers.org | ||
122 | + * M assets/html/layout.html: | ||
123 | + * M assets/js/init.js: | ||
124 | + * M assets/style/common.css: | ||
125 | + make login and signup div draggable and cast shadows | ||
126 | + * M Makefile.am: | ||
127 | + install jqeury ui files | ||
128 | + * A assets/js/jquery-ui-1.10.3.min.js: | ||
129 | + * A assets/js/jquery-ui.js: | ||
130 | + * A assets/style/images/animated-overlay.gif: | ||
131 | + * A assets/style/images/ui-bg_flat_0_aaaaaa_40x100.png: | ||
132 | + * A assets/style/images/ui-bg_flat_75_ffffff_40x100.png: | ||
133 | + * A assets/style/images/ui-bg_glass_55_fbf9ee_1x400.png: | ||
134 | + * A assets/style/images/ui-bg_glass_65_ffffff_1x400.png: | ||
135 | + * A assets/style/images/ui-bg_glass_75_dadada_1x400.png: | ||
136 | + * A assets/style/images/ui-bg_glass_75_e6e6e6_1x400.png: | ||
137 | + * A assets/style/images/ui-bg_glass_95_fef1ec_1x400.png: | ||
138 | + * A assets/style/images/ui-bg_highlight-soft_75_cccccc_1x100.png: | ||
139 | + * A assets/style/images/ui-icons_222222_256x240.png: | ||
140 | + * A assets/style/images/ui-icons_2e83ff_256x240.png: | ||
141 | + * A assets/style/images/ui-icons_454545_256x240.png: | ||
142 | + * A assets/style/images/ui-icons_888888_256x240.png: | ||
143 | + * A assets/style/images/ui-icons_cd0a0a_256x240.png: | ||
144 | + * A assets/style/jquery-ui-1.10.3.min.css: | ||
145 | + * A assets/style/jquery-ui.css: | ||
146 | + add jquery ui for nice ui effects | ||
147 | + * A docs/ups-cookie_disclosure.pdf: | ||
148 | + * M TODO: | ||
149 | + update TODO | ||
150 | + | ||
151 | +2013-11-07 Georg Hopp georg@steffers.org | ||
152 | + * M assets/html/_footer.html: | ||
153 | + * M assets/js/init.js: | ||
154 | + * M include/application/application.h: | ||
155 | + * M src/application/Makefile.am: | ||
156 | + * M src/application/application.c: | ||
157 | + * A src/application/controller/loc/read.c: | ||
158 | + display lines of code in page footer | ||
159 | + * M configure.ac: | ||
160 | + add lines of code to config.h ... | ||
161 | + make me able to display these in the application | ||
162 | + * M Makefile.am: | ||
163 | + add make target to measure lines of code | ||
164 | + * M include/application/application.h: | ||
165 | + * M src/application/Makefile.am: | ||
166 | + * M src/application/create_user.c: | ||
167 | + * D src/application/signup.c: | ||
168 | + remove no longer used application signup method | ||
169 | + * M .gitignore: | ||
170 | + * M Makefile.am: | ||
171 | + create make target for ctags file and ignore the generated | ||
172 | + file with git | ||
173 | + | ||
174 | +2013-11-06 Georg Hopp georg@steffers.org | ||
175 | + * M assets/js/init.js: | ||
176 | + * M include/application/application.h: | ||
177 | + * M src/application/Makefile.am: | ||
178 | + * A src/application/controller/_process_user_create_args.c: | ||
179 | + * A src/application/controller/_validate_email.c: | ||
180 | + * A src/application/controller/_validate_password.c: | ||
181 | + * A src/application/controller/_validate_password_repeat.c: | ||
182 | + * A src/application/controller/signup/create.c: | ||
183 | + * M src/application/controller/user/create.c: | ||
184 | + * A src/application/controller/user/read.c: | ||
185 | + * A src/application/create_user.c: | ||
186 | + * A src/application/get_user.c: | ||
187 | + * A src/application/update_password.c: | ||
188 | + * M src/router/route.c: | ||
189 | + generalise user handling more so that not only signup | ||
190 | + and login is possible but also password or userdata changes | ||
191 | + and further administration. | ||
192 | + * M include/storage/storage.h: | ||
193 | + * M src/storage/Makefile.am: | ||
194 | + * A src/storage/delete.c: | ||
195 | + add storage delete functionality | ||
196 | + * M src/testers/uuid.c: | ||
197 | + test code for zeroUuid on stack | ||
198 | + * M include/user.h: | ||
199 | + remove unnecessary stuff in user declaration | ||
200 | + * M include/permission.h: | ||
201 | + * M include/role.h: | ||
202 | + some more stuff in rbac files... | ||
203 | + still nothing really useful, but finally I have more or | ||
204 | + less an idea how to implement it | ||
205 | + * M include/uuid.h: | ||
206 | + * M src/uuid/uuid.c: | ||
207 | + add zero uuid instance | ||
208 | + * M include/class/class.h: | ||
209 | + add makros to create an instance of a class on the | ||
210 | + stack (ment for global constant instances that never change, | ||
211 | + eg. defined NULL values) | ||
212 | + | ||
213 | +2013-11-05 Georg Hopp georg@steffers.org | ||
214 | + * M include/application/application.h: | ||
215 | + * M include/auth/interface/auth.h: | ||
216 | + * A include/interface/indexable.h: | ||
217 | + * A include/interface/serializable.h: | ||
218 | + * M src/Makefile.am: | ||
219 | + * M src/application/application.c: | ||
220 | + * M src/application/login.c: | ||
221 | + * M src/application/session_cleanup.c: | ||
222 | + * M src/application/signup.c: | ||
223 | + * M src/auth/interface/auth.c: | ||
224 | + * M src/auth/ldap.c: | ||
225 | + * M src/auth/storage/storage.c: | ||
226 | + * A src/interface/indexable.c: | ||
227 | + * A src/interface/serializable.c: | ||
228 | + * M src/taskrambler.c: | ||
229 | + * M src/user/Makefile.am: | ||
230 | + * D src/user/load.c: | ||
231 | + * D src/user/save.c: | ||
232 | + * M src/user/user.c: | ||
233 | + remove specialized load and save from user, add serializable | ||
234 | + and indexable interface and make user utilize both and store | ||
235 | + a user and its credentials keyed by its uuid | ||
236 | + | ||
237 | +2013-10-27 Georg Hopp georg@steffers.org | ||
238 | + * M src/uuid/version3.c: | ||
239 | + * M src/uuid/version5.c: | ||
240 | + delete temporary uuid data structures. | ||
241 | + * M src/server/server.c: | ||
242 | + NSA makes me paranoid ... | ||
243 | + try to get best supported cipher of the used browser and | ||
244 | + don't use RC4 at all | ||
245 | + | ||
246 | +2013-10-25 Georg Hopp georg@steffers.org | ||
247 | + * M src/testers/uuid.c: | ||
248 | + fix and test uuidCompare | ||
249 | + * M configure.ac: | ||
250 | + * M include/session.h | ||
251 | + * M include/user.h | ||
252 | + * M include/uuid.h | ||
253 | + * M src/Makefile.am | ||
254 | + * M src/router/route.c | ||
255 | + * M src/testers/uuid.c | ||
256 | + * M src/user/save.c | ||
257 | + * A src/uuid/Makefile.am: | ||
258 | + * A src/uuid/_format3or5.c: | ||
259 | + * A src/uuid/compare.c: | ||
260 | + * A src/uuid/parse.c: | ||
261 | + * A src/uuid/unparse.c: | ||
262 | + * A src/uuid/uuid.c: | ||
263 | + * A src/uuid/version1.c: | ||
264 | + * A src/uuid/version3.c: | ||
265 | + * A src/uuid/version5.c: | ||
266 | + add code to generate uuid version 3 and 5. | ||
267 | + With this we can generate the same uuid for a given name | ||
268 | + all the time | ||
269 | + * A include/permission.h: | ||
270 | + * D include/rbac/permission.h: | ||
271 | + * D include/rbac/role.h: | ||
272 | + * A include/role.h: | ||
273 | + some more work on rbac | ||
274 | + | ||
275 | +2013-10-23 Georg Hopp georg@steffers.org | ||
276 | + * M assets/js/init.js: | ||
277 | + remove old deactivated json request for logout | ||
278 | + * A include/uuid.h: | ||
279 | + start of an own uuid class. This will simply wrap existing | ||
280 | + code for random uuids and add code to generate uuid for | ||
281 | + namespace unique items. | ||
282 | + * M assets/js/init.js: | ||
283 | + * M configure.ac: | ||
284 | + * M include/application/adapter/http.h: | ||
285 | + * M include/http/request.h: | ||
286 | + * A include/router.h: | ||
287 | + * M src/Makefile.am: | ||
288 | + * M src/application/Makefile.am: | ||
289 | + * M src/application/adapter/http/http.c: | ||
290 | + * M src/application/adapter/http/update.c: | ||
291 | + * A src/application/controller/authenticate/create.c: | ||
292 | + * A src/application/controller/authenticate/delete.c: | ||
293 | + * A src/application/controller/currentuser/read.c: | ||
294 | + * A src/application/controller/randval/read.c: | ||
295 | + * A src/application/controller/sessinfo/read.c: | ||
296 | + * A src/application/controller/user/create.c: | ||
297 | + * A src/application/controller/version/read.c: | ||
298 | + * M src/http/Makefile.am: | ||
299 | + * M src/http/request.c: | ||
300 | + * A src/http/request/get_method_id.c: | ||
301 | + * D src/http/request/has_valid_method.c: | ||
302 | + * A src/router/Makefile.am: | ||
303 | + * A src/router/route.c: | ||
304 | + * A src/router/router.c: | ||
305 | + * M src/taskrambler.c: | ||
306 | + added a generic router. This is a REST router that maps | ||
307 | + urls to specific functions which it tries to find via dlsym. | ||
308 | + That way the only thing to do to get a new REST | ||
309 | + functionality is to add a function that fits into the | ||
310 | + namesheme. All existing functionality is moved accordingly | ||
311 | + * M src/server/server.c: | ||
312 | + remove not used variable | ||
313 | + * M src/server/run.c: | ||
314 | + change indenting | ||
315 | + | ||
316 | +2013-10-22 Georg Hopp georg@steffers.org | ||
317 | + * M include/rbac/role.h: | ||
318 | + small change to rbac role ... | ||
319 | + this still is not really even started | ||
320 | + * M TODO: | ||
321 | + add note and thoughts about a distributed storage system | ||
322 | + | ||
323 | +2013-10-16 Georg Hopp georg@steffers.org | ||
324 | + * M src/server/server.c: | ||
325 | + if I have a socketNonblock method I should better use it. :D | ||
326 | + * D include/cbufpool.h: | ||
327 | + * D src/binarytree.c: | ||
328 | + * D src/cbufpool.c: | ||
329 | + * D src/configtest.c: | ||
330 | + * D src/hash.c: | ||
331 | + * D src/mmapfiletest.c: | ||
332 | + * D src/mmapfiletest2.c: | ||
333 | + * D src/rbtree.c: | ||
334 | + * D src/rbtree2.c: | ||
335 | + * D src/usertest.c: | ||
336 | + * D src/uuid.c: | ||
337 | + remove the moved files... :D | ||
338 | + * A src/testers/binarytree.c: | ||
339 | + * A src/testers/configtest.c: | ||
340 | + * A src/testers/hash.c: | ||
341 | + * A src/testers/mmapfiletest.c: | ||
342 | + * A src/testers/mmapfiletest2.c: | ||
343 | + * A src/testers/rbtree.c: | ||
344 | + * A src/testers/rbtree2.c: | ||
345 | + * A src/testers/usertest.c: | ||
346 | + * A src/testers/uuid.c: | ||
347 | + move test programs in separate folder | ||
348 | + | ||
349 | +2013-10-13 Georg Hopp georg@steffers.org | ||
350 | + * M include/http/response.h: | ||
351 | + * M src/http/response/asset.c: | ||
352 | + * M src/http/worker/get_asset.c: | ||
353 | + add expires header for static assets (right now 1 week | ||
354 | + in the future) | ||
355 | + | ||
1 | 2013-10-09 Georg Hopp georg@steffers.org | 356 | 2013-10-09 Georg Hopp georg@steffers.org |
2 | * A config/taskrambler.conf.in: | 357 | * A config/taskrambler.conf.in: |
3 | add forgotten taskramble.conf.in | 358 | add forgotten taskramble.conf.in |
1 | ACLOCAL_AMFLAGS = -I m4 | 1 | ACLOCAL_AMFLAGS = -I m4 |
2 | 2 | ||
3 | -#bin_PROGRAMS = create_token | ||
4 | -#create_token_SOURCES = base64.c createToken.c | ||
5 | -#create_token_LDADD = src/libtoken.la $(LIBOBJS) | ||
6 | -#create_token_CFLAGS = -Wall -I include | ||
7 | - | ||
8 | EXTRA_DIST = include certs assets | 3 | EXTRA_DIST = include certs assets |
9 | 4 | ||
10 | myetc_DATA = config/mime.types \ | 5 | myetc_DATA = config/mime.types \ |
@@ -43,6 +38,7 @@ nobase_trdata_DATA = assets/html/example.html \ | @@ -43,6 +38,7 @@ nobase_trdata_DATA = assets/html/example.html \ | ||
43 | assets/image/rambler-border-tr.jpg \ | 38 | assets/image/rambler-border-tr.jpg \ |
44 | assets/image/rambler-logo-small.jpg \ | 39 | assets/image/rambler-logo-small.jpg \ |
45 | assets/image/rambler-logo2-small.jpg \ | 40 | assets/image/rambler-logo2-small.jpg \ |
41 | + assets/image/gplv3-127x51.png \ | ||
46 | assets/js/application.js \ | 42 | assets/js/application.js \ |
47 | assets/js/init.js \ | 43 | assets/js/init.js \ |
48 | assets/js/jquery.js \ | 44 | assets/js/jquery.js \ |
1 | +2013-11-28 | ||
2 | + | ||
3 | +I am about to make a new release 0.1.8 of this. It took a long time since | ||
4 | +the last release. Originally this was ment to implement some kind of RBAC | ||
5 | +but now it improves user management to have resources (users) where | ||
6 | +RBAC could be used on. | ||
7 | + | ||
8 | +So, in this version you got improved user management and an improved UI. | ||
9 | + | ||
10 | +I have new hardware and with this I got really impressive result from | ||
11 | +ApacheBench. I can handle the simple /version/ request about 40000 times | ||
12 | +a second on a new Core I5. This is more than double of the result on my | ||
13 | +old Core2Duo, and we are still single threaded. | ||
14 | + |
README
deleted
100644 → 0
1 | -$Id$ | ||
2 | - | ||
3 | -Actually this is some kind of server toolkit, also containing | ||
4 | -a class and interface toolkit for C. | ||
5 | -I use a gcc preprocessor extension to use empty variadoc | ||
6 | -argument lists so actually this is gcc only code. | ||
7 | - | ||
8 | -This should become a server that has a dynamic time-sliced part | ||
9 | -that updates an internal state all the time. | ||
10 | -Clients might connect as they want and get some information | ||
11 | -from the server. | ||
12 | -The server should scale in two manners. | ||
13 | -New instances should be able to handle connection and get | ||
14 | -updates about the computed state. | ||
15 | -Additionally new instances might hold their own state which | ||
16 | -all other instances might update. | ||
17 | - | ||
18 | -In a first run the state might be something simple as a | ||
19 | -matrix where every field hold a unique value. e.g. | ||
20 | - | ||
21 | - ------------- | ||
22 | - |1|4|a|j|k|9| | ||
23 | - ------------- | ||
24 | - |1|4|a|j|k|9| | ||
25 | - ------------- | ||
26 | - |1|4|a|j|k|9| | ||
27 | - ------------- | ||
28 | - |1|4|a|j|k|9| | ||
29 | - ------------- | ||
30 | - | ||
31 | -suggestion for timing: sigsuspend |
@@ -8,24 +8,29 @@ need any third party webserver to work. | @@ -8,24 +8,29 @@ need any third party webserver to work. | ||
8 | The backend is written completely in C while the frontend will be | 8 | The backend is written completely in C while the frontend will be |
9 | JavaScript, CSS and HTML. | 9 | JavaScript, CSS and HTML. |
10 | 10 | ||
11 | -When this is finished users will be able to connect to the server | 11 | +Users will be able to connect to the server |
12 | via their browsers, manage their tasks there and specify policies | 12 | via their browsers, manage their tasks there and specify policies |
13 | who else might see their tasks, track the time spend on a specific | 13 | who else might see their tasks, track the time spend on a specific |
14 | task, attach tasks to projects, getting reports about their work done, | 14 | task, attach tasks to projects, getting reports about their work done, |
15 | etc. | 15 | etc. |
16 | 16 | ||
17 | -Right now for the taskmanagement stuff I think of a similar approach | 17 | +For the taskmanagement stuff I think of a similar approach |
18 | as [taskwarrior](http://taskwarrior.org/projects/show/taskwarrior) is going. | 18 | as [taskwarrior](http://taskwarrior.org/projects/show/taskwarrior) is going. |
19 | This is an amazing tool and I really enjoy using it. | 19 | This is an amazing tool and I really enjoy using it. |
20 | I started this as an experiment to implement an HTTP server, then I learned | 20 | I started this as an experiment to implement an HTTP server, then I learned |
21 | about taskwarrior and thought, wouldn't it be great to have this | 21 | about taskwarrior and thought, wouldn't it be great to have this |
22 | functionality in a multiuser environment. | 22 | functionality in a multiuser environment. |
23 | 23 | ||
24 | -Right now, it is a single process HTTP server implementation that performs | ||
25 | -not to bad. | 24 | +Right now, this is a single process HTTP server implementation that performs |
25 | +not to bad. And some application logic for user management. Every connection | ||
26 | +is associated with a session and user can register, login and modify their | ||
27 | +user data. | ||
26 | 28 | ||
27 | -In the next version user will be able to create tasks and share them at | ||
28 | -least on a basic level. | 29 | +In the nearer future an role based access control system will be added. |
30 | +Users will be able to add tasts, (for now just a text and maybe a date or | ||
31 | +something) and they should be able to control who else might see a task. | ||
32 | + | ||
33 | +If this works reliable I will announce version 0.2. | ||
29 | 34 | ||
30 | The main development page can be found | 35 | The main development page can be found |
31 | [here](http://redmine.weird-web-workers.org/projects/taskrambler). | 36 | [here](http://redmine.weird-web-workers.org/projects/taskrambler). |
@@ -34,7 +39,7 @@ INSTALLATION | @@ -34,7 +39,7 @@ INSTALLATION | ||
34 | ------------ | 39 | ------------ |
35 | 40 | ||
36 | This can be installed via the usual configure, make, make install | 41 | This can be installed via the usual configure, make, make install |
37 | -cycle. | 42 | +cycle. For gentoo users am ebuild is added under docs. |
38 | 43 | ||
39 | ### API DOC | 44 | ### API DOC |
40 | 45 | ||
@@ -47,52 +52,66 @@ neccessary. A patch is included under docs. | @@ -47,52 +52,66 @@ neccessary. A patch is included under docs. | ||
47 | 52 | ||
48 | gcov and lcov are needed to build these. | 53 | gcov and lcov are needed to build these. |
49 | 54 | ||
50 | -*make coverage-html* creates the converage reports. | 55 | +The source has to be configured with *configure --enable-gcov*. |
56 | +*make coverage-html* creates the converage reports then. | ||
51 | 57 | ||
52 | -### PLAY AROUND | ||
53 | 58 | ||
54 | -Any asset under assets could be exchanged. It should be possible to | ||
55 | -change the main.html there and put additionally html files and images | ||
56 | -under assets and everything should be deliverd. | 59 | +USAGE |
60 | +----- | ||
57 | 61 | ||
58 | -Anyway, there are a few rules. | 62 | +### RUNNING |
59 | 63 | ||
60 | -* html assets will always be loaded from assets/html. | ||
61 | -* all other assets are loaded directly from the assets directory. | 64 | +Simply start the installed executable. |
65 | +This will usually be found under */usr/local/bin/taskrambler* after | ||
66 | +successfull build and installation. | ||
62 | 67 | ||
63 | -So, right now this can be used as a HTTP server for static content | ||
64 | -and without virtual hosts support. | 68 | +When installed with the ebuild the executable will be */usr/bin/taskrambler*. |
65 | 69 | ||
70 | +After the executable is stared you should be able to see the staskrambler | ||
71 | +user interface with your browser by openening *http://localhost:11212/*. | ||
66 | 72 | ||
67 | -USAGE | ||
68 | ------ | 73 | +In the upper right corner you can see session and user related information. |
69 | 74 | ||
70 | -### RUNNING | 75 | +### CONFIGURATION |
71 | 76 | ||
72 | -Simply start the executable *src/taskrambler* after successfull build. | ||
73 | -Currently this will stay in the foreground and does logging via syslog. | 77 | +A first configuration file is installed in your etc folder under |
78 | +*taskrambler/taskrambler.conf*. The syntax of that file is described in it. | ||
74 | 79 | ||
75 | -### PORT | 80 | +Currently there are only 5 settings that can be configured. |
76 | 81 | ||
77 | -The server will listen on port 11212 for HTTP requests and on port 11213 | ||
78 | -for SSL requerst. | 82 | +* ldap_base: The base for the ldap Distinguished Name (DN) for user lookups. |
83 | +* ldap_host: The ldap server to connect to. | ||
84 | +* assets_dir: Defines where taskrambler will find its assets. | ||
85 | +* runtime_dir: The place where the user and credential database files are | ||
86 | + stored | ||
87 | +* port: The port taskrambler should run on. | ||
79 | 88 | ||
80 | -You can use telnet or simply start a browser and connect on localhost:11212. | 89 | +### PORT |
90 | + | ||
91 | +Taskrambler will always connect to the port specified in the config for | ||
92 | +HTTP connections. | ||
81 | 93 | ||
82 | -This should show up a very simplistic page. | ||
83 | -It should eneable you to start a session, get values from the server | ||
84 | -or login. | 94 | +A second socket will be opened on port+1 for SSL connections. |
85 | 95 | ||
86 | ### LOGIN | 96 | ### LOGIN |
87 | 97 | ||
88 | -You can't use the login without changing the code. It's implemented using | ||
89 | -ldap and currently not configurable. You have to change the configuration | ||
90 | -in the code and compile again. | 98 | +Every user that can be authenticated either via LDAP or via taskramblers |
99 | +own database can login via the login link in the menu. | ||
100 | + | ||
101 | +### SIGNUP | ||
102 | + | ||
103 | +It is possible to create a user account by clicking the signup link. | ||
104 | +After a successfull signup you will be automatically logged in. | ||
105 | + | ||
106 | +### CHANGE USER DATA ### | ||
107 | + | ||
108 | +After a successfull login you have the ability to see your current account | ||
109 | +informations and modify them via "my account" | ||
91 | 110 | ||
92 | TESTING | 111 | TESTING |
93 | ------- | 112 | ------- |
94 | 113 | ||
95 | -This comes with an incomplete unit test suite. | 114 | +This comes with the start of a unit test suite. |
96 | You can use *make test* to build and run the existent tests. | 115 | You can use *make test* to build and run the existent tests. |
97 | 116 | ||
98 | ### REQUIREMENTS | 117 | ### REQUIREMENTS |
@@ -105,10 +124,5 @@ CONTRIBUTION | @@ -105,10 +124,5 @@ CONTRIBUTION | ||
105 | I would really like to see some people possibly interested in this stuff. | 124 | I would really like to see some people possibly interested in this stuff. |
106 | I think it contains some really interesting ideas. | 125 | I think it contains some really interesting ideas. |
107 | 126 | ||
108 | -Well, sadly i have to say that this is a spare time project. Documentation | ||
109 | -is sparse and Tests too. | ||
110 | - | ||
111 | If you like to contribute anyway, make a fork, do your changes and generate | 127 | If you like to contribute anyway, make a fork, do your changes and generate |
112 | -a pull request. | ||
113 | - | ||
114 | -I will look at these as soon as possible. | 128 | +a pull request. Or simply contact me on georg@steffers.org. |
@@ -23,6 +23,85 @@ | @@ -23,6 +23,85 @@ | ||
23 | <a href="/coverage/@PACKAGE_VERSION@/index.html" target="_blank">here</a>. | 23 | <a href="/coverage/@PACKAGE_VERSION@/index.html" target="_blank">here</a>. |
24 | </p> | 24 | </p> |
25 | 25 | ||
26 | +<a name="latest"><h2>Version 0.1.8</h2></a> | ||
27 | + | ||
28 | +<p>This one took longer than expected and still does not contain what it | ||
29 | +initially was meant to.</p> | ||
30 | + | ||
31 | +<p>My intention was to have at least some basic first RBAC in here, but | ||
32 | +after some thinking about it I realized that it is difficult and meaningless | ||
33 | +to create something as long as there is nothing to manage.</p> | ||
34 | + | ||
35 | +<p>Now a lot of work regarding the user management is done. Especially | ||
36 | +there is the possibility to create user, modify them and in theory remove | ||
37 | +them again. A lot of changes toop place and its best to categorize them.</p> | ||
38 | + | ||
39 | +<h3>UI/client</h3> | ||
40 | + | ||
41 | +<ul> | ||
42 | + <li>Added jQueryUi and related libs</li> | ||
43 | + <li>Visually improve all popups (signup, login, my account(NEW))</li> | ||
44 | + <li>Reorganize the javascript code.</li> | ||
45 | + <li>Display the lines of C code at the bottom of each page.</li> | ||
46 | + <li>New menu entry and popup "my account". Users can see and modify | ||
47 | + their data there.</li> | ||
48 | +</ul> | ||
49 | + | ||
50 | +<h3>build system</h3> | ||
51 | + | ||
52 | +<ul> | ||
53 | + <li>Added make target to create a ctags file for the project.</li> | ||
54 | + <li>Added code to get the current number of lines of C code.</li> | ||
55 | + <li>Install database files and ddirectories as world writable. | ||
56 | + This is done because I notices that a fresh installation segfaulted | ||
57 | + because it can't open the database files. (These segfaults should be | ||
58 | + fixed also.) | ||
59 | + <li>The layout symlinks are no longer copied. Instead symlinks are | ||
60 | + created in the installation dir.</li> | ||
61 | +</ul> | ||
62 | + | ||
63 | +<h3>backend/server</h3> | ||
64 | + | ||
65 | +<ul> | ||
66 | + <li>Added a little code and some comments about RBAC.</li> | ||
67 | + <li>Created a Uuid class capable of handling Uuid Version1/3/5.</li> | ||
68 | + <li>Added a serializable and indexable interface</li> | ||
69 | + <li>Users now have a username field which is filled with the email | ||
70 | + address if the user registered directly in our application and with | ||
71 | + the CN if the user is authenticated via LDAP.</li> | ||
72 | + <li>Now LDAP authenticated users get an entry in our database too. | ||
73 | + This gives them the possibility to change some information.</li> | ||
74 | + <li>Users no longer can store themself. They implement the | ||
75 | + serializable and indexable interfaces and an external function uses | ||
76 | + these to finally store the user.</li> | ||
77 | + <li>Users are now able to change their firstname, surename and | ||
78 | + email address after the have been logged in/authenticated.</li> | ||
79 | + <li>Added a generic router that converts request URIs into identifier | ||
80 | + for dlsym and then call this function.</li> | ||
81 | + <li>All post data is now urldecoded.</li> | ||
82 | + <li>All Authentication methods are not organized in an authentication | ||
83 | + container. This will try every registered authenticator to authenticate | ||
84 | + the user.</li> | ||
85 | + <li>The class system now allows stack stored const instances.<li> | ||
86 | + <li>Instances can now be created via a va_list additionally to | ||
87 | + directly given the function arguments.</li> | ||
88 | + <li>All static assets are not delivered with an expire header, it | ||
89 | + is currently set to 12 hours.</li> | ||
90 | + <li>No RC4 is accepted for SSL connectiones...hello NSA.</li> | ||
91 | + <li>The storage layer not allows the deletion of entries.</li> | ||
92 | +</ul> | ||
93 | + | ||
94 | + | ||
95 | +<h2>Version 0.1.7</h2> | ||
96 | + | ||
97 | +<ul> | ||
98 | + <li>some reusable parts are now build as shared libraries</li> | ||
99 | + <li>make install does what it should</li> | ||
100 | + <li>generalize json responses</li> | ||
101 | + <li>add support for a first basic configuration file</li> | ||
102 | + <li>huge amount of changes in the build system</li> | ||
103 | +</ul> | ||
104 | + | ||
26 | <h2>Version 0.1.6</h2> | 105 | <h2>Version 0.1.6</h2> |
27 | 106 | ||
28 | This is a bugfix release. No obvious visible changes at the UI. | 107 | This is a bugfix release. No obvious visible changes at the UI. |
@@ -24,6 +24,7 @@ Currently the following tarballs are available: | @@ -24,6 +24,7 @@ Currently the following tarballs are available: | ||
24 | <li><a href="http://redmine.weird-web-workers.org/attachments/download/11/taskrambler-0.1.5.tar.gz">taskrambler-0.1.5</a></li> | 24 | <li><a href="http://redmine.weird-web-workers.org/attachments/download/11/taskrambler-0.1.5.tar.gz">taskrambler-0.1.5</a></li> |
25 | <li><a href="http://redmine.weird-web-workers.org/attachments/download/13/taskrambler-v0.1.6.tar.gz">taskrambler-0.1.6</a></li> | 25 | <li><a href="http://redmine.weird-web-workers.org/attachments/download/13/taskrambler-v0.1.6.tar.gz">taskrambler-0.1.6</a></li> |
26 | <li><a href="http://redmine.weird-web-workers.org/attachments/download/15/taskrambler-0.1.7.tar.gz">taskrambler-0.1.7</a></li> | 26 | <li><a href="http://redmine.weird-web-workers.org/attachments/download/15/taskrambler-0.1.7.tar.gz">taskrambler-0.1.7</a></li> |
27 | + <li><a href="http://redmine.weird-web-workers.org/attachments/download/16/taskrambler-0.1.8.tar.gz">taskrambler-0.1.8</a></li> | ||
27 | </ul> | 28 | </ul> |
28 | 29 | ||
29 | <h2>Project page</h2> | 30 | <h2>Project page</h2> |
@@ -18,6 +18,11 @@ | @@ -18,6 +18,11 @@ | ||
18 | 18 | ||
19 | <h2>What is taskrambler</h2> | 19 | <h2>What is taskrambler</h2> |
20 | 20 | ||
21 | +<h3>Latest news/changes.</h3> | ||
22 | + | ||
23 | +You can see the latest news/changes | ||
24 | +<a href="documentation.html#latest">here</a>. | ||
25 | + | ||
21 | <h3>What is it right now.</h3> | 26 | <h3>What is it right now.</h3> |
22 | 27 | ||
23 | <p> | 28 | <p> |
assets/image/gplv3-127x51.png
0 → 100644
3.39 KB
@@ -24,7 +24,9 @@ $(document).ready(function() { | @@ -24,7 +24,9 @@ $(document).ready(function() { | ||
24 | } | 24 | } |
25 | 25 | ||
26 | $("#title").load("/_title.html"); | 26 | $("#title").load("/_title.html"); |
27 | - $("#main").load(asset); | 27 | + $("#main").load(asset, function() { |
28 | + $("#main").append('<img id="gplv3" src="image/gplv3-127x51.png" />') | ||
29 | + }); | ||
28 | menu.init(application); | 30 | menu.init(application); |
29 | 31 | ||
30 | $("#statusline").load("/_statusline.html", function() { | 32 | $("#statusline").load("/_statusline.html", function() { |
@@ -45,6 +45,14 @@ div#login-container { | @@ -45,6 +45,14 @@ div#login-container { | ||
45 | z-index: 20; | 45 | z-index: 20; |
46 | } | 46 | } |
47 | 47 | ||
48 | +#gplv3 { | ||
49 | + opacity: 0.3; | ||
50 | + filter: alpha(opacity=30); | ||
51 | + position: absolute; | ||
52 | + right: 0px; | ||
53 | + bottom: 0px; | ||
54 | +} | ||
55 | + | ||
48 | .hide { | 56 | .hide { |
49 | top: -500px !important; | 57 | top: -500px !important; |
50 | display: none !important; | 58 | display: none !important; |
@@ -302,6 +302,10 @@ div.border .br { | @@ -302,6 +302,10 @@ div.border .br { | ||
302 | color: rgb(255,253,200); | 302 | color: rgb(255,253,200); |
303 | } | 303 | } |
304 | 304 | ||
305 | +#main { | ||
306 | + position: relative; | ||
307 | +} | ||
308 | + | ||
305 | #main a { | 309 | #main a { |
306 | text-decoration: none; | 310 | text-decoration: none; |
307 | font-weight: bold; | 311 | font-weight: bold; |
docs/taskrambler-0.1.8.ebuild
0 → 100644
1 | +# Copyright 1999-2013 Gentoo Foundation | ||
2 | +# Distributed under the terms of the GNU General Public License v2 | ||
3 | +# $Header: $ | ||
4 | + | ||
5 | +EAPI="5" | ||
6 | +SLOT="0" | ||
7 | + | ||
8 | +DESCRIPTION="A HTTP server as a library and start of a task management tool." | ||
9 | +HOMEPAGE="http://taskrambler.weird-web-workers.org/" | ||
10 | +SRC_URI="http://redmine.weird-web-workers.org/attachments/download/16/taskrambler-0.1.8.tar.gz" | ||
11 | + | ||
12 | +LICENSE="GPL-3+" | ||
13 | +KEYWORDS="~amd64 ~x86" |
@@ -101,7 +101,7 @@ main() | @@ -101,7 +101,7 @@ main() | ||
101 | setrlimit(RLIMIT_NOFILE, &limit); | 101 | setrlimit(RLIMIT_NOFILE, &limit); |
102 | 102 | ||
103 | init_signals(); | 103 | init_signals(); |
104 | - daemonize(); | 104 | + //daemonize(); |
105 | 105 | ||
106 | shm = shm_open("/fooshm", O_RDWR|O_CREAT, S_IRWXU); | 106 | shm = shm_open("/fooshm", O_RDWR|O_CREAT, S_IRWXU); |
107 | if (-1 == ftruncate(shm, psize)) { | 107 | if (-1 == ftruncate(shm, psize)) { |
Please
register
or
login
to post a comment