Commit graph

29975 commits

Author SHA1 Message Date
poltawski
f62cb19d89 MDL-10886 - Category edit: use 'save changes', enable cancel button to allow us
to get back from where we came from & refine where we are returned to when cancelled.
merged from MOODLE_19_STABLE
2008-01-09 10:49:59 +00:00
poltawski
4597d5335b MDL-12461 - wrong urls for message related log entries
merged from MOODLE_19_STABLE
2008-01-09 10:12:31 +00:00
moodler
a58ff1159b Fixed missing string MDL-12801 2008-01-09 07:36:29 +00:00
moodler
8871caf0ac Merged MDL-12801 from MOODLE_18_STABLE (improve roles terminology for system) 2008-01-09 06:50:42 +00:00
scyrma
6a8fd52898 Small documentation fix. 2008-01-09 04:10:02 +00:00
ericmerrill
817fb4cb01 MDL-11674
Changing back an issue that could cause dataloss.
2008-01-09 02:13:52 +00:00
mjollnir_
2f8d2e1a2b Merged from MOODLE_19_STABLE: MDL-12884 web installer should set the depth of the miscellaneous course category to 1 too (discussion in moodle hq skype chat with Petr) 2008-01-08 23:27:45 +00:00
mjollnir_
9816d8afc0 MDL-12884: cli installer should create the context for the Miscellaneous course category 2008-01-08 23:23:19 +00:00
martinlanghoff
7ce4ce0aa4 mod/chat:chat_cron() - IS NOT NULL is better - MDL-11674 2008-01-08 22:36:17 +00:00
poltawski
46decdf5d9 MDL-12840 - gradebook CSV import was failing due to newlines with nothing
on them
merged from MOODLE_19_STABLE
2008-01-08 22:25:07 +00:00
martinlanghoff
319038c39d mod/chat:chat_cron() delete stale chat messages with a single query, fast, and portable too! MDL-11674 2008-01-08 20:58:24 +00:00
poltawski
667a2d481e MDL-12882 - we were caching empty records which caused clone warnings
merged from MOODLE_19_STABLE
2008-01-08 20:20:36 +00:00
tjhunt
06e2b0de2a MDL-12771 - change multianswer quetsion type HTML to more closely match that of other question types, in order to fix a layout glitch in Moodle 1.9. 2008-01-08 18:37:46 +00:00
tjhunt
a656e0de48 MDL-12785 - Partially correct tick icon not displayed for MULTICHOICE, single answer questions. Fix thanks to Joseph Rzeau. Merged from MOODLE_18_STABLE. 2008-01-08 18:29:20 +00:00
urs_hunkler
4457871960 merged from 1.9 :: MDL-12881 :: added class names "username" and "password" for better login form handling. 2008-01-08 18:07:47 +00:00
sam_marshall
40a94e4374 MDL-12876 Moved accesshide text further off the screen as it was sometimes visible 2008-01-08 17:30:50 +00:00
poltawski
2f2b289fe2 MDL-12464 - refine further so that glossary can't refer to instance from
another course (and cause breakage)
2008-01-08 16:47:19 +00:00
tjhunt
003bbcc817 MDL-12875 - Hidden courses not in category list not visible to teachers on those courses in the list of courses in a category. 2008-01-08 15:17:02 +00:00
tjhunt
cc3d5e10ec Put back DEBUG_DEVELOPER sanity check in has_capability, that makes sure the capabiltiy you are asking about actually exists. I know it takes an extra DB query, but it is DEBUG_DEVELOPER only, and it is worth its weight in gold, because otherwise you get really subtle bugs that take forever to diagnose. I know, I have just been banging my head against the wall for an hour. 2008-01-08 15:04:00 +00:00
poltawski
4282d047c2 MDL-9372 - only show RSS options in database module when RSS is enabled
merged from MOODLE_19_STABLE
2008-01-08 13:40:32 +00:00
poltawski
8857a0b425 MDL-10813 - Course requests not respecting course request category.
Also made the course request category more robust, as breakage would
incur if $CFG->defaultrequestcategory didn't exist as a category.
merged from MOODLE_19_STABLE
2008-01-08 12:51:07 +00:00
poltawski
435f3044df MDL-12873 - show an add course button when editing at the top level (which
is the default view when you click 'Add/Edit Courses')

