beginning to reimplement policy code
This commit is contained in:
@ -275,6 +275,42 @@ function modpol.orgs:list_member()
|
|||||||
return str
|
return str
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- ====================================
|
||||||
|
-- adds a new policy to the policy table
|
||||||
|
-- must define the policy type, process associated with it, and whether the request must be made by an org member
|
||||||
|
function modpol.orgs:set_policy(policy_type, process, must_be_member)
|
||||||
|
local new_policy = {
|
||||||
|
process = process,
|
||||||
|
must_be_member = must_be_member
|
||||||
|
}
|
||||||
|
self.policies[policy_type] = policy
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
-- ================================
|
||||||
|
--
|
||||||
|
function modpol.orgs:create_process(request_id)
|
||||||
|
local new_process = {
|
||||||
|
object = "I am a process",
|
||||||
|
request_id = request_id
|
||||||
|
}
|
||||||
|
|
||||||
|
-- linear search for empty process slots (lazy deletion)
|
||||||
|
for k, v in ipairs(self.processes) do
|
||||||
|
if v == 'deleted' then
|
||||||
|
local empty_index = k
|
||||||
|
break
|
||||||
|
do
|
||||||
|
end
|
||||||
|
|
||||||
|
-- attempts to fill empty spots in list, otherwise appends to end
|
||||||
|
if empty_index then
|
||||||
|
self.processes[index] = new_process
|
||||||
|
else
|
||||||
|
table.insert(self.processes, new_process)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- ===========================
|
-- ===========================
|
||||||
-- compares to requests to see if they are identical
|
-- compares to requests to see if they are identical
|
||||||
function modpol.orgs.comp_req(req1, req2)
|
function modpol.orgs.comp_req(req1, req2)
|
||||||
@ -303,7 +339,8 @@ function modpol.orgs:make_request(request)
|
|||||||
modpol.ocutil.log("Error: request type is invalid")
|
modpol.ocutil.log("Error: request type is invalid")
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- num_params should equal zero at the end if request.params matches the num of params for that type
|
||||||
for k, v in ipairs(request.params) do
|
for k, v in ipairs(request.params) do
|
||||||
num_params = num_params - 1
|
num_params = num_params - 1
|
||||||
end
|
end
|
||||||
@ -321,6 +358,11 @@ function modpol.orgs:make_request(request)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local requested_policy = self.policies[request.type]
|
||||||
|
if requested_policy then
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
-- use lazy deletion here, not very clean
|
-- use lazy deletion here, not very clean
|
||||||
-- table.insert(self.requests, request)
|
-- table.insert(self.requests, request)
|
||||||
self.request_count = self.request_count + 1
|
self.request_count = self.request_count + 1
|
||||||
|
Reference in New Issue
Block a user