X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=blobdiff_plain;f=sql%2Fbase%2Fbase.sql;h=1c25fcc21bd73aa13e81d94ed9f39dae42e13765;hp=8de801a0f617b940ad98ea43b36f775411c386cf;hb=8116ae8e275e305ee91d3aea06df40ffab1f07ab;hpb=f2e7bdde075dbdb50547dfe06ad3d5b1765f4106 diff --git a/sql/base/base.sql b/sql/base/base.sql index 8de801a..1c25fcc 100644 --- a/sql/base/base.sql +++ b/sql/base/base.sql @@ -2554,6 +2554,21 @@ CREATE OR REPLACE FUNCTION migration_tools.duplicate_template_but_change_delay ( END; $$ LANGUAGE PLPGSQL STRICT VOLATILE; +CREATE OR REPLACE FUNCTION migration_tools.get_marc_leader (TEXT) RETURNS TEXT AS $$ + my ($marcxml) = @_; + + use MARC::Record; + use MARC::File::XML; + use MARC::Field; + + my $field; + eval { + my $marc = MARC::Record->new_from_xml($marcxml, 'UTF-8'); + $field = $marc->leader(); + }; + return $field; +$$ LANGUAGE PLPERLU STABLE; + CREATE OR REPLACE FUNCTION migration_tools.get_marc_tag (TEXT, TEXT, TEXT, TEXT) RETURNS TEXT AS $$ my ($marcxml, $tag, $subfield, $delimiter) = @_; @@ -2672,3 +2687,27 @@ CREATE OR REPLACE FUNCTION migration_tools.push_bib_sequence(INTEGER) RETURNS BI END; $$ LANGUAGE PLPGSQL STRICT VOLATILE; +-- set a new salted password + +CREATE OR REPLACE FUNCTION migration_tools.set_salted_passwd(INTEGER,TEXT) RETURNS BOOLEAN AS $$ + DECLARE + usr_id ALIAS FOR $1; + plain_passwd ALIAS FOR $2; + plain_salt TEXT; + md5_passwd TEXT; + BEGIN + + SELECT actor.create_salt('main') INTO plain_salt; + + SELECT MD5(plain_passwd) INTO md5_passwd; + + PERFORM actor.set_passwd(usr_id, 'main', MD5(plain_salt || md5_passwd), plain_salt); + + RETURN TRUE; + + END; +$$ LANGUAGE PLPGSQL STRICT VOLATILE; + + + +