[DS-2179] Shibboleth (and probably LDAP) logins fail after merge of Metadata For All

This commit is contained in:
KevinVdV
2014-10-08 12:42:01 +02:00
parent 9594c2b31a
commit 4ea9051c12
8 changed files with 13 additions and 43 deletions

View File

@@ -1311,8 +1311,6 @@ public abstract class DSpaceObject
return new String[]{"eperson","lastname",null};
case "phone":
return new String[]{"eperson","phone",null};
case "netid":
return new String[]{"eperson","netid",null};
case "language":
return new String[]{"eperson","language",null};
default:

View File

@@ -498,8 +498,7 @@ public class EPerson extends DSpaceObject
t = "language";
break;
case NETID:
s = "m_text_value";
t = "netid";
s = "e.netid";
break;
default:
@@ -510,7 +509,7 @@ public class EPerson extends DSpaceObject
// NOTE: The use of 's' in the order by clause can not cause an SQL
// injection because the string is derived from constant values above.
TableRowIterator rows = DatabaseManager.query(context, "SELECT * FROM eperson e ORDER BY ?",s);
if(t!="") {
if(!t.equals("")) {
rows = DatabaseManager.query(context,
"SELECT * FROM eperson e " +
"LEFT JOIN metadatavalue m on (m.resource_id = e.eperson_id and m.resource_type_id = ? and m.metadata_field_id = ?) " +
@@ -719,7 +718,7 @@ public class EPerson extends DSpaceObject
*/
public String getNetid()
{
return getMetadataFirstValue("eperson", "netid", null, Item.ANY);
return myRow.getStringColumn("netid");
}
/**
@@ -729,7 +728,7 @@ public class EPerson extends DSpaceObject
* the new netid
*/
public void setNetid(String s) {
setMetadataSingleValue("eperson", "netid", null, null, s);
myRow.setColumn("netid", s);
modified = true;
}

View File

@@ -175,7 +175,8 @@ CREATE TABLE EPerson
require_certificate BOOL,
self_registered BOOL,
last_active TIMESTAMP,
sub_frequency INTEGER
sub_frequency INTEGER,
netid VARCHAR(64)
);
-- index by email

View File

@@ -32,12 +32,6 @@
<scope_note>Metadata field used for the phone number</scope_note>
</dc-type>
<dc-type>
<schema>eperson</schema>
<element>netid</element>
<scope_note>Metadata field used for the net id</scope_note>
</dc-type>
<dc-type>
<schema>eperson</schema>
<element>language</element>

View File

@@ -134,7 +134,8 @@ CREATE TABLE EPerson
require_certificate NUMBER(1),
self_registered NUMBER(1),
last_active TIMESTAMP,
sub_frequency INTEGER
sub_frequency INTEGER,
netid VARCHAR2(64) UNIQUE
);
-------------------------------------------------------

View File

@@ -323,18 +323,6 @@ null AS text_lang,
FROM eperson where not phone is null;
INSERT INTO metadatavalue (metadata_value_id, resource_id, resource_type_id, metadata_field_id, text_value, text_lang, place)
SELECT
metadatavalue_seq.nextval as metadata_value_id,
eperson_id AS resource_id,
7 AS resource_type_id,
(select metadata_field_id from metadatafieldregistry where metadata_schema_id=(select metadata_schema_id from metadataschemaregistry where short_id='eperson') and element = 'netid' and qualifier is null) AS metadata_field_id,
netid AS text_value,
null AS text_lang,
0 AS place
FROM eperson where not netid is null;
INSERT INTO metadatavalue (metadata_value_id, resource_id, resource_type_id, metadata_field_id, text_value, text_lang, place)
SELECT
metadatavalue_seq.nextval as metadata_value_id,
@@ -347,7 +335,7 @@ null AS text_lang,
FROM eperson where not language is null;
alter table eperson drop (firstname, lastname, phone, netid, language);
alter table eperson drop (firstname, lastname, phone, language);
drop view dcvalue;

View File

@@ -171,14 +171,15 @@ CREATE TABLE EPerson
require_certificate BOOL,
self_registered BOOL,
last_active TIMESTAMP,
sub_frequency INTEGER
sub_frequency INTEGER,
netid VARCHAR(64)
);
-- index by email
CREATE INDEX eperson_email_idx ON EPerson(email);
-- index by netid
--CREATE INDEX eperson_netid_idx ON EPerson(netid);
CREATE INDEX eperson_netid_idx ON EPerson(netid);
-------------------------------------------------------
-- EPersonGroup table

View File

@@ -288,18 +288,6 @@ null AS text_lang,
0 AS place
FROM eperson where not phone is null;
INSERT INTO metadatavalue (resource_id, resource_type_id, metadata_field_id, text_value, text_lang, place)
SELECT
eperson_id AS resource_id,
7 AS resource_type_id,
(select metadata_field_id from metadatafieldregistry where metadata_schema_id=(select metadata_schema_id from metadataschemaregistry where short_id='eperson') and element = 'netid' and qualifier is null) AS metadata_field_id,
netid AS text_value,
null AS text_lang,
0 AS place
FROM eperson where not netid is null;
INSERT INTO metadatavalue (resource_id, resource_type_id, metadata_field_id, text_value, text_lang, place)
SELECT
eperson_id AS resource_id,
@@ -311,7 +299,7 @@ null AS text_lang,
FROM eperson where not language is null;
alter table eperson drop column firstname, drop column lastname, drop column phone, drop column netid, drop column language;
alter table eperson drop column firstname, drop column lastname, drop column phone, drop column language;
-- ---------
-- dcvalue view