merged from MOODLE_19_STABLE
2008-01-08 12:00:11 +00:00
skodak
c395030777 MDL-11830 width applied to input fields only, that should solve the incorrect size of button; merged from MOODLE_19_STABLE 2008-01-08 07:33:48 +00:00
skodak
f49312b6a6 MDL-12869 fixed minor security problem in installer - reported by hanno; merged from MOODLE_19_STABLE 2008-01-08 07:16:18 +00:00
nicolasconnault
6ca117e27f Misplaced variable definition 2008-01-08 06:07:56 +00:00
martinlanghoff
2e7e89a907 dmllib:rcache_set()/rcache_get() - use clone() function which we can support in PHP4 - MDL-12827 2008-01-08 04:13:32 +00:00
moodler
378d70eb51 Automatic installer.php lang files by installer_builder (20080108) 2008-01-08 03:21:40 +00:00
iarenaza
066de339a5 MDL-12858 fix print_error() usage.
print_error()'s third parameter is the URL we jump to (defaults to
$CFG->wwwroot if not set) when we click the 'Continue' button, not the message
string parameter object.

Forward ported from MOODLE_18_STABLE
2008-01-08 00:13:49 +00:00
poltawski
3a0dd57e11 MDL-12853 - fix typo 2008-01-07 21:40:25 +00:00
poltawski
0756394e6c MDL-12866 - fix missing 'is' typo 2008-01-07 21:30:18 +00:00
poltawski
209819bd72 MDL-12856 - previous commit was breaking moodle installs after
redeclaring method. Remove the duplicate function.

merged from MOODLE_19_STABLE
2008-01-07 20:57:44 +00:00
poltawski
3b13da342b MDL-12859 - add some whitespace so translation layout doesn't get messed
up; merged from MOODLE_19_STABLE
2008-01-07 20:32:16 +00:00
tjhunt
dba21d4a19 Use the locale to sort the list of activites everywhere. This matches a change a made in one place before christmas. If you don't do this, the PHP sorts by ASCII order, so mixed case names, or special characters, get sorted wrongly. Merged from MOODLE_19_STABLE. 2008-01-07 16:46:35 +00:00
poltawski
1c8ec30d95 MDL-6529 - strip slashes when displaying category added success messsage
merged from MOODLE_19_STABLE
2008-01-07 12:21:06 +00:00
moodler
e17e126517 Automatic installer.php lang files by installer_builder (20080107) 2008-01-07 03:19:52 +00:00
mjollnir_
2f13f94ccc New feature: Command line installer. Credit: Dilan Anurudda.
This was a Google Summer of Code 2007 Project.

This introduces two new files, admin/cliupgrader.php and lib/installlib.php.

It also introduces a new PEAR library, Console_GetOpt.  I have recieved permission from the upstream author to include this in GPL Moodle (essentially dual license it) -  notes in lib/pear.

Most stuff that outputs html during install gets suppressed by the use of a constant.

Run the script like  php admin/cliupgrade.php --help for info.

Note that this all uses strings from install/ rather than lang, so I have updated stringnames.txt accordingly and they'll all be broken until the cronjob that generates them runs.
2008-01-07 01:54:28 +00:00
ikawhero
6b34dd500c Adding method to allow printing of the enrolment key form code when using PayPal.
Merged from MOODLE_19_STABLE
2008-01-07 01:02:45 +00:00
martinlanghoff
19f2318a44 accesslib: get_users_by_capability() now excludes doanything'ers properly
With some subselect-outer-join poison-pill magic, when the we don't
want doanything users, we remove the roles that would grant such
dubious status.

Just a flick of the SQL muscle, actually.
2008-01-06 23:26:19 +00:00
martinlanghoff
92c879cef1 accesslib: get_users_by_capability() fix subselect with ra.hidden
MDL-12452
2008-01-06 23:26:08 +00:00
martinlanghoff
b1469317a1 lib/deprecatedlib: use sort_by_roleassignment_authority() to sort RAs
After calling get_users_by_capability(), use
sort_by_roleassignment_authority() to mimic what older versions of
Moodle did.

Affects: get_teacher(), get_course_teachers()

    MDL-12452
