Moodle PHP Documentation 4.2
Moodle 4.2.8 (Build: 20240610) (2d41ac46f45)
mod_forum\local\managers\capability Class Reference

Capability manager for the forum. More...

Public Member Functions

 __construct (forum_entity $forum, legacy_forum_data_mapper $forumdatamapper, legacy_discussion_data_mapper $discussiondatamapper, legacy_post_data_mapper $postdatamapper)
 Constructor.
 
 can_access_all_groups (stdClass $user)
 Can the user access all groups?
 
 can_access_group (stdClass $user, int $groupid)
 Can the user access the given group?
 
 can_create_discussions (stdClass $user, int $groupid=null)
 Can the user create discussions in this forum?
 
 can_delete_post (stdClass $user, discussion_entity $discussion, post_entity $post, bool $hasreplies=false)
 Can the user delete the post in this discussion?
 
 can_edit_post (stdClass $user, discussion_entity $discussion, post_entity $post)
 Can the user edit the post in this discussion?
 
 can_export_discussions (stdClass $user)
 Can the user export (see portfolios) discussions in this forum?
 
 can_export_forum (stdClass $user)
 Checks whether the user can export the whole forum (discussions and posts).
 
 can_export_post (stdClass $user, post_entity $post)
 Can the user export (see portfolios) the post in this discussion?
 
 can_favourite_discussion (stdClass $user)
 Can the user favourite the discussion.
 
 can_grade (stdClass $grader, stdClass $gradee=null)
 Check whether the supplied grader can grade the gradee.
 
 can_manage_forum (stdClass $user)
 Can the user manage this forum?
 
 can_manage_tags (stdClass $user)
 Can the user manage tags on the site?
 
 can_manually_control_post_read_status (stdClass $user)
 Can the user manually mark posts as read/unread in this forum?
 
 can_move_discussion (stdClass $user, discussion_entity $discussion)
 Can the user move the discussion in this forum?
 
 can_move_discussions (stdClass $user)
 Can the user move discussions in this forum?
 
 can_pin_discussion (stdClass $user, discussion_entity $discussion)
 Is the user pin the discussion?
 
 can_pin_discussions (stdClass $user)
 Can the user pin discussions in this forum?
 
 can_post_in_discussion (stdClass $user, discussion_entity $discussion)
 Can the user post in this discussion?
 
 can_post_to_my_groups (stdClass $user)
 Can the user post to their groups?
 
 can_reply_privately_to_post (stdClass $user, post_entity $post)
 Can the user reply privately to the specified post?
 
 can_reply_to_post (stdClass $user, discussion_entity $discussion, post_entity $post)
 Can the user reply to the post in this discussion?
 
 can_self_enrol (stdClass $user)
 Checks whether the user can self enrol into the course.
 
 can_split_discussions (stdClass $user)
 Can the user split discussions in this forum?
 
 can_split_post (stdClass $user, discussion_entity $discussion, post_entity $post)
 Can the user split the post in this discussion?
 
 can_subscribe_to_discussion (stdClass $user, discussion_entity $discussion)
 Can the user subscribe to the give discussion?
 
 can_subscribe_to_forum (stdClass $user)
 Can the user subscribe to this forum?
 
 can_view_any_private_reply (stdClass $user)
 Whether the user can view any private reply in the forum.
 
 can_view_discussion (stdClass $user, discussion_entity $discussion)
 Can the user view the content of a discussion?
 
 can_view_discussions (stdClass $user)
 Can the user view discussions in this forum?
 
 can_view_hidden_posts (stdClass $user)
 Can the user view hidden posts in this forum?
 
 can_view_participants (stdClass $user, discussion_entity $discussion)
 Can the user view the participants of this discussion?
 
 can_view_post (stdClass $user, discussion_entity $discussion, post_entity $post)
 Can the user view the content of the post in this discussion?
 
 can_view_post_shell (stdClass $user, post_entity $post)
 Can the user view the post at all? In some situations the user can view the shell of a post without being able to view its content.
 
 must_post_before_viewing_discussion (stdClass $user, discussion_entity $discussion)
 Is the user required to post in the discussion before they can view it?
 
 validate_delete_post (stdClass $user, discussion_entity $discussion, post_entity $post, bool $hasreplies=false)
 Verifies is the given user can delete a post.
 

