Php 使用moodle核心api函数分配角色
我正在moodle中创建一个块,用于将特定的系统角色分配给用户。不确定这样做的最佳方式 我知道您可以从站点管理>用户>权限>分配系统角色中分配角色,但我的区块需要在自定义表中执行其他操作。。我已经完成了在自定义表中创建记录的部分,但是这个系统角色是剩下的唯一一项..并且不确定如何做 有人能告诉我怎么做吗(使用moodle core api(函数)分配系统角色) 或者,如果在角色分配表中添加记录是个好主意。。手动使用数据库查询?它会起作用吗Php 使用moodle核心api函数分配角色,php,moodle,moodle-api,Php,Moodle,Moodle Api,我正在moodle中创建一个块,用于将特定的系统角色分配给用户。不确定这样做的最佳方式 我知道您可以从站点管理>用户>权限>分配系统角色中分配角色,但我的区块需要在自定义表中执行其他操作。。我已经完成了在自定义表中创建记录的部分,但是这个系统角色是剩下的唯一一项..并且不确定如何做 有人能告诉我怎么做吗(使用moodle core api(函数)分配系统角色) 或者,如果在角色分配表中添加记录是个好主意。。手动使用数据库查询?它会起作用吗 $context = context_system::i
$context = context_system::instance();
role_assign($roleid, $userid, $context->id);
不要直接更新DB表,因为这不会触发角色更改的事件处理程序(或清除相关缓存等)
不要直接更新DB表,因为这不会触发角色更改的事件处理程序(或清除相关缓存等)。您可以在插件中使用该方法,对于特定课程,该事件将在角色分配给用户时触发
public static function my_plugin_role_assigned(core\event\role_assigned $enrolment_data){
global $DB;
//strange var name, better change it
$enrolment_data_data = $enrolment_data->get_data();
$snapshotid = $enrolment_data->get_data()['other']['id'];
$snapshot = $enrolment_data->get_record_snapshot('role_assignments', $snapshotid);
$roleid = $snapshot->roleid;
$rolename = $DB->get_records_sql("SELECT shortname from {role} WHERE id = ?", array($roleid));
$rolename = array_pop($rolename);
$rolename = $rolename->shortname;
if($rolename == 'editingteacher'){
//My stuff
}
}
您可以在插件中创建该方法,该事件将在为特定课程分配给用户的角色时触发
public static function my_plugin_role_assigned(core\event\role_assigned $enrolment_data){
global $DB;
//strange var name, better change it
$enrolment_data_data = $enrolment_data->get_data();
$snapshotid = $enrolment_data->get_data()['other']['id'];
$snapshot = $enrolment_data->get_record_snapshot('role_assignments', $snapshotid);
$roleid = $snapshot->roleid;
$rolename = $DB->get_records_sql("SELECT shortname from {role} WHERE id = ?", array($roleid));
$rolename = array_pop($rolename);
$rolename = $rolename->shortname;
if($rolename == 'editingteacher'){
//My stuff
}
}
嗨@davosmith谢谢你。。是的,它很管用。。你能不能也建议一个网站,我可以找到这些类型的核心功能。ThanksHi@davosmith谢谢你。。是的,它很管用。。你能不能也建议一个网站,我可以找到这些类型的核心功能。谢谢你在moodle文档中找到这个方法了吗?角色分配是否接受相同的参数?您在moodle文档中的何处找到此方法?角色分配是否接受相同的参数?