Commit Graph

50 Commits

Author SHA1 Message Date
sam marshall 5e72715e4f MDL-71099 Lib: Move new user_fields class from core to core_user
This class would belong more appropriately within the 'user' API
(core_user) instead of within the 'core' API, since it is
directly related to user data.

Since the class has only just been added to Moodle, now is a good
time to move it.
2021-03-25 13:47:23 +00:00
sam marshall 558cc1b85e MDL-45242 Lib: Replace calls to deprecated functions
In all cases changes have been kept to a minimum while not making
the code completely horrible. For example, there are many instances
where it would probably be better to rewrite a query entirely, but
I have not done that (in order to reduce the risk of changes).
2021-03-10 10:57:10 +00:00
Marina Glancy 9cfacff738 MDL-65552 user: escape idnumber and email in table_sql 2021-03-03 23:15:07 +08:00
Mathew May 90117cefb8 MDL-65788 tool_policy: Move accept_policy JS call into an array 2019-07-18 10:47:18 +08:00
Mathew May 25d31d43b7 MDL-65788 tool_policy: Prevent two modals rendering for guests.
With the Guest registration calling policyactions.js the [data-action="view"]
was having two click handlers set on the inital policy modal trgger.
With this commit we state what we want the click event to be set on.
2019-07-14 18:52:27 +08:00
Mathew May 5cac5fa428 MDL-64506 templates: BS2 m-x-x to BS4 mx-x 2019-04-03 19:47:11 +08:00
Mathew May 3f2c68f119 MDL-64506 templates: Move BS2 labels to BS4 badges 2019-04-03 19:34:20 +08:00
Sara Arjona 63be19c543 MDL-65006 policy: avoid loop when no policies need to be agreeded
Avoid an infinite loop when the user has no policies to agreed but
the policyagreed = 0.
2019-03-08 10:01:51 +01:00
Andrew Nicols dfb151b2d9 Merge branch 'MDL-63664-master' of git://github.com/mickhawkins/moodle 2018-10-23 10:42:48 +08:00
Michael Hawkins f6843ac966 MDL-63664 tool_policy: Add support for removal of context users
This issue is a part of the MDL-62560 Epic.
2018-10-23 10:02:58 +08:00
David Mudrák 222c378870 MDL-62309 tool_policy: Amend behaviour of handler's accept() method
When accepting the policies via the sitepolicy handler, only compulsory
policies are to be marked as accepted. Optional policies will be left as
pending. Users must express their consent explicitly for them.

As a side product of the change, unit tests are added for the whole
handler class.
2018-10-22 08:49:36 +02:00
David Mudrák ad5e2135c5 MDL-62309 tool_policy: Improve permission evaluation methods
Please refer to the unit tests for the specification of the expected
behaviour.
2018-10-22 08:49:36 +02:00
David Mudrák 4a742e4f94 MDL-62309 tool_policy: Update user acceptances reports
This adds support for optional policies to the user acceptance reports.
Distinguished are "Pending" acceptances (we did not hear yet) from
"Declined" (user did not agree). The status workflow updated to support
new transitions: pending -> declined and declined -> accepted.
2018-10-22 08:49:36 +02:00
David Mudrák 5348b1eef5 MDL-62309 tool_policy: Optional policies can be declined by the user
For optional policies, we provide a radio selector to let the user
choose the acceptance status on the consent page. For policies displayed
on their own page, we display a link to decline the policy.

The way how we pass the list of policy version ids to index.php has
changed so that we can now not only pass the list of ids, but also the
actual acceptance status (accepted / declined).
2018-10-22 08:49:36 +02:00
David Mudrák faf4222edc MDL-62309 tool_policy: Add api::get_agreement_optional() method
This method allows to quickly check if the given policy version is
marked as optional or compulsory. This will be needed in other places
such as permissions check.
2018-10-22 08:49:36 +02:00
David Mudrák 1617fde9a8 MDL-62309 tool_policy: New API method to decline a policy
Policy can be declined. Optional policies do not need to be accepted to
use the site. But we still want to hear explicitly from the user.
2018-10-22 08:49:36 +02:00
David Mudrák f98cd91a13 MDL-62309 tool_policy: Improve api::is_user_version_accepted() return
The method now returns three-state logic. A bool value true/false is
returned if the user has accepted/rejected the policy, respectively. A
null value is returned if the user did not express their agreement in
either way yet.

This allows to distinguish between "rejected the policy" and "did not
say anything about it yet" cases.
2018-10-22 08:49:36 +02:00
David Mudrák 9011d394ab MDL-62309 tool_policy: Add new field to hold the optional policy flag
The patch adds a new column to the database table to hold the
information if giving agreement to the policy is compulsory or optional.
The flag can be defined via the policy editing form and is displayed at
the policies management screen.

The last modified time merged with the version column at the policies
management screen to save a bit of horizontal space - needed as we
display more information now at the first column.
2018-10-22 08:49:36 +02:00
Eloy Lafuente (stronk7) 659d9fe942 Merge branch 'MDL-63013-master-prioritypolicy' of git://github.com/mudrd8mz/moodle 2018-09-26 23:21:09 +02:00
David Mudrák 362ae1b443 MDL-63013 tool_policy: Change acceptance flow for policies with own page
The idea of the patch is to check the list of policies that are shown
before and on the consent page. If that list contains a policy that is
supposed to be accepted on its own page, the existing flow is
interrupted and the user is redirected to a view.php to display that
particular policy.

The view template for such a policy contains a button for getting the
user agreement. When pressed, the policy is marked as accepted and we
can go to start again.