Protected Member Functions

 get_context ()
 Get the context for this capability manager.
 
 get_discussion_record (discussion_entity $discussion)
 Get the legacy discussion record for the given discussion entity.
 
 get_forum ()
 Get the forum entity for this capability manager.
 
 get_forum_record ()
 Get the legacy forum record for this forum.
 
 get_post_record (post_entity $post)
 Get the legacy post record for the given post entity.
 

Protected Attributes

array $canviewpostcache = []
 $canviewpostcache Cache of discussion posts that can be viewed by a user.
 

Detailed Description

Capability manager for the forum.

Defines all the business rules for what a user can and can't do in the forum.

License
http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later

Constructor & Destructor Documentation

◆ __construct()

mod_forum\local\managers\capability::__construct ( forum_entity $forum,
legacy_forum_data_mapper $forumdatamapper,
legacy_discussion_data_mapper $discussiondatamapper,
legacy_post_data_mapper $postdatamapper )

Constructor.

Parameters
forum_entity$forumThe forum entity to manage capabilities for.
legacy_forum_data_mapper$forumdatamapperLegacy forum data mapper
legacy_discussion_data_mapper$discussiondatamapperLegacy discussion data mapper
legacy_post_data_mapper$postdatamapperLegacy post data mapper

Member Function Documentation

◆ can_access_all_groups()

mod_forum\local\managers\capability::can_access_all_groups ( stdClass $user)

Can the user access all groups?

Parameters
stdClass$userThe user to check
Return values
bool

◆ can_access_group()

mod_forum\local\managers\capability::can_access_group ( stdClass $user,
int $groupid )

Can the user access the given group?

Parameters
stdClass$userThe user to check
int$groupidThe id of the group that the forum is set to
Return values
bool

◆ can_create_discussions()

mod_forum\local\managers\capability::can_create_discussions ( stdClass $user,
int $groupid = null )

Can the user create discussions in this forum?

Parameters
stdClass$userThe user to check
int | null$groupidThe current activity group id
Return values
bool

◆ can_delete_post()

mod_forum\local\managers\capability::can_delete_post ( stdClass $user,
discussion_entity $discussion,
post_entity $post,
bool $hasreplies = false )

Can the user delete the post in this discussion?

Parameters
stdClass$userThe user to check
discussion_entity$discussionThe discussion to check
post_entity$postThe post the user wants to delete
bool$hasrepliesWhether the post has replies
Return values
bool

◆ can_edit_post()

mod_forum\local\managers\capability::can_edit_post ( stdClass $user,
discussion_entity $discussion,
post_entity $post )

Can the user edit the post in this discussion?

Parameters
stdClass$userThe user to check
discussion_entity$discussionThe discussion to check
post_entity$postThe post the user wants to edit
Return values
bool

◆ can_export_discussions()

mod_forum\local\managers\capability::can_export_discussions ( stdClass $user)

Can the user export (see portfolios) discussions in this forum?

Parameters
stdClass$userThe user to check
Return values
bool

◆ can_export_forum()

mod_forum\local\managers\capability::can_export_forum ( stdClass $user)

Checks whether the user can export the whole forum (discussions and posts).

Parameters
stdClass$userThe user object.
Return values
boolTrue if the user can export the forum or false otherwise.

◆ can_export_post()

mod_forum\local\managers\capability::can_export_post ( stdClass $user,
post_entity $post )

Can the user export (see portfolios) the post in this discussion?

Parameters
stdClass$userThe user to check
post_entity$postThe post the user wants to export
Return values
bool

◆ can_favourite_discussion()

mod_forum\local\managers\capability::can_favourite_discussion ( stdClass $user)

Can the user favourite the discussion.

