summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2010-07-01 13:11:26 +0000
committerTed Trask <ttrask01@yahoo.com>2010-07-01 13:11:26 +0000
commit9bd3b05baf759a43c463e7e3dc806e33b5f1d0ed (patch)
tree7f5ad061c86674a88318cc6549ba5d3cfda57f0e
parent2536d0c904364e560b5fc2c4ab0460739426b274 (diff)
downloadacf-did-9bd3b05baf759a43c463e7e3dc806e33b5f1d0ed.tar.bz2
acf-did-9bd3b05baf759a43c463e7e3dc806e33b5f1d0ed.tar.xz
Added requestdid function.
-rw-r--r--did-controller.lua4
-rw-r--r--did-html.lsp9
-rw-r--r--did-model.lua22
-rw-r--r--did.roles2
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
diff --git a/did.roles b/did.roles
index c190485..4414a5a 100644
--- a/did.roles
+++ b/did.roles
@@ -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