122 lines
4.7 KiB
Transact-SQL
122 lines
4.7 KiB
Transact-SQL
-- =============================================
|
|
-- Author: Sólyom Péter
|
|
-- Create date: 2016.04.05.
|
|
-- Description: Lekérdezi a felhasználóhoz tartozó jogokat (osztályfőnök, csoportvezető, stb.)
|
|
-- =============================================
|
|
DROP PROCEDURE IF EXISTS sp_GetFelhasznaloJogok
|
|
GO
|
|
|
|
CREATE PROCEDURE sp_GetFelhasznaloJogok
|
|
@FELHASZNALOID INT,
|
|
@SZEREPKORTIPUS INT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
DECLARE @TEMPJOGOK TABLE (JOG nvarchar(100))
|
|
DECLARE @szerepkorjog nvarchar(100)
|
|
|
|
-- SZEREPKÖR JOGOK
|
|
SELECT @szerepkorjog =
|
|
CASE @SZEREPKORTIPUS
|
|
WHEN 1758 THEN N'Adminisztrator'
|
|
WHEN 1760 THEN N'Naplo'
|
|
WHEN 1761 THEN N'Ellenorzo'
|
|
WHEN 7371 THEN N'PenzugyiAdmin'
|
|
WHEN 7372 THEN N'Penztaros'
|
|
WHEN 7373 THEN N'Alairo'
|
|
WHEN 7374 THEN N'eUgyintezo'
|
|
WHEN 7703 THEN N'EtkezesiAdmin'
|
|
WHEN 7704 THEN N'EtkezesiEllenorzo'
|
|
WHEN 7705 THEN N'TeremberletJelenletEllenorzo'
|
|
WHEN 7698 THEN N'GazdasagiUgyintezo'
|
|
WHEN 7702 THEN N'FokuszMonitoring'
|
|
WHEN 7781 THEN N'Alkalmazott'
|
|
WHEN 7789 THEN N'IskolaEgeszsegugyiKoordinator'
|
|
WHEN 7790 THEN N'Vedono'
|
|
WHEN 7791 THEN N'Iskolaorvos'
|
|
WHEN 7792 THEN N'IskolaEgeszsegugyiAsszisztens'
|
|
WHEN 7793 THEN N'IskolaEgeszsegugyiLekerdezo'
|
|
WHEN 8753 THEN N'BelepokartyaAdmin'
|
|
WHEN 8755 THEN N'LELTAR_CONCERNED'
|
|
WHEN 8824 THEN N'Konyvtaros'
|
|
WHEN 8828 THEN N'FELTAR_EsetKezelo'
|
|
WHEN 8829 THEN N'FELTAR_EszkozMenedzser'
|
|
WHEN 8961 THEN N'KerdoivKitolto_KerdoivKezelo'
|
|
WHEN 9001 THEN N'Dualis_Admin'
|
|
WHEN 9061 THEN N'FELTAR_SzerzodesMenedzser'
|
|
WHEN 9062 THEN N'FELTAR_EsetJovahagyo'
|
|
WHEN 9063 THEN N'FELTAR_EsetKozremukodo'
|
|
WHEN 9064 THEN N'FELTAR_Munkavegzo'
|
|
END
|
|
|
|
INSERT INTO @TEMPJOGOK SELECT @szerepkorjog
|
|
|
|
-- RENDSZERGAZDA VAGY SZUPERADMIN
|
|
INSERT INTO @TEMPJOGOK
|
|
SELECT DISTINCT C_JOG JOG
|
|
FROM T_JOGOSULTSAG
|
|
JOIN T_JOGOSULTSAG_FELHASZNALO FELHASZNALOJOG ON FELHASZNALOJOG.C_JOGOSULTSAGID = T_JOGOSULTSAG.ID
|
|
WHERE T_JOGOSULTSAG.TOROLT = 'F'
|
|
AND FELHASZNALOJOG.C_FELHASZNALOID = @FELHASZNALOID
|
|
AND T_JOGOSULTSAG.C_SZEREPKORTIPUS = @SZEREPKORTIPUS
|
|
UNION
|
|
-- OSZTÁLYFŐNÖK
|
|
SELECT DISTINCT 'Osztalyfonok'
|
|
FROM T_OSZTALY OSZT
|
|
LEFT JOIN T_MUNKAUGYIADATOK MUNKAUGY ON MUNKAUGY.C_ALKALMAZOTTID = @FELHASZNALOID
|
|
WHERE (OSZT.C_OSZTALYFONOKID = @FELHASZNALOID OR OSZT.C_OFOHELYETTESID = @FELHASZNALOID AND OSZT.TOROLT ='F')
|
|
OR (MUNKAUGY.TOROLT='F' AND
|
|
MUNKAUGY.C_VEZETOIORASZAMOK BETWEEN 6572 AND 6574) -- 6572 - Intézményvezető, 6573 - Tagintézmény-vezető, 6574 - Intézményegység-vezető
|
|
OR EXISTS (SELECT 1
|
|
FROM T_SZEREPKOR
|
|
INNER JOIN T_FELHASZNALO_SZEREPKOR FELHASZNALOSZEREPKOR ON FELHASZNALOSZEREPKOR.C_SZEREPKORID = T_SZEREPKOR.ID
|
|
WHERE T_SZEREPKOR.TOROLT = 'F'
|
|
AND FELHASZNALOSZEREPKOR.C_FELHASZNALOID = @FELHASZNALOID
|
|
AND T_SZEREPKOR.C_SZEREPKORTIPUS = 1758)
|
|
|
|
-- ÉVFOLYAMFELELŐS
|
|
UNION
|
|
SELECT TOP 1 'Evfolyamfelelos'
|
|
FROM T_OSZTALY OSZT
|
|
WHERE OSZT.C_OFOHELYETTESID = @FELHASZNALOID AND OSZT.TOROLT ='F'
|
|
-- CSOPORTVEZETŐ
|
|
UNION
|
|
SELECT TOP 1 'CsoportVezeto'
|
|
FROM T_CSOPORT CSOP
|
|
WHERE CSOP.C_CSOPORTVEZETOID = @FELHASZNALOID AND CSOP.TOROLT = 'F'
|
|
-- SZUPEROSZTÁLYFŐNÖK (IGAZGATÓ, ÉVFOLYAMFELELŐS)
|
|
UNION
|
|
SELECT TOP 1 'SzuperOsztalyfonok'
|
|
FROM T_MUNKAUGYIADATOK MUNKAUGY
|
|
WHERE (MUNKAUGY.C_ALKALMAZOTTID = @FELHASZNALOID
|
|
AND MUNKAUGY.TOROLT='F'
|
|
AND MUNKAUGY.C_VEZETOIORASZAMOK BETWEEN 6572 AND 6574) -- 6572 - Intézményvezető, 6573 - Tagintézmény-vezető, 6574 - Intézményegység-vezető
|
|
OR EXISTS (SELECT 1
|
|
FROM T_SZEREPKOR
|
|
INNER JOIN T_FELHASZNALO_SZEREPKOR FELHASZNALOSZEREPKOR ON FELHASZNALOSZEREPKOR.C_SZEREPKORID = T_SZEREPKOR.ID
|
|
WHERE T_SZEREPKOR.TOROLT = 'F'
|
|
AND FELHASZNALOSZEREPKOR.C_FELHASZNALOID = @FELHASZNALOID
|
|
AND T_SZEREPKOR.C_SZEREPKORTIPUS = 1758)
|
|
UNION -- TANÁR
|
|
SELECT TOP 1 'Tanar'
|
|
FROM T_FOGLALKOZAS FOGL
|
|
WHERE FOGL.C_TANARID = @FELHASZNALOID AND FOGL.TOROLT = 'F'
|
|
UNION
|
|
SELECT TOP 1 'Tanar'
|
|
FROM T_HELYETTESITESIIDOSZAK HEID
|
|
WHERE HEID.C_HELYETTESTANAROKID = @FELHASZNALOID AND HEID.TOROLT = 'F'
|
|
UNION
|
|
SELECT TOP 1 'Tanar'
|
|
FROM T_TANITASIORA TNO
|
|
WHERE (TNO.C_HELYETTESITOTANARID = @FELHASZNALOID OR TNO.C_TANARID = @FELHASZNALOID) AND TNO.TOROLT = 'F'
|
|
UNION
|
|
SELECT TOP 1 'Tanulo'
|
|
FROM T_TANULO tt
|
|
WHERE ID= @FELHASZNALOID AND tt.TOROLT = 'F'
|
|
|
|
SELECT t.JOG
|
|
FROM @TEMPJOGOK T
|
|
JOIN T_JOGOSULTSAG JOGOS ON JOGOS.C_JOG = T.JOG
|
|
WHERE JOGOS.C_SZEREPKORTIPUS = @SZEREPKORTIPUS
|
|
END
|
|
GO
|