Parameters
stdClass$userThe user to check
Return values
bool

◆ can_grade()

mod_forum\local\managers\capability::can_grade ( stdClass $grader,
stdClass $gradee = null )

Check whether the supplied grader can grade the gradee.

Parameters
stdClass$graderThe user grading
stdClass$gradeeThe user being graded
Return values
bool

◆ can_manage_forum()

mod_forum\local\managers\capability::can_manage_forum ( stdClass $user)

Can the user manage this forum?

Parameters
stdClass$userThe user to check
Return values
bool

◆ can_manage_tags()

mod_forum\local\managers\capability::can_manage_tags ( stdClass $user)

Can the user manage tags on the site?

Parameters
stdClass$userThe user to check
Return values
bool

◆ can_manually_control_post_read_status()

mod_forum\local\managers\capability::can_manually_control_post_read_status ( stdClass $user)

Can the user manually mark posts as read/unread in this forum?

Parameters
stdClass$userThe user to check
Return values
bool

◆ can_move_discussion()

mod_forum\local\managers\capability::can_move_discussion ( stdClass $user,
discussion_entity $discussion )

Can the user move the discussion in this forum?

Parameters
stdClass$userThe user to check
discussion_entity$discussionThe discussion to check
Return values
bool

◆ can_move_discussions()

mod_forum\local\managers\capability::can_move_discussions ( stdClass $user)

Can the user move discussions in this forum?

Parameters
stdClass$userThe user to check
Return values
bool

◆ can_pin_discussion()

mod_forum\local\managers\capability::can_pin_discussion ( stdClass $user,
discussion_entity $discussion )

Is the user pin the discussion?

Parameters
stdClass$userThe user to check
discussion_entity$discussionThe discussion to check
Return values
bool

◆ can_pin_discussions()

mod_forum\local\managers\capability::can_pin_discussions ( stdClass $user)

Can the user pin discussions in this forum?

Parameters
stdClass$userThe user to check
Return values
bool

◆ can_post_in_discussion()

mod_forum\local\managers\capability::can_post_in_discussion ( stdClass $user,
discussion_entity $discussion )

Can the user post in this discussion?

Parameters
stdClass$userThe user to check
discussion_entity$discussionThe discussion to check
Return values
bool

◆ can_post_to_my_groups()

mod_forum\local\managers\capability::can_post_to_my_groups ( stdClass $user)

Can the user post to their groups?

Parameters
stdClass$userThe user to check
Return values
bool

◆ can_reply_privately_to_post()

mod_forum\local\managers\capability::can_reply_privately_to_post ( stdClass $user,
post_entity $post )

Can the user reply privately to the specified post?

Parameters
stdClass$userThe user to check
post_entity$postThe post the user wants to reply to
Return values
bool

◆ can_reply_to_post()

mod_forum\local\managers\capability::can_reply_to_post ( stdClass $user,
discussion_entity $discussion,
post_entity $post )

Can the user reply to the post in this discussion?

Parameters
stdClass$userThe user to check
discussion_entity$discussionThe discussion to check
post_entity$postThe post the user wants to reply to
Return values
bool

◆ can_self_enrol()

mod_forum\local\managers\capability::can_self_enrol ( stdClass $user)

Checks whether the user can self enrol into the course.

Mimics the checks on the add button in deprecatedlib/forum_print_latest_discussions

Parameters
stdClass$user
Return values
bool

◆ can_split_discussions()

mod_forum\local\managers\capability::can_split_discussions ( stdClass $user)

Can the user split discussions in this forum?

Parameters
stdClass$userThe user to check
Return values
bool

◆ can_split_post()

mod_forum\local\managers\capability::can_split_post ( stdClass $user,
discussion_entity $discussion,
post_entity $post )

Can the user split the post in this discussion?

Parameters
stdClass$userThe user to check
discussion_entity$discussionThe discussion to check
post_entity$postThe post the user wants to split
Return values
bool

◆ can_subscribe_to_discussion()

mod_forum\local\managers\capability::can_subscribe_to_discussion ( stdClass $user,
discussion_entity $discussion )

