Add teacher privilege
parent
b5ce7c66fc
commit
5926731f31
35
gui.lua
35
gui.lua
|
@ -24,9 +24,19 @@ local function get_group(context)
|
|||
end
|
||||
end
|
||||
|
||||
sfinv.register_page("edu", {
|
||||
sfinv.register_page("classroom:edu", {
|
||||
title = "Classroom",
|
||||
check_perm = function(self, player)
|
||||
return minetest.check_player_privs(player:get_player_name(), { teacher = true })
|
||||
end,
|
||||
is_in_nav = function(self, player, context)
|
||||
return self:check_perm(player)
|
||||
end,
|
||||
get = function(self, player, context)
|
||||
if not self:check_perm(player) then
|
||||
return "label[0,0;Access denied]"
|
||||
end
|
||||
|
||||
local fs = {
|
||||
"tablecolumns[color;text"
|
||||
}
|
||||
|
@ -156,6 +166,11 @@ sfinv.register_page("edu", {
|
|||
return sfinv.make_formspec(player, context, table.concat(fs, ""), false)
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, fields)
|
||||
if not self:check_perm(player) then
|
||||
sfinv.set_page(player, sfinv.get_homepage_name(player))
|
||||
return true
|
||||
end
|
||||
|
||||
if fields.students then
|
||||
local evt = minetest.explode_table_event(fields.students)
|
||||
local i = (evt.row or 0) - 1
|
||||
|
@ -212,3 +227,21 @@ sfinv.register_page("edu", {
|
|||
end
|
||||
end,
|
||||
})
|
||||
|
||||
local function on_grant_revoke(grantee, granter, priv)
|
||||
if priv ~= "teacher" then
|
||||
return
|
||||
end
|
||||
|
||||
local player = minetest.get_player_by_name(grantee)
|
||||
if not player then
|
||||
return
|
||||
end
|
||||
|
||||
minetest.after(0, function()
|
||||
sfinv.set_player_inventory_formspec(player)
|
||||
end)
|
||||
end
|
||||
|
||||
minetest.register_on_priv_grant(on_grant_revoke)
|
||||
minetest.register_on_priv_revoke(on_grant_revoke)
|
||||
|
|
Loading…
Reference in New Issue