Add teacher privilege
parent
b5ce7c66fc
commit
5926731f31
35
gui.lua
35
gui.lua
|
@ -24,9 +24,19 @@ local function get_group(context)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
sfinv.register_page("edu", {
|
sfinv.register_page("classroom:edu", {
|
||||||
title = "Classroom",
|
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)
|
get = function(self, player, context)
|
||||||
|
if not self:check_perm(player) then
|
||||||
|
return "label[0,0;Access denied]"
|
||||||
|
end
|
||||||
|
|
||||||
local fs = {
|
local fs = {
|
||||||
"tablecolumns[color;text"
|
"tablecolumns[color;text"
|
||||||
}
|
}
|
||||||
|
@ -156,6 +166,11 @@ sfinv.register_page("edu", {
|
||||||
return sfinv.make_formspec(player, context, table.concat(fs, ""), false)
|
return sfinv.make_formspec(player, context, table.concat(fs, ""), false)
|
||||||
end,
|
end,
|
||||||
on_player_receive_fields = function(self, player, context, fields)
|
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
|
if fields.students then
|
||||||
local evt = minetest.explode_table_event(fields.students)
|
local evt = minetest.explode_table_event(fields.students)
|
||||||
local i = (evt.row or 0) - 1
|
local i = (evt.row or 0) - 1
|
||||||
|
@ -212,3 +227,21 @@ sfinv.register_page("edu", {
|
||||||
end
|
end
|
||||||
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)
|
||||||
|
|
4
init.lua
4
init.lua
|
@ -3,3 +3,7 @@ classroom = {}
|
||||||
dofile(minetest.get_modpath("classroom") .. "/api.lua")
|
dofile(minetest.get_modpath("classroom") .. "/api.lua")
|
||||||
dofile(minetest.get_modpath("classroom") .. "/gui.lua")
|
dofile(minetest.get_modpath("classroom") .. "/gui.lua")
|
||||||
dofile(minetest.get_modpath("classroom") .. "/actions.lua")
|
dofile(minetest.get_modpath("classroom") .. "/actions.lua")
|
||||||
|
|
||||||
|
minetest.register_privilege("teacher", {
|
||||||
|
give_to_singleplayer = false
|
||||||
|
})
|
||||||
|
|
Loading…
Reference in New Issue