diff options
author | Ted Trask <ttrask01@yahoo.com> | 2010-07-01 13:11:26 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2010-07-01 13:11:26 +0000 |
commit | 9bd3b05baf759a43c463e7e3dc806e33b5f1d0ed (patch) | |
tree | 7f5ad061c86674a88318cc6549ba5d3cfda57f0e | |
parent | 2536d0c904364e560b5fc2c4ab0460739426b274 (diff) | |
download | acf-did-9bd3b05baf759a43c463e7e3dc806e33b5f1d0ed.tar.bz2 acf-did-9bd3b05baf759a43c463e7e3dc806e33b5f1d0ed.tar.xz |
Added requestdid function.
-rw-r--r-- | did-controller.lua | 4 | ||||
-rw-r--r-- | did-html.lsp | 9 | ||||
-rw-r--r-- | did-model.lua | 22 | ||||
-rw-r--r-- | did.roles | 2 |
4 files changed, 35 insertions, 2 deletions
diff --git a/did-controller.lua b/did-controller.lua index 9d631a9..6797ac8 100644 --- a/did-controller.lua +++ b/did-controller.lua @@ -137,3 +137,7 @@ function editrolepermissions(self) return self.model:setrolepermissions(value) end, self.clientdata, "Save", "Edit Role Permissions", "Role permissions set") end + +function requestdid(self) + return self:redirect_to_referrer(self.model.requestdid(self, sessiondata.userinfo.userid)) +end diff --git a/did-html.lsp b/did-html.lsp index 08adb01..5918fa3 100644 --- a/did-html.lsp +++ b/did-html.lsp @@ -22,7 +22,7 @@ end %> </DL> <% end %> -<% displaycommandresults({"editdefinition", "deletedefinition", "publish", "publishall"}, session) %> +<% displaycommandresults({"editdefinition", "deletedefinition", "publish", "publishall", "requestdid"}, session) %> <% if data.value.did.value ~= "" or (data.value.extension and data.value.extension.value ~= "") or data.value.description.value ~= "" or data.value.identification.value ~= "" or data.value.department.value ~= "" then %> <H2>Search Description</H2> @@ -101,4 +101,11 @@ end <DD><input class="submit" type="submit" value="Publish"></DD> </form> <% end %> + +<% if viewlibrary.check_permission("requestdid") then %> +<form action="<%= html.html_escape(page_info.script .. page_info.prefix .. page_info.controller .. "/requestdid") %>"> +<DT>Request a new DID</DT> +<DD><input class="submit" type="submit" value="Request"></DD> +</form> +<% end %> </DL> diff --git a/did-model.lua b/did-model.lua index 0e2fb81..9a03bfb 100644 --- a/did-model.lua +++ b/did-model.lua @@ -1354,3 +1354,25 @@ function setrolepermissions(self, rolepermissions) end return rolepermissions end + +function requestdid(self, userid) + local errtxt + local result = "" + local res, err = pcall(function() + local connected = databaseconnect(DatabaseUser) + local defs = listdefinitions(nil, nil, "Available") + if #defs == 0 then + errtxt = "No DIDs available" + else + adduserpermission(self, userid, defs[1].did) + defs[1].description = "Reserved for "..userid + updatedefinitionentry(defs[1]) + result = "Assigned new DID "..defs[1].did + end + if connected then databasedisconnect() end + end) + if not res and err then + errtxt = err + end + return cfe({ value=result, errtxt=errtxt, label="Result of Request DID" }) +end @@ -1,3 +1,3 @@ USER=did:searchdefinitions,did:searchdefinitionlist,did:listdefinitions,did:listunuseddefinitions,did:listuseddefinitions,did:editdefinition,did:assigndefinition,did:newdefinition,did:viewactivitylog EXPERT=did:publish,did:publishall,did:status,did:createdatabase,did:createdefinition,did:deletedefinition -ADMIN=did:searchdefinitions,did:searchdefinitionlist,did:listdefinitions,did:listunuseddefinitions,did:listuseddefinitions,did:editdefinition,did:assigndefinition,did:newdefinition,did:publish,did:publishall,did:status,did:createdatabase,did:createdefinition,did:deletedefinition,did:viewactivitylog,did:listpermissions,did:edituserpermissions,did:editrolepermissions +ADMIN=did:searchdefinitions,did:searchdefinitionlist,did:listdefinitions,did:listunuseddefinitions,did:listuseddefinitions,did:editdefinition,did:assigndefinition,did:newdefinition,did:publish,did:publishall,did:status,did:createdatabase,did:createdefinition,did:deletedefinition,did:viewactivitylog,did:listpermissions,did:edituserpermissions,did:editrolepermissions,did:requestdid |