Subversion Repositories oidplus

Rev

Rev 664 | Rev 695 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 664 Rev 670
1
 
1
 
2
RECENT STUFF
2
RECENT STUFF
3
- At a lot of forms, if you press "enter", the "form" will not be submitted (e.g. "create ra" plugin), cannot reproduce?
3
- At a lot of forms, if you press "enter", the "form" will not be submitted (e.g. "create ra" plugin), cannot reproduce?
4
- Default language selection: Either always en-US, or automatical selection depending on browser language, or depending on admin setting (e.g. german companies offer a german repository by default)?
4
- Default language selection: Either always en-US, or automatical selection depending on browser language, or depending on admin setting (e.g. german companies offer a german repository by default)?
5
- BCrypt
5
- BCrypt
6
	Make #rounds and length of admin password configurable (pre-baseconfig?)
6
	Make #rounds and length of admin password configurable (pre-baseconfig?)
7
	Include dev/bcrypt_cost_calculator somewhere in the configuration page?
7
	Include dev/bcrypt_cost_calculator somewhere in the configuration page?
8
	... At least give a hint to the documentation, so they know how to run the tool and how to enter the cost in the configuration (for RA and Admin)
8
	... At least give a hint to the documentation, so they know how to run the tool and how to enter the cost in the configuration (for RA and Admin)
9
	... or in the setup page make an extra control how complex the admin password should be? but be aware that nobody enters a too big number (it makes DoS possible!)
9
	... or in the setup page make an extra control how complex the admin password should be? but be aware that nobody enters a too big number (it makes DoS possible!)
10
 
10
 
11
 
11
 
12
SECURITY Improvements:
12
SECURITY Improvements:
13
- Small security issue: A visitor can check which plugins are installed by either entering a "goto" command (e.g. "oidplus:vnag_version_check")
13
- Small security issue: A visitor can check which plugins are installed by either entering a "goto" command (e.g. "oidplus:vnag_version_check")
14
  and see which error message appears, or they could try to enter "plugin/adminPages/..." using the web browser and see if the result is HTTP 200 or HTTP 404.
14
  and see which error message appears, or they could try to enter "plugin/adminPages/..." using the web browser and see if the result is HTTP 200 or HTTP 404.
15
 
15
 
16
IDEAS FOR NEW FUNCTIONALITIES
16
IDEAS FOR NEW FUNCTIONALITIES
17
- Admin plugin "Attachments" with following functionalities:
17
- Admin plugin "Attachments" with following functionalities:
18
	* Show every object and its attachments, so that the admin knows what's going on
18
	* Show every object and its attachments, so that the admin knows what's going on
19
	  (Alternatively they can just look in the userdata directory using FTP)
19
	  (Alternatively they can just look in the userdata directory using FTP)
20
	* Give the ability to enable/disable RA uploading/deleting
20
	* Give the ability to enable/disable RA uploading/deleting
21
	  (Alternatively they need to do it in the configuration module and enter '0' and '1' by hand)
21
	  (Alternatively they need to do it in the configuration module and enter '0' and '1' by hand)
22
- Make a plugin that shows warnings from plugins (via "feature-interface"), e.g. the registration plugin could warn that CURL is not working correctly etc.
22
- Make a plugin that shows warnings from plugins (via "feature-interface"), e.g. the registration plugin could warn that CURL is not working correctly etc.
23
	But it should also have JavaScript components, e.g. check if dev/ and other confidential folders can be accessed (see code in setup/)
23
	But it should also have JavaScript components, e.g. check if dev/ and other confidential folders can be accessed (see code in setup/)
24
	And what can we do with checks that need a long time to compute?
24
	And what can we do with checks that need a long time to compute?
25
	Also offer VNag?
25
	Also offer VNag?
26
- Excel/CSV import tool for bulk data import (as alternative to XML import. Maybe previous Excel->XML import tool?)
26
- Excel/CSV import tool for bulk data import (as alternative to XML import. Maybe previous Excel->XML import tool?)
27
- External Syslog server
27
- External Syslog server
28
 
28
 
29
LDAP / OAUTH
29
LDAP / OAUTH
30
- Implement other OAuth providers?
30
- Implement other OAuth providers?
31
	Try out https://github.com/SocialConnect/auth
31
	Try out https://github.com/SocialConnect/auth
32
	     or https://github.com/hybridauth/hybridauth
32
	     or https://github.com/hybridauth/hybridauth