To make this working during the signup, we need to extend the existing
logic and start tracking which particular policies the visitor accepted
prior reaching the signup form. Similarly, we need to start track which
particular policies were displayed and use that list when evaluating
which policies were unchecked on the consent page.
2018-09-19 09:55:42 +02:00
David Mudrák 23b663ed55 MDL-63013 tool_policy: Policy agreement style can be defined now
The patch introduces a new property of a policy document called
"Agreement style". It allows the admin to define if the policy should be
accepted together with all others on the consent page (legacy and
default behaviour) or on its page before the consent page is reached
(the new optional behaviour).
2018-09-19 09:55:42 +02:00
Mihail Geshoski 2b85015b83 MDL-63109 privacy: Fix the initialisation of the policy acceptance modal 2018-09-18 12:55:35 +08:00
Mihail Geshoski c106d489c5 MDL-62342 privacy: Use singular/plural form in labels 2018-09-03 12:53:19 +08:00
Mihail Geshoski e55e9df388 MDL-62341 privacy: Add link to previous page in viewall policies page 2018-08-13 07:52:09 +08:00
Sara Arjona 7b3a113776 MDL-62852 policy: Display policy audience in the viewall.php page 2018-07-25 10:20:01 +02:00
Sara Arjona 8502f02ae0 MDL-62670 policy: viewall.php must display always all active policies
The viewall.php page is called from the mobile app to display the policies
to the users before agree them. That's why it must display all the active
policies (even for guests), to guarantee the users agree all current
policies from the app.
2018-07-04 12:04:41 +02:00
Marina Glancy 7115c32949 MDL-62493 tool_policy: correct redirection
do not override session->wantsurl
do not redirect guests to user.php, they get an error there
2018-05-25 14:29:40 +08:00
Marina Glancy deaf67147d MDL-62493 tool_policy: allow guests to sign up 2018-05-25 14:29:40 +08:00
Sara Arjona 5e84f521fa MDL-62433 tool_policy: Some minor fixes to Privacy API implementation
- Export files for agreements too.
- Add versionid to the export path to avoid collision if version revision
is not defined.
2018-05-15 14:07:31 +02:00
Andrew Nicols f63745eabd MDL-62433 tool_policy: Adjustments to the data export 2018-05-15 14:07:31 +02:00
Sara Arjona 827c8e98ac MDL-62433 tool_policy: Review privacy provider for adding versions 2018-05-15 14:07:31 +02:00
Sara Arjona 5bf7f59a19 MDL-62418 tool_policy: Redirect always to home when agreed all policies 2018-05-13 21:26:47 +02:00
Sara Arjona 15ed7d938e MDL-62418 tool_policy: Display blocks in Consent page when using clean 2018-05-13 20:42:04 +02:00
Sara Arjona fd7174d03f MDL-62056 policy: Adapt code to avoid travis errors on Github 2018-05-09 08:31:32 +02:00
Jun Pataleta ea083b0a5e Merge branch 'MDL-62062-master' of git://github.com/sarjona/moodle 2018-05-07 17:21:49 +08:00
Sara Arjona 461b1931c0 MDL-62062 tool_policy: Let manager/dpo withdraw consent to policies
The policies can be revoked by clicking the "Agreed [on behalf]" ticks.
A message has been added also to explain users they must contact to
the DPO if they want to withdraw their consent to policies.
2018-05-07 10:11:13 +02:00
Sara Arjona 3d34aa5c29 MDL-62062 tool_policy: Avoid access to consent page after agreeding
Once the policies have been accepted, only users with permission to
revoke them will be able to access again to the user consent page.
2018-05-03 13:59:21 +02:00
Sara Arjona 54659fd14d MDL-62286 tool_policy: Add Policies link to the site footer 2018-05-02 14:20:49 +02:00
Jun Pataleta d11786cee3 Merge branch 'MDL-62162-master' of git://github.com/sarjona/moodle 2018-04-24 10:25:33 +08:00
Sara Arjona 077ebb2a0b MDL-62162 policy: Define context when accessing to viewall.php 2018-04-23 18:29:27 +02:00
Marina Glancy e8cf2ffd61 MDL-61939 tool_policy: usermodified should be realuser
When logged in as another user and accept the policies on somebody else's behalf make sure that
usermodified is recorded as real user
2018-04-23 09:45:26 +08:00
Marina Glancy d5cfbc918f MDL-61864 tool_policy: cancel button when agreeing to policies
Show cancel button during signup only and do not show when user is logged
in and has to accept changed policies

When cancel button is clicked redirect to the site homepage
2018-04-17 14:19:19 +08:00
Marina Glancy 432a90f1ed MDL-61868 tool_policy: export agreements in privacy api
Part of MDL-61864
2018-04-17 14:19:16 +08:00
Sara Arjona 24966a26c7 MDL-61868 tool_policy: Implement privacy API
Part of MDL-61864
2018-04-16 11:30:14 +08:00
Sara Arjona 4e9e2b0a0a MDL-61844 policy: Avoid to accept new policies during current session
Avoid redirection for accepting new policies during the manager user session
when $user->policyagreed=0 and he/she activates the first policy for logged in users.

Part of MDL-61864
2018-04-16 11:30:14 +08:00
Marina Glancy cc3790d0ea MDL-61864 tool_policy: function can_delete_version
review TODOs in code, make sure they are either removed or tracker issues are created
2018-04-16 11:30:13 +08:00
Marina Glancy 673b598109 MDL-61864 tool_policy: coding style fixes 2018-04-16 11:30:13 +08:00
Sara Arjona 6109f2348b MDL-61864 tool_policy: display policies to guests and users 2018-04-16 11:30:13 +08:00
Marina Glancy cf398020d5 MDL-61864 tool_policy: user agreement reports 2018-04-16 11:30:13 +08:00
David Mudrák 3d9571d5f0 MDL-61864 tool_policy: management of the site policies 2018-04-16 11:30:10 +08:00