2008-01-06 23:25:51 +00:00
martinlanghoff
635bfbad21 accesslib: Introducing sort_by_roleassignment_authority()
This will help us bridge the gap from olden-style order-by
user_teachers.id. From the phpdoc...

 Will re-sort a $users results array (from get_users_by_capability(), usually)
 based on a sorting policy. This is to support the odd practice of
 sorting teachers by 'authority', where authority was "lowest id of the role
 assignment".

 Will execute 1 database query. Only suitable for small numbers of users, as it
 uses an u.id IN() clause.

 Notes about the sorting criteria.

 As a default, we cannot rely on role.sortorder because then
 admins/coursecreators will always win. That is why the sane
 rule "is locality matters most", with sortorder as 2nd
 consideration.

 If you want role.sortorder, use the 'sortorder' policy, and
 name explicitly what roles you want to cover. It's probably
 a good idea to see what roles have the capabilities you want
 (array_diff() them against roiles that have 'can-do-anything'
 to weed out admin-ish roles. Or fetch a list of roles from
 variables like $CFG->coursemanagers .

MDL-12452
2008-01-06 23:25:37 +00:00
martinlanghoff
1113f8002a lib/deprecatedlib: enrol/manual: Fix calls to get_users_by_capability() to avoid ra
get_users_by_capability() can no longer refer to properties of role
assignments or roles, as the capability aggregate is indirect.

Fixes:
 get_teacher() - though the results will be poor, as we cannot provide
                 role.sortorder reliably
		 (used mainly by mod/workshop)
 get_course_teachers() - which seems broken for a lot of situations as
                 its default parameters still refer to old tables.

MDL-12452
2008-01-06 23:25:26 +00:00
martinlanghoff
0d8466509d enrol/manual: Fix calls to get_users_by_capability() to avoid ra
get_users_by_capability() can no longer refer to properties of role
assignments or roles, as the capability aggregate is indirect.

MDL-12452
2008-01-06 23:25:15 +00:00
martinlanghoff
f17a660a05 accesslib: get_user_by_capability() - Fix pagination
Ooops! Off-by-one error

MDL-12452
2008-01-06 23:25:03 +00:00
martinlanghoff
c26ecb1a29 datalib: get_admins() - Rewrite to avoid get_users_by_capability()
get_admins() and get_admin() were counting on
get_users_by_capability() returning a role-assignment id to pick the
"primary" admin account. With the get_users_by_capability() rewrite,
we no longer have an RA id to clearly blame for the capability.

So, rewrite get_admins() based on the known-good SQL used in
is_siteadmin().

MDL-12452
2008-01-06 23:24:50 +00:00
martinlanghoff
c92bce4614 accesslib: get_user_by_capability() - Fix last_access handling
We were missing $courseid, which is actually $context->instanceid.

MDL-12452
2008-01-06 23:24:37 +00:00
martinlanghoff
6c9d86b7a6 accesslib: get_user_by_capability() - Move capcheck to has_capability_from_rarc()
This fixes the handling of default roles as "tie breakers" for lower
RAs in conflict, and simplifies the code a lot.

The main loop in get_user_by_capability() runs a simpler state machine
that just collects role assignments (roleid and depth), and handles
pagination.

The complex part of the state machine has moved to
has_capability_from_rarc() which will walk the data structures
collected by get_user_by_capability() for each user.

Having all the complex state handling of $hascap there makes things a
lot easier for pagination and general sanity of
get_user_by_capability().

MDL-12452
2008-01-06 23:24:25 +00:00
martinlanghoff
d2c5b7a9fa accesslib: get_user_by_capability() - Move hidden RA checks to subselect
we don't deal with RAs in the main SELECT -- we deal with _capabilities_
which is an entirely different matter ;-) -- so push the ra.hidden check
into the subselect.

Also, remove ra.hidden from the default list of fields. Hopefully no
callers are using ra.hidden -- if they are, they should be calling
something else, as this function deals with capabilities. So we might
need an audit of callers, to check that noone is expecting ra.hidden
to be there.

MDL-12452
2008-01-06 23:24:14 +00:00
martinlanghoff
a4436c6db8 accesslib: get_user_by_capability() - Handle the complex case
With this commit, we can handle the complex cases with

 - correct pagination, but not very efficient over large datasets

 - mostly-correct application of the override rules

The structure of the code is fairly complex in that we want to do
it without holding all the recs in memory, so we use a small state
machine. We have to handle the complex override rules over 1 or 2
permissions (when $doanything is set) so it all ends up quite complex.

There is one known issue with this code, in cases where the default
role ends up as the decider between 2 conflicting RAs, we fail to
apply it. This will need a bit of reorg of how the loop works.

MDL-12452
2008-01-06 23:23:58 +00:00
martinlanghoff
2d1669b0d5 accesslib: get_user_by_capability() - Simple cases now handle multiple RAs
The "simple" case SQL did not handle multiple enrolments for the same
user correctly -- it would generate multiple rows for those users,
incorrectly.

With this patch we move the join to RA to a subselect where DISTINCT
takes care of things.

MDL-12452
2008-01-06 23:23:46 +00:00