We were asking for postal code (optional) on registration.
The purpose was to let projects study
the geographical distribution of their volunteers.
But AFAIK no one ever did this,
and some volunteers have said (understandably, I think)
that asking for postal code seems like an invasion of privacy.
So I conditioned the postal-code code on a boolean constant POSTAL_CODE.
If you put
define('POSTAL_CODE', true);
in your html/project/project.inc, you'll get the old behavior.
Otherwise users won't see postal-code related stuff any more.
We need to let users have https:// URLs.
Originally http:// was assumed, and the URLs were stored without the prefix.
For compatibility, allow either form to exist in the DB
Also update the "other account info" form to user bootstrap.
- use form-control class for text inputs and selects.
This makes them all full-width, but I guess that's OK.
- use success class (green) for action buttons
- right-align table headings where appropriate
- use <small> instead of text-muted.
- tweak custom CSS to fix link and navbar visited colors
There can be intermittent "simplexml_load_file(): I/O warning : failed to load external entity" errors when using simplexml_load_file(). According to http://stackoverflow.com/questions/20534866 the solution is to use file_get_contents() first. This seems to work in our case too.
The simplexml_load_file() call fails if allow_url_fopen is set to false and does not retrieve the statistics for the user. Curl is assumed to be available instead, if not, no information is shown to the user.
Modern Browser complain if there are non-https elements in https websites. This makes sure that if the user visits via https all elements of the page are also retrieved using SSL. Furthermore it uses https urls in emails that are send to the user, if SECURE_URL_BASE is set in project/project.inc.
The only remaining places where URL_BASE is used is when it is used as master_url where it is important that it is in sync with what the scheduler uses.
Oddly enough, I couldn't repro this on Chrome or Firefox;
I remained logged in after quit/restart browser,
even though the cookie said it was for this browsing session only.
In "strict mode", inserts fail if they don't supply values
for columns with no default defined in the schema
(in non-strict mode, 0 and '' are implicit defaults).
Starting with MySQL version 5.6, strict mode is the default.
This breaks some of the BOINC web code,
which does inserts without giving values to some columns.
There are two ways to solve this:
1) change the schema to give defaults everywhere
2) change the PHP code to supply values for more columns.
I'm using 1) in some cases and 2) in others.
This commit fixes some of the errors; there are others.
- To use, projects must add LDAP server info in project.inc; see
http://boinc.berkeley.edu/trac/wiki/LdapSupport
- Users can use LDAP name/passwd in login form.
The handlers creates a BOINC account if needed.
- In user page, show LDAP UID instead of email address.
Also, much-needed code cleanup in login_action.php
When deleting a user (from the delete_spammers.php script),
remove records that refer to that user in
private_messages, notify, credit_user, badge_user, and friend tables.
Notes:
- This change eliminates some dangling references,
but in general a BOINC DB doesn't have referential integrity.
The code should check for dangling references.
- Functions like BoincUser::delete() should delete a user record,
not try to remove things that refer to it.
The function delete_user() (in user.inc) does this.
Do this by putting
define("DISABLE_FORUMS", true);
in your html/project/project.inc.
If this is set, admin users can still see enough forum functionality
to post and edit news items
(this is linked to from the Admin web interface).
Other users, or non-logged-in access, sees news but no forums
or forum-related info.
- the default badges (defined in ops/badge_assign.php) are now
based on RAC percentile (top 1%, 5%, and 25%) rather than plain RAC.
- RAC percentile badges are now granted for teams as well as users;
show badges in team page.
- move badge utility functions to inc/util_ops.inc
- DB: add tables for badges and badge/user and badge/team associations
- add script that defines 3 RAC-based badges and assigns them
- add images for these badges
- add admin page for creating/editing badges
- show badges on user page
not done:
- figure out how to send badges to client
- display badges somewhere in the GUIs
- export badges in db_dump
- enable badges by default for new projects
See http://boinc.berkeley.edu/trac/wiki/MultiSize
The components of this include:
- DB changes:
add size_class to workunit and result
n_size_classes to app; >1 means multi-size
- size_regulator daemon program: change results states
from INACTIVE to UNSENT carefully
- size_census program; writes quantile info in flat files
- transitioner: when creating results for multi-size apps,
set server state to INACTIVE
- sched shmem (feeder): read quantile info from flat files,
store in shared memory
- scheduler (score-based scheduling): for multi-size apps,
add component to score function for size class.
- show_shmem: show result size class
- make_work (and other callers of count_unsent_results()):
count both INACTIVE and UNSENT
- create_work: add --size_class cmdline option
Also:
- if get MySQL errors in upgrade, don't rewrite db_version
compute capability 3.x.
Not sure if the parameters are right
(128 cores/proc, 2 flops/clock)
but they're better than nothing.
- web: don't allow user names that have leading or trailing white space,
or HTML tags, or are empty
svn path=/trunk/boinc/; revision=25485