33
- Credentials and API-Keys should be protected or obfuscated or encrypted? (JoomlaKeychainKeychain?)
33
- Credentials and API-Keys should be protected or obfuscated or encrypted? (JoomlaKeychainKeychain?)
34
 
34
 
35
TINYMCE
35
TINYMCE
36
- mce dirty flag: call performCloseQueryCB()/performCloseCB(), if ...
36
- mce dirty flag: call performCloseQueryCB()/performCloseCB(), if ...
37
	OK:   The page (browser tab) is about to be closed or the page is reloaded
37
	OK:   The page (browser tab) is about to be closed or the page is reloaded
38
	      => TinyMCE uses the window.onbeforeunload event
38
	      => TinyMCE uses the window.onbeforeunload event
39
	TODO: The browser navigation buttons are clicked
39
	TODO: The browser navigation buttons are clicked
40
	      => This only works PARTIALLY. Preventing popstate() works and no data is lost,
40
	      => This only works PARTIALLY. Preventing popstate() works and no data is lost,
41
	         but the browser will think that it was successful!!
41
	         but the browser will think that it was successful!!
42
	OK:   When a node at the jsTree is clicked (conditional select)
42
	OK:   When a node at the jsTree is clicked (conditional select)
43
	OK:   In the openOidInPanel() function, i.e. when you enter something into the goto-bar.
43
	OK:   In the openOidInPanel() function, i.e. when you enter something into the goto-bar.
44
- critical bug: open page, edit tiny mce, click save. Then F5 reload (not Ctrl+F5): then the old content is there again. Except if you press Ctrl+F5
44
- critical bug: open page, edit tiny mce, click save. Then F5 reload (not Ctrl+F5): then the old content is there again. Except if you press Ctrl+F5
45
	(cannot be reproduced anymore? tested with firefox and chrome)
45
	(cannot be reproduced anymore? tested with firefox and chrome)
46
- TinyMCE "isDirty" does not correctly work on Internet Explorer: It always reports "dirty"
46
- TinyMCE "isDirty" does not correctly work on Internet Explorer: It always reports "dirty"
47
	see bug https://github.com/tinymce/tinymce/issues/6048
47
	see bug https://github.com/tinymce/tinymce/issues/6048
48
- The "is dirty" check should also include the "Title" input box
48
- The "is dirty" check should also include the "Title" input box
49
 
49
 
50
WHOIS
50
WHOIS
51
- webwhois: beside TXT/XML/JSON more output modi?  CSV, S/MIME  (and add the S/MIME keypurpose to the X.509 certificates)
51
- webwhois: beside TXT/XML/JSON more output modi?  CSV, S/MIME  (and add the S/MIME keypurpose to the X.509 certificates)
52
- whois query 'oid:' should show all root entries (subordinate entries), but there is only the message "not found"
52
- whois query 'oid:' should show all root entries (subordinate entries), but there is only the message "not found"
53
 
53
 
54
SETUP
54
SETUP
55
- There should be a "test database connection" button
55
- There should be a "test database connection" button
56
	=> however, this button could be abused to brute-force database connections,
56
	=> however, this button could be abused to brute-force database connections,
57
	   and even abusing the server to connect (brute-force) to foreign database servers
57
	   and even abusing the server to connect (brute-force) to foreign database servers
58
 
58
 
59
DATA TRANSFER PLUGIN
59
DATA TRANSFER PLUGIN
60
- XML import: Let the user decide if existing OIDs shall be overwritten
60
- XML import: Let the user decide if existing OIDs shall be overwritten
61
- XML import: Let the user decide if RAs should be created
61
- XML import: Let the user decide if RAs should be created
62
- XML import: Let the user decide if "created=now" should be set
62
- XML import: Let the user decide if "created=now" should be set
63
- XML import: Waiting animation
63
- XML import: Waiting animation
64
- XML import: If output (errors) is too long, show them in a page rather than an alert() box
64
- XML import: If output (errors) is too long, show them in a page rather than an alert() box
65
 
65
 
66
SMALL THINGS
66
SMALL THINGS
-
 
67
- cron.sh: set a global flag that tells the plugins whether we are calling from crontab,
-
 
68
  so that auto publishing et al prefer cron calls and only execute their code
-
 
69
  for random visitors, if the crontab is not running.
67
- Login page etc.: If user clicks on a tab, then the gotoedit and static link should change to e.g. "oidplus:login$admin" or "oidplus:login$ra", respectively.
70
- Login page etc.: If user clicks on a tab, then the gotoedit and static link should change to e.g. "oidplus:login$admin" or "oidplus:login$ra", respectively.
68
        $('#static_link').attr("href", "index.php?goto="+encodeURIComponent(id));
