-- ==================================================================================================================== -- Beállítja az aktuális tanévben a megadott felhasználónak a jszavát, majd resultsetben visszaadja. -- ==================================================================================================================== DROP PROCEDURE IF EXISTS dev.uspSetPassword GO CREATE PROCEDURE dev.uspSetPassword @pIntezmenyAzonositok nvarchar(max) -- Intezmenyek azonosítói, vesszővel elválasztva ,@pFelhasznaloNev nvarchar(50) -- Felhasználónév ,@pJelszo nvarchar(20) = NULL -- Jelszó, ha NULL, akkor generál neki egy 8 karakteres jelszót AS BEGIN DECLARE @Table TABLE ( IntezmenyAzonosito nvarchar(110) ,IntezmenyId int ,TanevId int ,FelhasznaloBelepesId int ,Jelszo nvarchar(8) ) DECLARE @felhasznaloBelepesId int ,@jelszo nvarchar(50) ,@so nvarchar(64) ,@jelszoHash nvarchar(64) INSERT INTO @Table (IntezmenyAzonosito, IntezmenyId, TanevId, FelhasznaloBelepesId, Jelszo) SELECT i.C_AZONOSITO, i.ID, tv.ID, fb.ID, ISNULL(@pJelszo, dev.fnGeneratePassword(8)) AS Jelszo FROM T_INTEZMENY i INNER JOIN T_TANEV tv ON tv.C_INTEZMENYID = i.ID AND tv.C_AKTIV = 'T' AND tv.TOROLT = 'F' INNER JOIN T_FELHASZNALOBELEPES fb ON fb.C_TANEVID = tv.ID AND fb.C_BEJELENTKEZESINEV = @pFelhasznaloNev AND fb.TOROLT = 'F' WHERE i.TOROLT = 'F' AND i.C_AZONOSITO IN (SELECT LTRIM(RTRIM(value)) FROM string_split(@pIntezmenyAzonositok, ',')) DECLARE intCursor CURSOR LOCAL FOR SELECT FelhasznaloBelepesId, Jelszo FROM @Table OPEN intCursor FETCH NEXT FROM intCursor INTO @FelhasznaloBelepesId, @Jelszo WHILE @@FETCH_STATUS = 0 BEGIN SET @so = CAST((SELECT * FROM dev.vGetRand) AS nvarchar(64)) SET @jelszoHash = dev.fnConvertBase64(HASHBYTES('SHA1', CONVERT(VARBINARY(MAX), CONVERT(NVARCHAR(MAX), @jelszo + @so)))) UPDATE T_FELHASZNALOBELEPES SET C_JELSZO = @jelszoHash ,C_SO = @so ,C_JELSZOVALTOZTATASIDEJE = GETDATE() ,SERIAL = SERIAL + 1 ,LASTCHANGED = GETDATE() ,MODIFIER = 0 WHERE ID = @FelhasznaloBelepesId FETCH NEXT FROM intCursor INTO @FelhasznaloBelepesId, @Jelszo END SELECT IntezmenyAzonosito, Jelszo FROM @Table END GO