Skip to content

Commit

Permalink
issue #3: define "prevent" capability for student; add missing docblo…
Browse files Browse the repository at this point in the history
…ck in lib.php

The default capability for students will be "prevent", since it will not be usual the use of this plugin for them, it can even lead to misunderstandings (what if the students uses the filter and the teacher doesn't view the text because it has configured other language?)
  • Loading branch information
Julen Pardo committed Apr 7, 2016
1 parent 3f0cea3 commit 450bc1a
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 52 deletions.
15 changes: 6 additions & 9 deletions db/access.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<?php

// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
Expand All @@ -17,13 +16,10 @@

defined('MOODLE_INTERNAL') || die();

/**
* Plugin for Moodle 'Multilingual content' drop down menu.
*
* @package atto_multilang2
* @copyright 2016 onwards Julen Pardo & Mondragon Unibertsitatea
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
// Plugin for Moodle 'Multilingual content' drop down menu.
// @package atto_multilang2
// @copyright 2016 onwards Julen Pardo & Mondragon Unibertsitatea
// @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.

$capabilities = array(
'atto/multilang2:viewlanguagemenu' => array(
Expand All @@ -32,7 +28,8 @@
'archetypes' => array(
'teacher' => CAP_ALLOW,
'manager' => CAP_ALLOW,
'editingteacher' => CAP_ALLOW
'editingteacher' => CAP_ALLOW,
'student' => CAP_PREVENT
),
),
);
Expand Down
94 changes: 51 additions & 43 deletions lib.php
Original file line number Diff line number Diff line change
@@ -1,43 +1,51 @@
<?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/>.
/**
* Atto text editor multilanguage plugin lib.
*
* @package atto_multilang2
* @copyright 2015 onwards Julen Pardo & Mondragon Unibertsitatea
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
/**
* Set parameters for this plugin.
*
* @return array The JSON encoding of the installed languages.
*/
function atto_multilang2_params_for_js() {
$languages = json_encode(get_string_manager()->get_list_of_translations());
$capability = get_capability();

return array('languages' => $languages, 'capability' => $capability);
}

function get_capability() {
global $COURSE, $USER;

$context = context_course::instance($COURSE->id);

return has_capability('atto/multilang2:viewlanguagemenu', $context);
}

<?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/>.

/**
* Atto text editor multilanguage plugin lib.
*
* @package atto_multilang2
* @copyright 2015 onwards Julen Pardo & Mondragon Unibertsitatea
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

defined('MOODLE_INTERNAL') || die();

/**
* Set parameters for this plugin.
*
* @return array The JSON encoding of the installed languages.
*/
function atto_multilang2_params_for_js() {
$languages = json_encode(get_string_manager()->get_list_of_translations());
$capability = get_capability();

return array('languages' => $languages, 'capability' => $capability);
}

/**
* Gets the defined capability for the plugin for the current user, to decide later to show or not to show the plugin.
*
* @return boolean If the user has the capability to see the plugin or not.
*/
function get_capability() {
global $COURSE;

$context = context_course::instance($COURSE->id);

return has_capability('atto/multilang2:viewlanguagemenu', $context);
}

0 comments on commit 450bc1a

Please sign in to comment.