added support for making requests to an org (first step of processes)
This commit is contained in:
		| @@ -13,12 +13,20 @@ function temp_org() | ||||
|         name = nil, | ||||
|         policies = {}, | ||||
|         processes = {}, | ||||
|         requests = {}, | ||||
|         members = {}, | ||||
|         parent = nil, | ||||
|         children = {} | ||||
|     } | ||||
| end | ||||
|  | ||||
| modpol.orgs.request_params = { | ||||
|     add_org = 1, | ||||
|     delete = 0, | ||||
|     add_member = 1, | ||||
|     remove_member = 1 | ||||
| } | ||||
|  | ||||
| -- ================================================== | ||||
| -- returns org when given its id or name | ||||
| function modpol.orgs.get_org(arg) | ||||
| @@ -249,3 +257,43 @@ function modpol.orgs:list_member() | ||||
|     end | ||||
|     return str | ||||
| end | ||||
|  | ||||
| -- =========================== | ||||
| -- compares to requests to see if they are identical | ||||
| function modpol.orgs.comp_req(req1, req2) | ||||
|     if req1.type ~= req2.type then | ||||
|         return false | ||||
|     else | ||||
|         for k, v in ipairs(req1.params) do | ||||
|             if v ~= req2.params[k] then | ||||
|                 return false | ||||
|             end | ||||
|         end | ||||
|     end | ||||
|     return true | ||||
| end | ||||
|  | ||||
| -- ================================ | ||||
| -- tries to make a request to the org | ||||
| function modpol.orgs:make_request(request) | ||||
|     -- makes sure the request has the valid number of parameters | ||||
|     local num_params = modpol.orgs.request_params[request.type] | ||||
|  | ||||
|     if num_params == nil then return false end | ||||
|     | ||||
|     for k, v in ipairs(request.params) do | ||||
|         num_params = num_params - 1 | ||||
|     end  | ||||
|     if num_params ~= 0 then return false end | ||||
|  | ||||
|     -- checking to see if identical request already exists | ||||
|     for k, v in ipairs(self.requests) do | ||||
|         if self.comp_req(request, v) == true then | ||||
|             return false | ||||
|         end | ||||
|     end | ||||
|  | ||||
|     table.insert(self.requests, request) | ||||
|     return true | ||||
|  | ||||
| end | ||||
		Reference in New Issue
	
	Block a user