71
        $('#static_link').attr("href", "index.php?goto="+encodeURIComponent(id));
69
        $("#gotoedit").val(id);
72
        $("#gotoedit").val(id);
70
- Add show_waiting_anim() and hide_waiting_anim() to all AJAX queries, like it is done in plugin "Software update"
73
- Add show_waiting_anim() and hide_waiting_anim() to all AJAX queries, like it is done in plugin "Software update"
71
- #gotobutton should have the same top and height as #gotoedit
74
- #gotobutton should have the same top and height as #gotoedit
72
- Should plugins be able to change the "Content-Security-Policy" header (i.e. to include external JavaScripts frameworks)
75
- Should plugins be able to change the "Content-Security-Policy" header (i.e. to include external JavaScripts frameworks)
73
- RA address data: Country selection box like in OIDInfo
76
- RA address data: Country selection box like in OIDInfo
74
	Possible data source: https://datahub.io/core/country-list#resource-data
77
	Possible data source: https://datahub.io/core/country-list#resource-data
75
- offer signature checker tool to verify WHOIS responses
78
- offer signature checker tool to verify WHOIS responses
76
- minimum menu expansion level: make it configurable for all objects and plugins, e.g. so that when you open OIDplus, all OIDs till level 2 are expanded
79
- minimum menu expansion level: make it configurable for all objects and plugins, e.g. so that when you open OIDplus, all OIDs till level 2 are expanded
77
- Revive the idea of "information objects" = OIDs that contain content
80
- Revive the idea of "information objects" = OIDs that contain content
78
- API : Make a function that checks if a RA exists, and use it everywhere where needed
81
- API : Make a function that checks if a RA exists, and use it everywhere where needed
79
- Object type plugins : take care that "treeicon.png" and "icon_big.png" exist everywhere (become standard)
82
- Object type plugins : take care that "treeicon.png" and "icon_big.png" exist everywhere (become standard)
80
- freeoid: gmail app does not hyperlink the activation URL. why?
83
- freeoid: gmail app does not hyperlink the activation URL. why?
81
- how to avoid invite spamming?
84
- how to avoid invite spamming?
82
- when a PHP error happens (i.e. the AJAX script did not manage to output a JSON), the AJAX script outputs "Error: SyntaxError: Unexpected token < in JSON at position 0" ... better show the user the actual message, or something more user-friendly at least
85
- when a PHP error happens (i.e. the AJAX script did not manage to output a JSON), the AJAX script outputs "Error: SyntaxError: Unexpected token < in JSON at position 0" ... better show the user the actual message, or something more user-friendly at least
83
- when login expired, remove entries in the treeview
86
- when login expired, remove entries in the treeview
84
- disable specific functions (e.g. invite, login, rainfo, forgot password) if the plugins are not installed (check if class type is registered using class_exists())
87
- disable specific functions (e.g. invite, login, rainfo, forgot password) if the plugins are not installed (check if class type is registered using class_exists())
85
- <abbr> in <code> is double underlined; that's not good
88
- <abbr> in <code> is double underlined; that's not good
86
- if you have multiple identifiers, how do you tell the system which identifier should be the preferred one?
89
- if you have multiple identifiers, how do you tell the system which identifier should be the preferred one?
87
- show whois links only if folder "whois/" exists
90
- show whois links only if folder "whois/" exists
88
- disable autocomplete on some forms
91
- disable autocomplete on some forms
89
- graphical improvements of forms (input edits aligned)
92
- graphical improvements of forms (input edits aligned)
90
- "Documents" section: Make documentation for usage of OIDplus (for members only)
93
- "Documents" section: Make documentation for usage of OIDplus (for members only)
91
- admin config more user friendly, e.g. having the enable/disable object type stuff (like in registration wizard) also in the admin control panel
94
- admin config more user friendly, e.g. having the enable/disable object type stuff (like in registration wizard) also in the admin control panel
92
- it would be good if after the login, the opened nodes in the tree would stay open
95
- it would be good if after the login, the opened nodes in the tree would stay open
93
- html checkbox: make use of "label for"
96
- html checkbox: make use of "label for"
94
- when javascript fails, the form will be submitted to './' , that is not good! failed javascript must return false, so that the form does not get submitted
97
- when javascript fails, the form will be submitted to './' , that is not good! failed javascript must return false, so that the form does not get submitted
95
- admin: show privacy entries from RAs (but grey, so you know that it is private)
98
- admin: show privacy entries from RAs (but grey, so you know that it is private)
96
- admin should be able to edit contact data of a foreign RA [XXX isn't that already implemented?]
99
- admin should be able to edit contact data of a foreign RA [XXX isn't that already implemented?]
97
- freeoid: hide asn.1 and iri columns, because the RA is not allocating these identifiers?
100
- freeoid: hide asn.1 and iri columns, because the RA is not allocating these identifiers?
98
- .... maybe we should have a list of OIDs where the OID does not allocate ASN.1/IRI identifiers... then we can also make use of the OID-WHOIS attributes
101
- .... maybe we should have a list of OIDs where the OID does not allocate ASN.1/IRI identifiers... then we can also make use of the OID-WHOIS attributes
99
- Privacy flag of RAs: Should there be more privacy levels, e.g. that you don't show your personal name etc.?
102
- Privacy flag of RAs: Should there be more privacy levels, e.g. that you don't show your personal name etc.?
100
- You should be able to change the "created" date for an object! Or maybe hide it completely if you don't know the original creation date?
103
- You should be able to change the "created" date for an object! Or maybe hide it completely if you don't know the original creation date?
101
- In the CRUD table, you should be able to see the name of the OID? But on the other hand, the title is not in the control of the Superior RA, and the CRUD table is actually the allocation table of the Superior RA.
104
- In the CRUD table, you should be able to see the name of the OID? But on the other hand, the title is not in the control of the Superior RA, and the CRUD table is actually the allocation table of the Superior RA.
102
- natOrder() does only work for OID namespace!!! other sort mechanisms are necessary for other object types
105
- natOrder() does only work for OID namespace!!! other sort mechanisms are necessary for other object types
103
- jstree select: automatically scroll down
106
- jstree select: automatically scroll down
104
- jstree: right click "open in new tab" is not possible
107
- jstree: right click "open in new tab" is not possible
105
- things like RA: show more things, address, email etc.
108
- things like RA: show more things, address, email etc.
106
- note that we (and the RFC) talk about Objects, but actually OIDs only reference objects, but they are not the objects
109
- note that we (and the RFC) talk about Objects, but actually OIDs only reference objects, but they are not the objects
107
- Multilang
110
- Multilang
108
	* Not yet translated:
111
	* Not yet translated:
109
		- plugins\publicPages\100_whois\whois\index.php [Problem: This page is kinda standalone and does not include the OIDplus code]
112
		- plugins\publicPages\100_whois\whois\index.php [Problem: This page is kinda standalone and does not include the OIDplus code]
110
		- vendor\danielmarschall\fileformats\fileformats.conf [Problem: This is a third-party code!]
113
		- vendor\danielmarschall\fileformats\fileformats.conf [Problem: This is a third-party code!]
111
		- includes\classes\VtsBrowserDownload.class.php [Problem: This is a third-party code!]
114
		- includes\classes\VtsBrowserDownload.class.php [Problem: This is a third-party code!]
112
	* Is there some useful German translation of the Apache 2.0 license?
115
	* Is there some useful German translation of the Apache 2.0 license?
113
- WEID UUID: Show the UUID 2.25/GUID equivalent as alternative ID
116
- WEID UUID: Show the UUID 2.25/GUID equivalent as alternative ID
114
- When an OID is edited/added/deleted, don't reload the whole tree. Instead, just change the tree! This looks much more fluid.
117
- When an OID is edited/added/deleted, don't reload the whole tree. Instead, just change the tree! This looks much more fluid.
115
- adminPages/902_systemfile_check/OIDplusPageAdminSystemFileCheck.class.php
118
- adminPages/902_systemfile_check/OIDplusPageAdminSystemFileCheck.class.php
116
	Should thumbs.db (case insensitive) and Apple turds be excluded?
119
	Should thumbs.db (case insensitive) and Apple turds be excluded?
117
	On the other hand, these files could then be used to hide malicious data
120
	On the other hand, these files could then be used to hide malicious data
118
 
121
 
119
UPDATER
122
UPDATER
120
- Internal problem with GIT distribution channel:
123
- Internal problem with GIT distribution channel:
121
	The GIT version might be behind the master SVN repository
124
	The GIT version might be behind the master SVN repository
122
	So if you do "git pull", the update/index.php page might still show that an update is available!
125
	So if you do "git pull", the update/index.php page might still show that an update is available!
123
 
126
 
124
DATABASE
127
DATABASE
125
- SQLite3: Implement Natural OID sorting (natSort)
128
- SQLite3: Implement Natural OID sorting (natSort)
126
- make usage of Foreign Keys
129
- make usage of Foreign Keys
127
	PROBLEM: we need foreign keys with no check, because
130
	PROBLEM: we need foreign keys with no check, because
128
	a) we want to keep log entries even if an object/user is deleted
131
	a) we want to keep log entries even if an object/user is deleted
129
	b) log_user.username can also be 'admin' (and therefore not be a foreign key to table 'ra')
132
	b) log_user.username can also be 'admin' (and therefore not be a foreign key to table 'ra')
130
	c) not every object should have a registered RA. There should be "unknown" RAs where only the email address is known
133
	c) not every object should have a registered RA. There should be "unknown" RAs where only the email address is known
131
 
134
 
132
FUTURE
135
FUTURE
133
- implement sitemaps xml
136
- implement sitemaps xml
134
- admin should be able to change wellknown oids?
137
- admin should be able to change wellknown oids?
135
- move oid to different arc
138
- move oid to different arc
136
- for very large arcs (e.g. PEN): maybe you should not show everything in the tree select?
139
- for very large arcs (e.g. PEN): maybe you should not show everything in the tree select?
137
- support for ORS?
140
- support for ORS?
138
- "Cutting Edge Technologie": AJAX, JSON, completely UTF-8, CRUD frameworks, PDO, HTML5, Mobile Design, Pure CSS, Autoloading, Object Oriented (maybe not MVC, though), Testing, ...
141
- "Cutting Edge Technologie": AJAX, JSON, completely UTF-8, CRUD frameworks, PDO, HTML5, Mobile Design, Pure CSS, Autoloading, Object Oriented (maybe not MVC, though), Testing, ...
139
- "Search" plugin: Feature to search inside documentation (doc/ directory)
142
- "Search" plugin: Feature to search inside documentation (doc/ directory)
140
- "Search" plugin: I want to search in all object types and RAs. Not first select the type.
143
- "Search" plugin: I want to search in all object types and RAs. Not first select the type.
141
- How can we make sure that example objects are not exported using oid-info.com export?
144
- How can we make sure that example objects are not exported using oid-info.com export?
142
- Administrator-Interface: enable and disable object types
145
- Administrator-Interface: enable and disable object types
143
- detailled change-history of each oid
146
- detailled change-history of each oid
144
 