Can the user subscribe to the give discussion?

Parameters
stdClass$userThe user to check
discussion_entity$discussionThe discussion to check
Return values
bool

◆ can_subscribe_to_forum()

mod_forum\local\managers\capability::can_subscribe_to_forum ( stdClass $user)

Can the user subscribe to this forum?

Parameters
stdClass$userThe user to check
Return values
bool

◆ can_view_any_private_reply()

mod_forum\local\managers\capability::can_view_any_private_reply ( stdClass $user)

Whether the user can view any private reply in the forum.

Parameters
stdClass$userThe user to check
Return values
bool

◆ can_view_discussion()

mod_forum\local\managers\capability::can_view_discussion ( stdClass $user,
discussion_entity $discussion )

Can the user view the content of a discussion?

Parameters
stdClass$userThe user to check
discussion_entity$discussionThe discussion to check
Return values
bool

◆ can_view_discussions()

mod_forum\local\managers\capability::can_view_discussions ( stdClass $user)

Can the user view discussions in this forum?

Parameters
stdClass$userThe user to check
Return values
bool

◆ can_view_hidden_posts()

mod_forum\local\managers\capability::can_view_hidden_posts ( stdClass $user)

Can the user view hidden posts in this forum?

Parameters
stdClass$userThe user to check
Return values
bool

◆ can_view_participants()

mod_forum\local\managers\capability::can_view_participants ( stdClass $user,
discussion_entity $discussion )

Can the user view the participants of this discussion?

Parameters
stdClass$userThe user to check
discussion_entity$discussionThe discussion to check
Return values
bool

◆ can_view_post()

mod_forum\local\managers\capability::can_view_post ( stdClass $user,
discussion_entity $discussion,
post_entity $post )

Can the user view the content of the post in this discussion?

Parameters
stdClass$userThe user to check
discussion_entity$discussionThe discussion to check
post_entity$postThe post the user wants to view
Return values
bool

◆ can_view_post_shell()

mod_forum\local\managers\capability::can_view_post_shell ( stdClass $user,
post_entity $post )

Can the user view the post at all? In some situations the user can view the shell of a post without being able to view its content.

Parameters
stdClass$userThe user to check
post_entity$postThe post the user wants to view
Return values
bool

◆ get_context()

mod_forum\local\managers\capability::get_context ( )
protected

Get the context for this capability manager.

Return values
context

◆ get_discussion_record()

mod_forum\local\managers\capability::get_discussion_record ( discussion_entity $discussion)
protected

Get the legacy discussion record for the given discussion entity.

Parameters
discussion_entity$discussionThe discussion to convert
Return values
stdClass

◆ get_forum()

mod_forum\local\managers\capability::get_forum ( )
protected

Get the forum entity for this capability manager.

Return values
forum_entity

◆ get_forum_record()

mod_forum\local\managers\capability::get_forum_record ( )
protected

Get the legacy forum record for this forum.

Return values
stdClass

◆ get_post_record()

mod_forum\local\managers\capability::get_post_record ( post_entity $post)
protected

Get the legacy post record for the given post entity.

Parameters
post_entity$postThe post to convert
Return values
stdClass

◆ must_post_before_viewing_discussion()

mod_forum\local\managers\capability::must_post_before_viewing_discussion ( stdClass $user,
discussion_entity $discussion )

Is the user required to post in the discussion before they can view it?

Parameters
stdClass$userThe user to check
discussion_entity$discussionThe discussion to check
Return values
bool

◆ validate_delete_post()

mod_forum\local\managers\capability::validate_delete_post ( stdClass $user,
discussion_entity $discussion,
post_entity $post,
bool $hasreplies = false )

Verifies is the given user can delete a post.

Parameters
stdClass$userThe user to check
discussion_entity$discussionThe discussion to check
post_entity$postThe post the user wants to delete
bool$hasrepliesWhether the post has replies
Return values
bool
Exceptions
moodle_exception

The documentation for this class was generated from the following file: