135 lines
4.5 KiB
Transact-SQL
135 lines
4.5 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.)
|
|
-- =============================================
|
|
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
IF OBJECT_ID('dbo.sp_GetFelhasznaloJogok') IS NOT NULL BEGIN
|
|
DROP PROCEDURE dbo.sp_GetFelhasznaloJogok
|
|
END
|
|
GO
|
|
|
|
CREATE PROCEDURE sp_GetFelhasznaloJogok
|
|
@FELHASZNALOID INT,
|
|
@SZEREPKORTIPUS INT
|
|
AS
|
|
BEGIN
|
|
-- SET NOCOUNT ON added to prevent extra result sets from
|
|
-- interfering with SELECT statements.
|
|
SET NOCOUNT ON;
|
|
DECLARE @TEMPJOGOK TABLE ( JOG nvarchar(100))
|
|
|
|
-- SZEREPKÖR JOGOK
|
|
IF @SZEREPKORTIPUS = 1757
|
|
BEGIN
|
|
INSERT INTO @TEMPJOGOK (JOG) VALUES (N'Fenntarto')
|
|
END
|
|
ELSE IF @SZEREPKORTIPUS = 1758
|
|
BEGIN
|
|
INSERT INTO @TEMPJOGOK (JOG) VALUES (N'Adminisztrator')
|
|
END
|
|
ELSE IF @SZEREPKORTIPUS = 1759
|
|
BEGIN
|
|
INSERT INTO @TEMPJOGOK (JOG) VALUES (N'Penzugy')
|
|
END ELSE IF @SZEREPKORTIPUS = 1760
|
|
BEGIN
|
|
INSERT INTO @TEMPJOGOK (JOG) VALUES (N'Naplo')
|
|
END ELSE IF @SZEREPKORTIPUS = 1761
|
|
BEGIN
|
|
INSERT INTO @TEMPJOGOK (JOG) VALUES (N'Ellenorzo')
|
|
END ELSE IF @SZEREPKORTIPUS = 7371
|
|
BEGIN
|
|
INSERT INTO @TEMPJOGOK (JOG) VALUES (N'PenzugyiAdmin')
|
|
END ELSE IF @SZEREPKORTIPUS = 7372
|
|
BEGIN
|
|
INSERT INTO @TEMPJOGOK (JOG) VALUES (N'Penztaros')
|
|
END ELSE IF @SZEREPKORTIPUS = 7373
|
|
BEGIN
|
|
INSERT INTO @TEMPJOGOK (JOG) VALUES (N'Alairo')
|
|
END ELSE IF @SZEREPKORTIPUS = 7374
|
|
BEGIN
|
|
INSERT INTO @TEMPJOGOK (JOG) VALUES (N'eUgyintezo')
|
|
END
|
|
-- 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 IN (6572, 6573, 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 DISTINCT 'Evfolyamfelelos'
|
|
FROM T_OSZTALY OSZT
|
|
WHERE OSZT.C_OFOHELYETTESID = @FELHASZNALOID AND OSZT.TOROLT ='F'
|
|
-- CSOPORTVEZETŐ
|
|
UNION
|
|
SELECT DISTINCT 'CsoportVezeto'
|
|
FROM T_CSOPORT CSOP
|
|
WHERE CSOP.C_CSOPORTVEZETOID = @FELHASZNALOID AND CSOP.TOROLT = 'F'
|
|
-- SZUPEROSZTÁLYFŐNÖK (IGAZGATÓ, ÉVFOLYAMFELELŐS)
|
|
UNION
|
|
SELECT DISTINCT 'SzuperOsztalyfonok'
|
|
FROM T_MUNKAUGYIADATOK MUNKAUGY
|
|
WHERE (MUNKAUGY.C_ALKALMAZOTTID = @FELHASZNALOID
|
|
AND MUNKAUGY.TOROLT='F'
|
|
AND MUNKAUGY.C_VEZETOIORASZAMOK IN (6572, 6573, 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 DISTINCT 'Tanar'
|
|
FROM T_TANARITANTARGY TT
|
|
WHERE TT.C_ALKALMAZOTTID = @FELHASZNALOID AND TT.TOROLT = 'F'
|
|
UNION
|
|
SELECT DISTINCT 'Tanar'
|
|
FROM T_FOGLALKOZAS FOGL
|
|
WHERE FOGL.C_TANARID = @FELHASZNALOID AND FOGL.TOROLT = 'F'
|
|
UNION
|
|
SELECT DISTINCT 'Tanar'
|
|
FROM T_HELYETTESITESIIDOSZAK HEID
|
|
WHERE HEID.C_HELYETTESTANAROKID = @FELHASZNALOID AND HEID.TOROLT = 'F'
|
|
UNION
|
|
SELECT DISTINCT 'Tanar'
|
|
FROM T_TANITASIORA TNO
|
|
WHERE TNO.C_HELYETTESITOTANARID = @FELHASZNALOID AND TNO.TOROLT = 'F'
|
|
UNION
|
|
SELECT DISTINCT 'Tanar'
|
|
FROM T_TANITASIORA TNO
|
|
WHERE TNO.C_TANARID = @FELHASZNALOID AND TNO.TOROLT = 'F'
|
|
UNION
|
|
SELECT '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
|
|
|