147
 
145
BUGS?
148
BUGS?
146
- BUG! RA is logged in, then it is deleted => the RA can still edit their OIDs, since their session is not destroyed
149
- BUG! RA is logged in, then it is deleted => the RA can still edit their OIDs, since their session is not destroyed
147
- OIDplus does not work in Safari Mobile!
150
- OIDplus does not work in Safari Mobile!
148
	1. You cannot scroll the OID grid, as the scrolling affects the whole page, not the grid.
151
	1. You cannot scroll the OID grid, as the scrolling affects the whole page, not the grid.
149
	2. JQueryUI sliders cannot be dragged
152
	2. JQueryUI sliders cannot be dragged
150
 
153
 
151
REJECTED IDEAS
154
REJECTED IDEAS
152
- well known OIDs: Should also the RA address be recorded? (so that you cannot create a 2.999 OID and telling that you are the RA?)
155
- well known OIDs: Should also the RA address be recorded? (so that you cannot create a 2.999 OID and telling that you are the RA?)
153
- should there more than one person be able to manage an OID? (multiple emails per "RA" ?)
156
- should there more than one person be able to manage an OID? (multiple emails per "RA" ?)
154
- record first RA and current RA => X.660 does not have this requirement
157
- record first RA and current RA => X.660 does not have this requirement
155
- markers DRAFT, LEAF and FROZEN etc. => use "Protected" if you want to make it invisible
158
- markers DRAFT, LEAF and FROZEN etc. => use "Protected" if you want to make it invisible
156
- Giving the "goto" argument OIDs instead of names, so that there are no conflict
159
- Giving the "goto" argument OIDs instead of names, so that there are no conflict
157
  with plugin vendors (like it was done with the "plugin" argument at ajax.php)
160
  with plugin vendors (like it was done with the "plugin" argument at ajax.php)
158
	Rejected due to following reasons:
161
	Rejected due to following reasons:
159
	a) The "goto" parameter should usually be human readable (especially since it is shown at the right top)...
162
	a) The "goto" parameter should usually be human readable (especially since it is shown at the right top)...
