NIHVIVO-2343 A user should not be allowed as a proxy for his own profile.

This commit is contained in:
j2blake 2011-10-30 17:15:53 +00:00
parent b7ec17856e
commit a866b5daf4
4 changed files with 10 additions and 4 deletions

View file

@ -147,6 +147,7 @@ public class UserAccountsMyAccountPage extends UserAccountsPage {
body.put("proxies", buildOriginalProxyList()); body.put("proxies", buildOriginalProxyList());
} }
body.put("formUrls", buildUrlsMap()); body.put("formUrls", buildUrlsMap());
body.put("myAccountUri", userAccount.getUri());
// Could I do this without exposing this mechanism? But how to search // Could I do this without exposing this mechanism? But how to search
// for an associated profile in AJAX? // for an associated profile in AJAX?

View file

@ -74,6 +74,7 @@ function proxyInfoElement(template, uri, label, classLabel, imageUrl, removeInfo
* You provide: * You provide:
* parms -- a map containing the URL of the AJAX controller, the query, and * parms -- a map containing the URL of the AJAX controller, the query, and
* the model selector. * the model selector.
* excludedUris -- these URIs are always filtered out of the results.
* getProxyInfos -- a function that will return an array of proxyInfoElements * getProxyInfos -- a function that will return an array of proxyInfoElements
* that are already present in the list and so should be filtered out of * that are already present in the list and so should be filtered out of
* the autocomplete response. * the autocomplete response.
@ -94,7 +95,7 @@ function proxyInfoElement(template, uri, label, classLabel, imageUrl, removeInfo
* -- calling addProxyInfo() and clearing the field when a value is selected. * -- calling addProxyInfo() and clearing the field when a value is selected.
* ---------------------------------------------------------------------------- * ----------------------------------------------------------------------------
*/ */
function proxyAutocomplete(parms, getProxyInfos, addProxyInfo, reportSearchStatus) { function proxyAutocomplete(parms, excludedUris, getProxyInfos, addProxyInfo, reportSearchStatus) {
var cache = []; var cache = [];
var filterResults = function(parsed) { var filterResults = function(parsed) {
@ -103,7 +104,8 @@ function proxyAutocomplete(parms, getProxyInfos, addProxyInfo, reportSearchStatu
return p.uri; return p.uri;
}); });
$.each(parsed, function(i, p) { $.each(parsed, function(i, p) {
if (-1 == $.inArray(p.uri, existingUris)) { if ((-1 == $.inArray(p.uri, existingUris))
&& (-1 == $.inArray(p.uri, excludedUris))) {
filtered.push(p); filtered.push(p);
} }
}); });

View file

@ -43,6 +43,8 @@ function proxyProxiesPanel(p) {
var self = this; var self = this;
var excludedUris = [proxyMechanism.myAccountUri];
var removeProxyInfo = function(info) { var removeProxyInfo = function(info) {
self.removeProxyInfo(info) self.removeProxyInfo(info)
} }
@ -153,7 +155,7 @@ function proxyProxiesPanel(p) {
url: proxyMechanism.sparqlQueryUrl url: proxyMechanism.sparqlQueryUrl
}; };
var reportSearchStatus = new searchStatusField(this.searchStatusField, 3).setText; var reportSearchStatus = new searchStatusField(this.searchStatusField, 3).setText;
this.addAutoCompleteField.autocomplete(new proxyAutocomplete(parms, this.getProxyInfos, this.addProxyInfo, reportSearchStatus)); this.addAutoCompleteField.autocomplete(new proxyAutocomplete(parms, excludedUris, this.getProxyInfos, this.addProxyInfo, reportSearchStatus));
} }
this.setupAutoCompleteFields(); this.setupAutoCompleteFields();

View file

@ -56,7 +56,8 @@ ${stylesheets.add('<link rel="stylesheet" href="${urls.base}/edit/forms/css/auto
var proxyMechanism = { var proxyMechanism = {
baseUrl: '${urls.base}', baseUrl: '${urls.base}',
sparqlQueryUrl: '${formUrls.sparqlQueryAjax}', sparqlQueryUrl: '${formUrls.sparqlQueryAjax}',
matchingProperty: '${matchingProperty}' matchingProperty: '${matchingProperty}',
myAccountUri: '${myAccountUri}'
}; };
</script> </script>