Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
integration
prechecker
Commits
6d242b28
Commit
6d242b28
authored
Oct 09, 2017
by
John Ehringer
Committed by
Mark Nelson
Oct 09, 2017
Browse files
MDL-45730 core: Adding events to user profile field and categories CRUD.
parent
d8e9a23c
Changes
8
Hide whitespace changes
Inline
Side-by-side
lang/en/moodle.php
View file @
6d242b28
...
...
@@ -771,6 +771,12 @@ $string['eventuserloggedout'] = 'User logged out';
$string
[
'eventuserpasswordupdated'
]
=
'User password updated'
;
$string
[
'eventuserprofileviewed'
]
=
'User profile viewed'
;
$string
[
'eventuserupdated'
]
=
'User updated'
;
$string
[
'eventuserinfofieldcreated'
]
=
'User profile field created'
;
$string
[
'eventuserinfofieldupdated'
]
=
'User profile field updated'
;
$string
[
'eventuserinfofielddeleted'
]
=
'User profile field deleted'
;
$string
[
'eventuserinfocategorycreated'
]
=
'User profile field category created'
;
$string
[
'eventuserinfocategoryupdated'
]
=
'User profile field category updated'
;
$string
[
'eventuserinfocategorydeleted'
]
=
'User profile field category deleted'
;
$string
[
'everybody'
]
=
'Everybody'
;
$string
[
'executeat'
]
=
'Execute at'
;
$string
[
'existing'
]
=
'Existing'
;
...
...
lib/classes/event/user_info_category_created.php
0 → 100644
View file @
6d242b28
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* User profile field created event.
*
* @package core
* @copyright 2017 Web Courseworks, Ltd. {@link http://www.webcourseworks.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace
core\event
;
defined
(
'MOODLE_INTERNAL'
)
||
die
();
/**
* User profile info category created event.
*
* @property-read array $other {
* Extra information about event.
*
* - string name: the name of the field.
* }
*
* @package core
* @copyright 2017 Web Courseworks, Ltd. {@link http://www.webcourseworks.com}
* @since Moodle 3.4
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class
user_info_category_created
extends
base
{
/**
* Initialise the event data.
*/
protected
function
init
()
{
$this
->
data
[
'objecttable'
]
=
'user_info_category'
;
$this
->
data
[
'crud'
]
=
'c'
;
$this
->
data
[
'edulevel'
]
=
self
::
LEVEL_OTHER
;
}
/**
* Creates an event from a profile info category.
*
* @since Moodle 3.4
* @param \stdClass $category A sna[pshot of the created category.
* @return \core\event\base
*/
public
static
function
create_from_category
(
$category
)
{
$event
=
self
::
create
(
array
(
'objectid'
=>
$category
->
id
,
'context'
=>
\
context_system
::
instance
(),
'other'
=>
array
(
'name'
=>
$category
->
name
,
)
));
$event
->
add_record_snapshot
(
'user_info_category'
,
$category
);
return
$event
;
}
/**
* Returns localised event name.
*
* @return string
*/
public
static
function
get_name
()
{
return
get_string
(
'eventuserinfocategorycreated'
);
}
/**
* Returns non-localised event description with id's for admin use only.
*
* @return string
*/
public
function
get_description
()
{
$name
=
s
(
$this
->
other
[
'name'
]);
return
"The user with id '
$this->userid
' created the user profile field category '
$name
' with id '
$this->objectid
'."
;
}
/**
* Returns relevant URL.
*
* @return \moodle_url
*/
public
function
get_url
()
{
return
new
\
moodle_url
(
'/user/profile/index.php'
,
array
(
'action'
=>
'editcategory'
,
'id'
=>
$this
->
objectid
));
}
/**
* Custom validation.
*
* @throws \coding_exception
* @return void
*/
protected
function
validate_data
()
{
parent
::
validate_data
();
if
(
!
isset
(
$this
->
other
[
'name'
]))
{
throw
new
\
coding_exception
(
'The \'name\' value must be set in other.'
);
}
}
/**
* Get the backup/restore table mapping for this event.
*
* @return string
*/
public
static
function
get_objectid_mapping
()
{
return
base
::
NOT_MAPPED
;
}
}
lib/classes/event/user_info_category_deleted.php
0 → 100644
View file @
6d242b28
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* User profile field deleted event.
*
* @package core
* @copyright 2017 Web Courseworks, Ltd. {@link http://www.webcourseworks.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace
core\event
;
defined
(
'MOODLE_INTERNAL'
)
||
die
();
/**
* User deleted event class.
*
* @property-read array $other {
* Extra information about event.
*
* - string name: the name of the field.
* }
*
* @package core
* @copyright 2017 Web Courseworks, Ltd. {@link http://www.webcourseworks.com}
* @since Moodle 3.4
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class
user_info_category_deleted
extends
base
{
/**
* Initialise required event data properties.
*/
protected
function
init
()
{
$this
->
data
[
'objecttable'
]
=
'user_info_category'
;
$this
->
data
[
'crud'
]
=
'd'
;
$this
->
data
[
'edulevel'
]
=
self
::
LEVEL_OTHER
;
}
/**
* Creates an event from a profile info category.
*
* @since Moodle 3.4
* @param \stdClass $category A snapshot of the deleted category.
* @return \core\event\base
*/
public
static
function
create_from_category
(
$category
)
{
$event
=
self
::
create
(
array
(
'objectid'
=>
$category
->
id
,
'context'
=>
\
context_system
::
instance
(),
'other'
=>
array
(
'name'
=>
$category
->
name
,
)
));
$event
->
add_record_snapshot
(
'user_info_category'
,
$category
);
return
$event
;
}
/**
* Returns localised event name.
*
* @return string
*/
public
static
function
get_name
()
{
return
get_string
(
'eventuserinfocategorydeleted'
);
}
/**
* Returns non-localised event description with id's for admin use only.
*
* @return string
*/
public
function
get_description
()
{
$name
=
s
(
$this
->
other
[
'name'
]);
return
"The user with id '
$this->userid
' deleted the user profile field category '
$name
' with id '
$this->objectid
'."
;
}
/**
* Custom validation.
*
* @throws \coding_exception
* @return void
*/
protected
function
validate_data
()
{
parent
::
validate_data
();
if
(
!
isset
(
$this
->
other
[
'name'
]))
{
throw
new
\
coding_exception
(
'The \'name\' value must be set in other.'
);
}
}
/**
* Get the backup/restore table mapping for this event.
*
* @return string
*/
public
static
function
get_objectid_mapping
()
{
return
base
::
NOT_MAPPED
;
}
}
\ No newline at end of file
lib/classes/event/user_info_category_updated.php
0 → 100644
View file @
6d242b28
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* User profile field updated event.
*
* @package core
* @copyright 2017 Web Courseworks, Ltd. {@link http://www.webcourseworks.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace
core\event
;
defined
(
'MOODLE_INTERNAL'
)
||
die
();
/**
* Event when user profile is updated.
*
* @property-read array $other {
* Extra information about event.
*
* - string name: the name of the field.
* }
*
* @package core
* @copyright 2017 Web Courseworks, Ltd. {@link http://www.webcourseworks.com}
* @since Moodle 3.4
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class
user_info_category_updated
extends
base
{
/**
* Initialise the event data.
*/
protected
function
init
()
{
$this
->
data
[
'objecttable'
]
=
'user_info_category'
;
$this
->
data
[
'crud'
]
=
'u'
;
$this
->
data
[
'edulevel'
]
=
self
::
LEVEL_OTHER
;
}
/**
* Creates an event from a profile info category.
*
* @since Moodle 3.4
* @param \stdClass $category A snapshot of the updated category.
* @return \core\event\base
*/
public
static
function
create_from_category
(
$category
)
{
$event
=
self
::
create
(
array
(
'objectid'
=>
$category
->
id
,
'context'
=>
\
context_system
::
instance
(),
'other'
=>
array
(
'name'
=>
$category
->
name
,
)
));
$event
->
add_record_snapshot
(
'user_info_category'
,
$category
);
return
$event
;
}
/**
* Returns localised event name.
*
* @return string
*/
public
static
function
get_name
()
{
return
get_string
(
'eventuserinfocategoryupdated'
);
}
/**
* Returns non-localised event description with id's for admin use only.
*
* @return string
*/
public
function
get_description
()
{
$name
=
s
(
$this
->
other
[
'name'
]);
return
"The user with id '
$this->userid
' updated the user profile field category '
$name
' with id '
$this->objectid
'."
;
}
/**
* Returns relevant URL.
*
* @return \moodle_url
*/
public
function
get_url
()
{
return
new
\
moodle_url
(
'/user/profile/index.php'
,
array
(
'action'
=>
'editcategory'
,
'id'
=>
$this
->
objectid
));
}
/**
* Custom validation.
*
* @throws \coding_exception
* @return void
*/
protected
function
validate_data
()
{
parent
::
validate_data
();
if
(
!
isset
(
$this
->
other
[
'name'
]))
{
throw
new
\
coding_exception
(
'The \'name\' value must be set in other.'
);
}
}
/**
* Get the backup/restore table mapping for this event.
*
* @return string
*/
public
static
function
get_objectid_mapping
()
{
return
base
::
NOT_MAPPED
;
}
}
lib/classes/event/user_info_field_created.php
0 → 100644
View file @
6d242b28
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* User profile field created event.
*
* @package core
* @copyright 2017 Web Courseworks, Ltd. {@link http://www.webcourseworks.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace
core\event
;
defined
(
'MOODLE_INTERNAL'
)
||
die
();
/**
* User profile info field created event.
*
* @property-read array $other {
* Extra information about event.
*
* - string shortname: the shortname of the field.
* - string name: the name of the field.
* - string datatype: the data type of the field.
* }
*
* @package core
* @copyright 2017 Web Courseworks, Ltd. {@link http://www.webcourseworks.com}
* @since Moodle 3.4
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class
user_info_field_created
extends
base
{
/**
* Initialise the event data.
*/
protected
function
init
()
{
$this
->
data
[
'objecttable'
]
=
'user_info_field'
;
$this
->
data
[
'crud'
]
=
'c'
;
$this
->
data
[
'edulevel'
]
=
self
::
LEVEL_OTHER
;
}
/**
* Creates an event from a profile field.
*
* @since Moodle 3.4
* @param \stdClass $field A snapshot of the created field.
* @return \core\event\base
*/
public
static
function
create_from_field
(
$field
)
{
$event
=
self
::
create
(
array
(
'objectid'
=>
$field
->
id
,
'context'
=>
\
context_system
::
instance
(),
'other'
=>
array
(
'shortname'
=>
$field
->
shortname
,
'name'
=>
$field
->
name
,
'datatype'
=>
$field
->
datatype
,
)
));
$event
->
add_record_snapshot
(
'user_info_field'
,
$field
);
return
$event
;
}
/**
* Returns localised event name.
*
* @return string
*/
public
static
function
get_name
()
{
return
get_string
(
'eventuserinfofieldcreated'
);
}
/**
* Returns non-localised event description with id's for admin use only.
*
* @return string
*/
public
function
get_description
()
{
$name
=
s
(
$this
->
other
[
'name'
]);
return
"The user with id '
$this->userid
' created the user profile field '
$name
' with id '
$this->objectid
'."
;
}
/**
* Returns relevant URL.
*
* @return \moodle_url
*/
public
function
get_url
()
{
return
new
\
moodle_url
(
'/user/profile/index.php'
,
array
(
'action'
=>
'editfield'
,
'id'
=>
$this
->
objectid
,
'datatype'
=>
$this
->
other
[
'datatype'
]
));
}
/**
* Custom validation.
*
* @throws \coding_exception
* @return void
*/
protected
function
validate_data
()
{
parent
::
validate_data
();
if
(
!
isset
(
$this
->
other
[
'shortname'
]))
{
throw
new
\
coding_exception
(
'The \'shortname\' value must be set in other.'
);
}
if
(
!
isset
(
$this
->
other
[
'name'
]))
{
throw
new
\
coding_exception
(
'The \'name\' value must be set in other.'
);
}
if
(
!
isset
(
$this
->
other
[
'datatype'
]))
{
throw
new
\
coding_exception
(
'The \'datatype\' value must be set in other.'
);
}
}
/**
* Get the backup/restore table mapping for this event.
*
* @return string
*/
public
static
function
get_objectid_mapping
()
{
return
base
::
NOT_MAPPED
;
}
}
lib/classes/event/user_info_field_deleted.php
0 → 100644
View file @
6d242b28
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* User profile info field deleted event.
*
* @package core
* @copyright 2017 Web Courseworks, Ltd. {@link http://www.webcourseworks.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace
core\event
;
defined
(
'MOODLE_INTERNAL'
)
||
die
();
/**
* User profile info field deleted event.
*
* @property-read array $other {
* Extra information about event.
*
* - string shortname: the shortname of the field.
* - string name: the name of the field.
* - string datatype: the data type of the field.
* }
*
* @package core
* @copyright 2017 Web Courseworks, Ltd. {@link http://www.webcourseworks.com}
* @since Moodle 3.4
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class
user_info_field_deleted
extends
base
{
/**
* Initialise required event data properties.
*/
protected
function
init
()
{
$this
->
data
[
'objecttable'
]
=
'user_info_field'
;
$this
->
data
[
'crud'
]
=
'd'
;
$this
->
data
[
'edulevel'
]
=
self
::
LEVEL_OTHER
;
}
/**
* Creates an event from a profile field.
*
* @since Moodle 3.4
* @param \stdClass $field A snapshot of the deleted field.
* @return \core\event\base
*/
public
static
function
create_from_field
(
$field
)
{
$event
=
self
::
create
(
array
(
'objectid'
=>
$field
->
id
,
'context'
=>
\
context_system
::
instance
(),
'other'
=>
array
(
'shortname'
=>
$field
->
shortname
,
'name'
=>
$field
->
name
,
'datatype'
=>
$field
->
datatype
,
)
));
$event
->
add_record_snapshot
(
'user_info_field'
,
$field
);
return
$event
;
}
/**
* Returns localised event name.
*
* @return string
*/
public
static
function
get_name
()
{
return
get_string
(
'eventuserinfofielddeleted'
);
}
/**
* Returns non-localised event description with id's for admin use only.
*
* @return string