160
	   Having a ViaThinkSoft OID there might get the user confused because they could think that the
163
	   Having a ViaThinkSoft OID there might get the user confused because they could think that the
161
	   page is a OID page request for that OID instead of a plugin page.
164
	   page is a OID page request for that OID instead of a plugin page.
162
	b) Vendors should use something like "?goto=oidplus:com.example...."
165
	b) Vendors should use something like "?goto=oidplus:com.example...."
163
 
166
 
164
LOGS
167
LOGS
165
- prune logs entries? automatically prune things like "logged in" but not prune OID changes, etc?
168
- prune logs entries? automatically prune things like "logged in" but not prune OID changes, etc?
166
- admin logs: don't show all logs. load more log entries as soon as the page is scrolled down
169
- admin logs: don't show all logs. load more log entries as soon as the page is scrolled down
167
- when user changed email from "A" => "B", then all previous log events for "A" are not visible for "B" anymore!
170
- when user changed email from "A" => "B", then all previous log events for "A" are not visible for "B" anymore!
168
	=> should we also change the log entry email address references when the user changes their email address?
171
	=> should we also change the log entry email address references when the user changes their email address?
169
- At "oidplus:system_log", user log section and object log section, the users and/or objects should be clickable
172
- At "oidplus:system_log", user log section and object log section, the users and/or objects should be clickable
170
 
173
 
171
IDEAS
174
IDEAS
172
- Give configuration settings a type (int, bool, enum, etc.) so that the configuration page can be more user friendly (use a checkbox rather than typing "1" and "0")
175
- Give configuration settings a type (int, bool, enum, etc.) so that the configuration page can be more user friendly (use a checkbox rather than typing "1" and "0")
173
	Even better: Give plugins the opportunity to display their own config GUI, exactly like OOBE does
176
	Even better: Give plugins the opportunity to display their own config GUI, exactly like OOBE does
174
- Host/Domain ObjectType?
177
- Host/Domain ObjectType?
175
- OID-WHOIS: For well-known OIDs, e.g. IANA PEN, show information where to retrieve information
178
- OID-WHOIS: For well-known OIDs, e.g. IANA PEN, show information where to retrieve information
176
	=> Problem: Well-known OIDs are implemented as ASN/IRI identifiers only; no information in table "objects"!
179
	=> Problem: Well-known OIDs are implemented as ASN/IRI identifiers only; no information in table "objects"!
177
- Should plugins be able to add additional object sub-nodes/pages into the tree,
180
- Should plugins be able to add additional object sub-nodes/pages into the tree,
178
  which are not "real" objects? For example, in the object tree,
181
  which are not "real" objects? For example, in the object tree,
179
  you could include file attachments [by File Attachment Plugin].
182
  you could include file attachments [by File Attachment Plugin].
180
  Also, Object Type Plugins could add more sub-nodes/pages into the
183
  Also, Object Type Plugins could add more sub-nodes/pages into the
181
  tree, for example if you have object types where each object
184
  tree, for example if you have object types where each object
182
  consists of various components.
185
  consists of various components.
183
  => currently OIDplus::menuUtils()->tree_populate() handles the object tree loading
186
  => currently OIDplus::menuUtils()->tree_populate() handles the object tree loading
184
     ... but shouldn't this task do the plugin publicPages/000_objects ?
187
     ... but shouldn't this task do the plugin publicPages/000_objects ?
185
     ... then we could establish an API which can give object type plugins the possibility to add additional children
188
     ... then we could establish an API which can give object type plugins the possibility to add additional children
186
- Hide/Proxy RA E-Mails from public requests
189
- Hide/Proxy RA E-Mails from public requests
187
- let users choose their own creation arc
190
- let users choose their own creation arc
188
- system guid (name based pubkey)?
191
- system guid (name based pubkey)?
189
- In regards multilinguality: Allow "oidplus_base$dede.css", so that languages can have their own CSS (e.g. wider "Go" button)
192
- In regards multilinguality: Allow "oidplus_base$dede.css", so that languages can have their own CSS (e.g. wider "Go" button)
190
	But this means that a language change also need to reload the style sheet (like the color-plugin does when you click "Test")
193
	But this means that a language change also need to reload the style sheet (like the color-plugin does when you click "Test")
