File TODO changed (mode: 100644) (index 9a1643c..73f979d) |
1 |
1 |
== Where I stopped last time == |
== Where I stopped last time == |
2 |
2 |
[ ] ssh key checked is install 0700 and owner root. It must be allowed to |
[ ] ssh key checked is install 0700 and owner root. It must be allowed to |
3 |
3 |
be run by rocketgit user! Spec? Makefile? |
be run by rocketgit user! Spec? Makefile? |
4 |
|
[ ] totp: when trying to validate a token, if the token is wrong, the message |
|
5 |
|
is wrong ("you are not enrolled"). Is is a mess in totp_sc_verify |
|
6 |
|
because the error is set globally. We should pass it in return, |
|
7 |
|
not globally, everywhere is possible. |
|
8 |
|
[ ] We should check if the request was a POST and not a GET! Else, CSRF! |
|
9 |
|
[ ] PagerDuty, Splunk integration. |
|
10 |
|
[ ] Add "Only AGPL and no CLA!" where needed. |
|
11 |
|
[ ] comparison: "2fa for ssh". |
|
12 |
|
[ ] When generating html diff, use a sha1(file_name) to not inject XSS and |
|
13 |
|
for html to look nice. |
|
14 |
|
[ ] git_log_simple returns an array of commits, with a 'vars' section and |
|
15 |
|
a 'files' section. When calling git_log, we also need to pass also the |
|
16 |
|
from/to extracted from 'simple' output. Think about someone pushing changes |
|
17 |
|
betwen 'simple' and 'full'! |
|
18 |
|
[ ] We have some invalid numstat in the logs! |
|
19 |
|
[ ] We have lines_add/del. Why we need also 'changes' field (git.inc.php)?! |
|
20 |
|
[ ] 'git log --patch' for submodules probably is not working right. |
|
21 |
|
[ ] Allow users to change the value of 'diff.context'. |
|
22 |
|
[ ] rg_git_diff2array is called with already mangled file names (\xxx\xxx...) |
|
23 |
|
Check why they are not "correct". |
|
24 |
|
[ ] Document 2fa for http, now that is working. |
|
25 |
|
[ ] Replace all 'who_nice' open coded stuff with rg_user_nice. |
|
26 |
|
[ ] ldap: What should happen when we update plan_id. |
|
27 |
|
What about other fields? |
|
28 |
|
[ ] ldap: If I remember correctly, the password attribute was editable! |
|
29 |
|
[ ] ldap: document what 'Session time' means. |
|
30 |
|
Other fields need an explanation also. |
|
31 |
|
[ ] Pushing by http but using ssh 2fa feature to unlock an IP is working? |
|
32 |
|
Should work? |
|
33 |
|
[ ] Test push by http with an empty user! CRITICAL! |
|
34 |
|
[ ] scratch_codes table: we should have an 'id' column for deletion. |
|
35 |
|
[ ] test: move rg_test_sc_generate into 'totp.inc.php'. |
|
36 |
|
[ ] 2fa: test pushing by http(by_http.php)/ssh(?). |
|
37 |
|
[ ] Compare: mouse over is not working on touch-screens! |
|
38 |
|
[ ] Aug 18 15:10:04 rg2 audit[29395]: AVC avc: denied { map } for pid=29395 comm="git" path="/var/lib/rocketgit/repos/by_id/00/00/00/7B/0000007B/repos/by_id/125.git/objects/pack/pack-dbb7e352e05eec6b15b74679d813897b29fa0b62.idx" dev="dm-0" ino=133117 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:rocketgit_var_t:s0 tclass=file permissive=1 |
|
39 |
|
[ ] Truncate big descriptions. |
|
40 |
|
[ ] report how many repos/users/etc. were removed. |
|
41 |
|
[ ] Investigate WWW-Authenticate HTTP header. |
|
|
4 |
|
|
|
5 |
|
== BEFORE NEXT RELEASE == |
|
6 |
|
[ ] MR merge_mr must contain also the ID. |
|
7 |
|
Search for "This is the merge message <xss>". |
|
8 |
|
[ ] git_merge_base: cache is not done in the repo namespace => will not be |
|
9 |
|
deleted when a repo is gone. And we do not use the id of the repo, |
|
10 |
|
but path! We must use the id. |
|
11 |
|
[ ] Blacklist IPs for webhooks |
|
12 |
|
127.0.0.0/8 |
|
13 |
|
10.0.0.0/8 |
|
14 |
|
172.16.0.0/12 |
|
15 |
|
192.168.0.0/16 |
|
16 |
|
100.64.0.0/10 |
|
17 |
|
169.254.0.0/16 |
|
18 |
|
::1/128 |
|
19 |
|
fe80::/64 |
|
20 |
|
fc00::/7 |
|
21 |
|
[ ] See err-* errors on production. |
|
22 |
|
[ ] cb_* returning error - abort execution! |
|
23 |
|
[ ] https://rocketgit.com/user/kapstok/NHL-InfoArch/source/log/commit/b61a9e25983fa66096a7a30755f7f0c4b89a7210 |
|
24 |
|
Shows the commits and then "This repo contains no commits."! |
|
25 |
|
This is fixed, but the consumers of rg_git_log_simple |
|
26 |
|
must check if the array is empty and show a message. |
|
27 |
|
[ ] git-receive-pack - it seems stateless-rpc and other thigs are gone! |
|
28 |
|
[ ] php_errormsg -> rg_php_err(). |
|
29 |
|
[ ] Log also the time for push/fetch. |
|
30 |
|
[ ] In the reports, report also the size of the database? Tables? Indexes? |
|
31 |
|
[ ] Size of 'rocketgit' repo is not correct! Seems correct. |
|
32 |
|
[ ] When we try to send the report, check last success date and generate from |
|
33 |
|
there as many as days are needed to arrive in present. |
|
34 |
|
[ ] Show size on disk for a user. Maybe on click, generate a nice report? |
|
35 |
|
[ ] Error: error on ls-tree (task returned code 128 (fatal: Not a valid object name refs/heads/master)) |
|
36 |
|
Must be converted to a nicer message (when repo is empty). |
|
37 |
|
[ ] use '--stdin' for git-log to not get error 127 (command line too long)? |
|
38 |
|
See /user/howaboutsynergy/q1q/source/log/commit/50b2f01937cab19772c486f70fc81a4e0f5d0b34 |
|
39 |
|
We may want to truncate the list to 50 files and warn the user. |
|
40 |
|
[ ] Do git GC from cron. |
|
41 |
|
[ ] When adding a http(s) hook with cert, should we check if we can connect |
|
42 |
|
and report at once? |
|
43 |
|
[ ] Put in environment LANG=C/LC_ALL=C when running commands? Not sure. |
|
44 |
|
[ ] When a lock is taken, log this (try without blocking and then with blocking)? |
|
45 |
|
[ ] rg_git_merge: git locking - use the official way? |
|
46 |
|
[ ] rg_git_lock: use it also for other operations? |
|
47 |
|
[ ] "You have the chance to help all free software projects hosted here" |
|
48 |
|
[ ] Allow users to add a PayPal/Ethereum/Bitcoin etc. pay details, and add |
|
49 |
|
specific links to accept donations easily. |
|
50 |
|
[ ] totp: add a test to check if both db and cache are clean when unenrolling. |
42 |
51 |
[ ] ldap: delete a server: we must not have a user in 'users', without |
[ ] ldap: delete a server: we must not have a user in 'users', without |
43 |
52 |
a uid in ldap_cache: maybe a transaction needed? |
a uid in ldap_cache: maybe a transaction needed? |
44 |
53 |
Why? Because we will not delete that user! |
Why? Because we will not delete that user! |
|
... |
... |
betwen 'simple' and 'full'! |
47 |
56 |
[ ] ldap: func test when ldap_password changes, but we have the user inserted |
[ ] ldap: func test when ldap_password changes, but we have the user inserted |
48 |
57 |
in 'users' |
in 'users' |
49 |
58 |
[ ] Will the moving of user_edit_no_check call into ldap would simplify code? |
[ ] Will the moving of user_edit_no_check call into ldap would simplify code? |
50 |
|
[ ] ldap: ldap_cache.prio is needed?! Not anymore! |
|
51 |
59 |
[ ] ldap: editing a server: |
[ ] ldap: editing a server: |
52 |
60 |
- I have to update the plan_id for all users in 'users' table, if different. |
- I have to update the plan_id for all users in 'users' table, if different. |
53 |
61 |
- if admin changes 'uid_attr', I have to set 'username' to '', to signal the |
- if admin changes 'uid_attr', I have to set 'username' to '', to signal the |
|
... |
... |
betwen 'simple' and 'full'! |
58 |
66 |
[ ] If we change the 'uid' attribute, we must invalidate the whole cache. |
[ ] If we change the 'uid' attribute, we must invalidate the whole cache. |
59 |
67 |
But, we cannot delete anything. We need the link between ldap_cache and users. |
But, we cannot delete anything. We need the link between ldap_cache and users. |
60 |
68 |
Just mark it as unavailable. |
Just mark it as unavailable. |
61 |
|
[ ] Recover password must be enabled for ldap users? |
|
62 |
|
[ ] 'deleted' field must be respected by ldap? |
|
63 |
|
If admin blocks/deletes/suspends an ldap account, what should we do? |
|
64 |
|
I think I must respect it. |
|
65 |
69 |
[ ] I think I should not allow the login by e-mail! If user can change the |
[ ] I think I should not allow the login by e-mail! If user can change the |
66 |
70 |
e-mail in LDAP, I have a problem. I think I can keep it. |
e-mail in LDAP, I have a problem. I think I can keep it. |
67 |
71 |
The password must match. Check! |
The password must match. Check! |
|
... |
... |
betwen 'simple' and 'full'! |
84 |
88 |
controlled. Should we use ^/$ by default? |
controlled. Should we use ^/$ by default? |
85 |
89 |
[ ] ldap: https://github.com/thorin/redmine_ldap_sync |
[ ] ldap: https://github.com/thorin/redmine_ldap_sync |
86 |
90 |
As an example which works also on AD. |
As an example which works also on AD. |
|
91 |
|
[ ] ldap: tests?: somehow delete old ldap servers. Also from cache. |
87 |
92 |
[ ] ldap: how to specify if an account is disabled? Some regex needed? |
[ ] ldap: how to specify if an account is disabled? Some regex needed? |
88 |
93 |
[ ] ldap: server settings: select between one level or subtree. |
[ ] ldap: server settings: select between one level or subtree. |
89 |
94 |
[ ] ldap: what indexes are needed for ldap_* tables? |
[ ] ldap: what indexes are needed for ldap_* tables? |
90 |
|
[ ] ldap: tests?: somehow delete old ldap servers. Also from cache. |
|
91 |
95 |
[ ] 'meronos' user is with lower 'm', but in the /var/lib/rocketgit/repos/ |
[ ] 'meronos' user is with lower 'm', but in the /var/lib/rocketgit/repos/ |
92 |
96 |
folder is with bigger M! Does he renamed the user and I did not updated |
folder is with bigger M! Does he renamed the user and I did not updated |
93 |
97 |
the link? |
the link? |
|
... |
... |
betwen 'simple' and 'full'! |
116 |
120 |
Trying to clone the repo by the non-owner, gives an errors as repo |
Trying to clone the repo by the non-owner, gives an errors as repo |
117 |
121 |
does not exists! This is not correct. The user must know that the repo |
does not exists! This is not correct. The user must know that the repo |
118 |
122 |
is there because of the 'Access' rights. So, improve the error message! |
is there because of the 'Access' rights. So, improve the error message! |
119 |
|
[ ] |
|
120 |
|
|
|
121 |
|
== BEFORE NEXT RELEASE == |
|
|
123 |
|
[ ] Recover password must be enabled for ldap users? Probably yes. |
|
124 |
|
[ ] 'deleted' field must be respected by ldap? |
|
125 |
|
If admin blocks/deletes/suspends an ldap account, what should we do? |
|
126 |
|
I think I must respect it. |
|
127 |
|
[ ] ldap: ldap_cache.prio is needed?! Not anymore! |
|
128 |
|
[ ] report how many repos/users/etc. were removed. |
|
129 |
|
[ ] Investigate WWW-Authenticate HTTP header. |
|
130 |
|
[ ] ldap: should we allow users to change their ldap password? |
|
131 |
|
[ ] scratch_codes table: we should have an 'id' column for deletion. |
|
132 |
|
[ ] test: move rg_test_sc_generate into 'totp.inc.php'. |
|
133 |
|
[ ] 2fa: test pushing by http(by_http.php)/ssh(?). |
|
134 |
|
[ ] Compare: mouse over is not working on touch-screens! |
|
135 |
|
[ ] ldap: What should happen when we update plan_id. |
|
136 |
|
What about other fields? |
|
137 |
|
[ ] ldap: If I remember correctly, the password attribute was editable! |
|
138 |
|
[ ] ldap: document what 'Session time' means. |
|
139 |
|
Other fields need an explanation also. |
|
140 |
|
[ ] Pushing by http but using ssh 2fa feature to unlock an IP is working? |
|
141 |
|
Should work? |
|
142 |
|
[ ] When generating html diff, use a sha1(file_name) to not inject XSS and |
|
143 |
|
for html to look nice. |
|
144 |
|
[ ] We should check if the request was a POST and not a GET! Else, CSRF! |
|
145 |
|
[ ] totp: when trying to validate a token, if the token is wrong, the message |
|
146 |
|
is wrong ("you are not enrolled"). Is is a mess in totp_sc_verify |
|
147 |
|
because the error is set globally. We should pass it in return, |
|
148 |
|
not globally, everywhere is possible. |
|
149 |
|
[ ] git_log_simple returns an array of commits, with a 'vars' section and |
|
150 |
|
a 'files' section. When calling git_log, we also need to pass also the |
|
151 |
|
from/to extracted from 'simple' output. Think about someone pushing changes |
|
152 |
|
betwen 'simple' and 'full'! |
|
153 |
|
[ ] We have some invalid numstat in the logs! |
|
154 |
|
[ ] 'git log --patch' for submodules probably is not working right. |
|
155 |
|
[ ] Allow users to change the value of 'diff.context'. |
|
156 |
|
[ ] Replace all 'who_nice' open coded stuff with rg_user_nice. |
|
157 |
|
[ ] We have lines_add/del. Why we need also 'changes' field (git.inc.php)?! |
|
158 |
|
[ ] Document 2fa for http, now that is working. |
|
159 |
|
[ ] PagerDuty, Splunk integration. |
|
160 |
|
[ ] Add "Only AGPL and no CLA!" where needed. |
|
161 |
|
[ ] comparison: "2fa for ssh". |
|
162 |
|
[ ] Admin user edit is not working (going to create). |
|
163 |
|
[ ] When pushing by ssh, show also the key id/name. |
|
164 |
|
[ ] When pushing and 2fa is used, show how much time remains and how to |
|
165 |
|
revalidate the IP again. |
122 |
166 |
[ ] When trying to clone by http, and I am enrolled in 2fa, I get an error: |
[ ] When trying to clone by http, and I am enrolled in 2fa, I get an error: |
123 |
167 |
Error: non existing repo or you are not allowed to push! |
Error: non existing repo or you are not allowed to push! |
124 |
168 |
Which should not say anything about "push"! |
Which should not say anything about "push"! |