191
- when an object was not found, the error message could show the next possible known object (like WebWHOIS does)
194
- when an object was not found, the error message could show the next possible known object (like WebWHOIS does)
192
- the "goto" quickbar (at the top right) could also be used to search something ...
195
- the "goto" quickbar (at the top right) could also be used to search something ...
193
- ... alternatively, the "object not found" error page could link to the search plugin
196
- ... alternatively, the "object not found" error page could link to the search plugin
194
- make color plugin available for everyone. Admin may permanently save the colors, but users should be able to set their own theme, saved via cookies
197
- make color plugin available for everyone. Admin may permanently save the colors, but users should be able to set their own theme, saved via cookies
195
- there should be a form where an RA can request an invitation, even if the superior RA did not invite them.
198
- there should be a form where an RA can request an invitation, even if the superior RA did not invite them.
196
  the fact that a RA exists in the Object Table should permit the RA to invite theirself.
199
  the fact that a RA exists in the Object Table should permit the RA to invite theirself.
197
- make a list of OIDs that do not assign ASN1/IRI identifiers (e.g. IANA PEN or ViaThinkSoft FreeOID), then reject any identifier the user provides
200
- make a list of OIDs that do not assign ASN1/IRI identifiers (e.g. IANA PEN or ViaThinkSoft FreeOID), then reject any identifier the user provides
198
- sanitize IPv4, IPv6, GUID during creation
201
- sanitize IPv4, IPv6, GUID during creation
199
	bei IPv4 und IPv6: - if it is a single host address, don't put /32 or /128 suffix
202
	bei IPv4 und IPv6: - if it is a single host address, don't put /32 or /128 suffix
200
	                   - strike unnecessary bits that are not defined in the netmask (also at the whois output)
203
	                   - strike unnecessary bits that are not defined in the netmask (also at the whois output)
201
- let the sysadmin decide if they want the title be "systemtitle - object title" or "object title - systemtitle"
204
- let the sysadmin decide if they want the title be "systemtitle - object title" or "object title - systemtitle"
202
- should a RA be able to mark their own oid as confidential, instead of asking the superior RA?
205
- should a RA be able to mark their own oid as confidential, instead of asking the superior RA?
203
- should there be an OIDplus project page at oidplus.viathinksoft.com instead of a "naked" system?
206
- should there be an OIDplus project page at oidplus.viathinksoft.com instead of a "naked" system?
204
- vendor signature to plugins + viathinksoft signatures + "check" program if all signatures match
207
- vendor signature to plugins + viathinksoft signatures + "check" program if all signatures match
205
	Why do we need it?
208
	Why do we need it?
206
		We want to make sure that the OIDplus files aren't modified by hackers (e.g. replaced by a webshell)
209
		We want to make sure that the OIDplus files aren't modified by hackers (e.g. replaced by a webshell)
207
		Unfortunately, we can only verify our own files. Plugins by vendors cannot be checked.
210
		Unfortunately, we can only verify our own files. Plugins by vendors cannot be checked.
208
	Problem:
211
	Problem:
209
		We cannot store the ViaThinkSoft public key or the checking-tool in the OIDplus directory,
212
		We cannot store the ViaThinkSoft public key or the checking-tool in the OIDplus directory,
210
		because then they could be altered by the hacker.
213
		because then they could be altered by the hacker.
211
		We also cannot add a "verified" icon in the "Plugins" admin section,
214
		We also cannot add a "verified" icon in the "Plugins" admin section,
212
		because this could also be fake.
215
		because this could also be fake.
213
		The only solution to verify the OIDplus installation is to run a tool that
216
		The only solution to verify the OIDplus installation is to run a tool that
214
		is downloaded on-demand over a secure connection.
217
		is downloaded on-demand over a secure connection.
215
	Solution:
218
	Solution:
216
		1. The OIDplus installation contains a file "signature.md5" that contains the MD5 sums of all files.
219
		1. The OIDplus installation contains a file "signature.md5" that contains the MD5 sums of all files.
217
		   The whole file is RSA signed with a ViaThinkSoft key.
220
		   The whole file is RSA signed with a ViaThinkSoft key.
218
		2. We should offer a tool which can be started on-demand by running something like:
221
		2. We should offer a tool which can be started on-demand by running something like:
219
		   curl -sSL https://oidplus.viathinksoft.com/signature_check/ | bash
222
		   curl -sSL https://oidplus.viathinksoft.com/signature_check/ | bash
220
		   This tool contains a check procedure and the ViaThinkSoft public key,
223
		   This tool contains a check procedure and the ViaThinkSoft public key,
221
		   and verifies the OIDplus installation.
224
		   and verifies the OIDplus installation.
222
		3. The tool should also warn if there are missing or additional files,
225
		3. The tool should also warn if there are missing or additional files,
223
		   because some additional files may be executed (e.g. if they are located in includes/db_updates/)
226
		   because some additional files may be executed (e.g. if they are located in includes/db_updates/)
224
		4. With every new release of OIDplus, this file must be re-generated!
227
		4. With every new release of OIDplus, this file must be re-generated!
225
- have a menu item (plugin) "latest updates" which lists OIDs that have been changed or added recently?
228
- have a menu item (plugin) "latest updates" which lists OIDs that have been changed or added recently?
226
- (unsure:) would it be good if the superior RA comment is shown in the object page itself?
229
- (unsure:) would it be good if the superior RA comment is shown in the object page itself?
227
- Protect attachments with a password? (Information objects?)
230
- Protect attachments with a password? (Information objects?)
228
- IPv4/IPv6 plugin: Should we allow that private IPs are put into categories (e.g. different physical locations having the same subnet?)
231
- IPv4/IPv6 plugin: Should we allow that private IPs are put into categories (e.g. different physical locations having the same subnet?)
229
- Like in OOBE, plugins should give the possibility to add an individual UI in the "oidplus:edit_config" page
232
- Like in OOBE, plugins should give the possibility to add an individual UI in the "oidplus:edit_config" page
230
- Login area: The "administrator" node in the treeview could be clicked, leading to a page that contains a link to all sub pages (big icons ordered in a grid?)
233
- Login area: The "administrator" node in the treeview could be clicked, leading to a page that contains a link to all sub pages (big icons ordered in a grid?)
231
- "Invisible/service" plugin type, like page plugins, but they have no gui() method
234
- "Invisible/service" plugin type, like page plugins, but they have no gui() method
232
 
235
 
233
QUESTIONS
236
QUESTIONS
234
- should the collation be case sensitive or case insensitive? For Java package names, it should be case senstivie
237
- should the collation be case sensitive or case insensitive? For Java package names, it should be case senstivie
235
- use word "guid" or "uuid"?
238
- use word "guid" or "uuid"?
236
- should "OID updated" be split into two categories "updated by superior" (e.g. identifiers) and "updated by owner" (description etc)?
239
- should "OID updated" be split into two categories "updated by superior" (e.g. identifiers) and "updated by owner" (description etc)?
237
- Don't renew "updated" field if you just click "Update" but didn't change anything (e.g. because you just wanted to send an invitation again)
240
- Don't renew "updated" field if you just click "Update" but didn't change anything (e.g. because you just wanted to send an invitation again)
238
- "Documents" section: Can base of URLs/images inside the HTML be changed automatically?
241
- "Documents" section: Can base of URLs/images inside the HTML be changed automatically?
239
 
242
 
240
PRIVACY
243
PRIVACY
241
- bring back "vendor/cookiecontent"? DM 28 May 2019: Removed CookieConsent temporarily, because it is placed at the beginning of the page and therefore ruins the Google index ...
244
- bring back "vendor/cookiecontent"? DM 28 May 2019: Removed CookieConsent temporarily, because it is placed at the beginning of the page and therefore ruins the Google index ...
242
	=> We might not need it, because cookies are only set during login, and at the login page itself, we already warn about cookies, in addition to the Privacy documentation
245
	=> We might not need it, because cookies are only set during login, and at the login page itself, we already warn about cookies, in addition to the Privacy documentation
243
- Cookie law:
246
- Cookie law:
244
	Download CookieConsent code into vendor folder, do not hotlink it
247
	Download CookieConsent code into vendor folder, do not hotlink it
245
	we need to log all consents
248
	we need to log all consents
246
	do we need an explicit consent at the login form?
249
	do we need an explicit consent at the login form?
247
	do we need a consent for the cookie SSL_CHECK?
250
	do we need a consent for the cookie SSL_CHECK?
248
 
251
 
249
GUID Management
252
GUID Management
250
- Leaf nodes (GUIDs) should show/edit the Title in the CRUD, so you dont have to click the GUID to see the title
253
- Leaf nodes (GUIDs) should show/edit the Title in the CRUD, so you dont have to click the GUID to see the title
251
- weird bug: when i edit "guid:oidplus", then, after reload the treeview after the update, "guid:activedirectory" will be opened. somehow, the last opened node will be opened during the reload?!
254
- weird bug: when i edit "guid:oidplus", then, after reload the treeview after the update, "guid:activedirectory" will be opened. somehow, the last opened node will be opened during the reload?!