Compare commits

..

84 Commits

Author SHA1 Message Date
sebastian.serfling 626ef889ee packages.txt aktualisiert 2024-10-11 11:13:25 +00:00
sebastian.serfling 059b334a14 ADD /report 2024-07-29 15:53:36 +02:00
sebastian.serfling 88b5b9b005 ADD /report 2024-07-29 15:52:52 +02:00
sebastian.serfling b52af30d1c ADD /report 2024-07-29 15:52:20 +02:00
sebastian.serfling 0525a666cf ADD /report 2024-07-29 15:51:23 +02:00
sebastian.serfling 108e378343 ADD /report 2024-07-29 15:50:37 +02:00
sebastian.serfling fe417601a6 ADD /report 2024-07-29 15:49:12 +02:00
sebastian.serfling 60573fc9ec ADD /report 2024-07-29 15:45:45 +02:00
sebastian.serfling ec3e76181c ADD /report 2024-07-29 15:44:44 +02:00
sebastian.serfling 66268900f6 ADD /report 2024-07-29 15:43:54 +02:00
sebastian.serfling 587eb51e17 ADD /report 2024-07-29 15:42:45 +02:00
sebastian.serfling 40da79bc59 ADD /report 2024-07-29 15:39:56 +02:00
sebastian.serfling 81faac9d59 ADD /report 2024-07-29 15:39:46 +02:00
sebastian.serfling c8be8f40f4 ADD /report 2024-07-29 15:37:33 +02:00
sebastian.serfling 079d31710b ADD /report 2024-07-29 15:31:59 +02:00
sebastian.serfling bb80ce2b03 ADD /report 2024-07-29 15:30:21 +02:00
sebastian.serfling db70ae2bd7 ADD /report 2024-07-29 15:29:42 +02:00
sebastian.serfling 8dd26cb2cb ADD /report 2024-07-29 15:28:26 +02:00
sebastian.serfling 1f8325284a ADD /report 2024-07-29 15:27:10 +02:00
sebastian.serfling 2da8850d10 ADD /report 2024-07-29 15:20:13 +02:00
sebastian.serfling e996819a00 ADD /report 2024-07-29 15:19:25 +02:00
sebastian.serfling ffa5b0ef8b ADD /report 2024-07-29 15:18:26 +02:00
sebastian.serfling 9d522b85a6 ADD /report 2024-07-29 15:11:47 +02:00
sebastian.serfling 56fc7dd565 ADD /report 2024-07-29 15:09:56 +02:00
sebastian.serfling ae5b1ed774 ADD /report 2024-07-29 14:29:57 +02:00
sebastian.serfling 4d479cdf34 ADD /report 2024-07-29 14:22:16 +02:00
sebastian.serfling 6f25ef191b Remove API key From Console 2023-11-01 09:11:39 +01:00
sebastian.serfling 753f1e7dc1 Remove API key From Console 2023-11-01 09:03:49 +01:00
sebastian.serfling d8e466451c Remove API key From Console 2023-11-01 08:59:20 +01:00
sebastian.serfling 719a9b34cb Remove API key From Console 2023-10-30 14:32:24 +01:00
sebastian.serfling 6ddb5b8a80 Remove API key From Console 2023-10-30 13:33:16 +01:00
sebastian.serfling 944ec36b8a Remove API key From Console 2023-10-30 12:19:09 +01:00
sebastian.serfling 7b3136a642 Remove API key From Console 2023-10-25 11:02:50 +02:00
sebastian.serfling 6203846cf7 Remove API key From Console 2023-10-25 10:59:17 +02:00
sebastian.serfling ff5954498c Remove API key From Console 2023-10-25 10:59:04 +02:00
sebastian.serfling 8dcc2aff41 Remove API key From Console 2023-10-25 10:58:15 +02:00
sebastian.serfling 58e577358d Remove API key From Console 2023-10-25 10:57:35 +02:00
sebastian.serfling fcf0814fdd Remove API key From Console 2023-10-25 10:56:19 +02:00
sebastian.serfling 83dd128934 Remove API key From Console 2023-10-25 10:55:28 +02:00
sebastian.serfling 1dd95e0757 Remove API key From Console 2023-10-25 10:54:34 +02:00
sebastian.serfling 3f84aefd41 Remove API key From Console 2023-10-25 10:48:50 +02:00
sebastian.serfling e671c58a47 Remove API key From Console 2023-10-25 10:47:18 +02:00
sebastian.serfling f1b046645f Remove API key From Console 2023-10-25 10:47:00 +02:00
sebastian.serfling 9254a7449d Remove API key From Console 2023-10-25 10:46:07 +02:00
sebastian.serfling a24c1cd2be Remove API key From Console 2023-10-25 10:43:50 +02:00
sebastian.serfling 2e2144cfa1 Remove API key From Console 2023-10-25 10:39:36 +02:00
sebastian.serfling b595d7aa1c Remove API key From Console 2023-10-25 10:35:10 +02:00
sebastian.serfling 54cc673517 Remove API key From Console 2023-10-25 10:33:31 +02:00
sebastian.serfling 89ef548c56 Remove API key From Console 2023-10-25 10:31:43 +02:00
sebastian.serfling f10ef8c461 Remove API key From Console 2023-10-25 10:30:01 +02:00
sebastian.serfling 16101f0873 Remove API key From Console 2023-10-25 10:27:27 +02:00
sebastian.serfling 106bab6853 Remove API key From Console 2023-10-25 10:18:57 +02:00
sebastian.serfling ef228cd0a4 Remove API key From Console 2023-10-25 10:17:56 +02:00
sebastian.serfling 57ffad012d Remove API key From Console 2023-10-25 10:15:38 +02:00
sebastian.serfling 2b9ae59e0f Remove API key From Console 2023-10-25 10:13:36 +02:00
sebastian.serfling e2f12cc6c7 Remove API key From Console 2023-10-25 09:36:17 +02:00
sebastian.serfling d75c18e8db Remove API key From Console 2023-10-24 15:53:12 +02:00
sebastian.serfling 60e2c168f4 Remove API key From Console 2023-10-24 15:52:10 +02:00
sebastian.serfling d691d2227b Remove API key From Console 2023-10-24 15:51:37 +02:00
sebastian.serfling e6b86d59f6 Remove API key From Console 2023-10-24 15:49:03 +02:00
sebastian.serfling 865f1d577e Remove API key From Console 2023-10-24 15:46:36 +02:00
sebastian.serfling 5adb363cdc Remove API key From Console 2023-10-24 15:45:45 +02:00
sebastian.serfling 838577d1fb Remove API key From Console 2023-10-24 15:44:47 +02:00
sebastian.serfling fb553b0344 Remove API key From Console 2023-10-24 15:44:12 +02:00
sebastian.serfling 6473833e7f Remove API key From Console 2023-10-24 15:40:30 +02:00
sebastian.serfling 05ef77c956 Remove API key From Console 2023-10-24 15:16:01 +02:00
sebastian.serfling d3e746352a Remove API key From Console 2023-10-24 15:03:07 +02:00
sebastian.serfling 5b6720218a Remove API key From Console 2023-10-24 14:54:57 +02:00
sebastian.serfling 2d84a01cc1 Remove API key From Console 2023-10-24 14:51:31 +02:00
sebastian.serfling 82a4160450 Remove API key From Console 2023-10-24 12:21:44 +02:00
sebastian.serfling d0ff0c4767 Remove API key From Console 2023-10-24 12:20:45 +02:00
sebastian.serfling ceb2b5726c Remove API key From Console 2023-10-24 12:20:04 +02:00
sebastian.serfling 00a084c80f Remove API key From Console 2023-10-24 12:18:14 +02:00
sebastian.serfling c661719d02 Remove API key From Console 2023-10-23 21:05:56 +02:00
sebastian.serfling 9ebbbac474 Remove API key From Console 2023-10-23 21:05:01 +02:00
sebastian.serfling e6bf371ea7 Remove API key From Console 2023-10-23 20:50:13 +02:00
sebastian.serfling d7524e686f Remove API key From Console 2023-10-23 15:44:33 +02:00
sebastian.serfling b54696358b Remove API key From Console 2023-10-23 15:42:18 +02:00
sebastian.serfling 524c4f5f77 Remove API key From Console 2023-10-23 15:41:00 +02:00
sebastian.serfling 477d37ad76 Remove API key From Console 2023-10-23 15:37:56 +02:00
sebastian.serfling e72f3ad574 Remove API key From Console 2023-10-23 15:37:13 +02:00
sebastian.serfling 1a58afe4f4 Remove API key From Console 2023-10-23 14:49:39 +02:00
sebastian.serfling 0fc79abc4b Remove API key From Console 2023-10-23 14:48:31 +02:00
sebastian.serfling 2db0fbbc15 Remove API key From Console 2023-10-23 14:47:50 +02:00
4 changed files with 121 additions and 54 deletions
+1 -1
View File
@@ -3,5 +3,5 @@
<component name="Black"> <component name="Black">
<option name="sdkName" value="Python 3.9 (api)" /> <option name="sdkName" value="Python 3.9 (api)" />
</component> </component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (api)" project-jdk-type="Python SDK" /> <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11" project-jdk-type="Python SDK" />
</project> </project>
+28 -5
View File
@@ -5,7 +5,6 @@ class CL_Ping_Set(BaseModel):
name: str name: str
ipaddress: str ipaddress: str
class CL_Database_get(BaseModel): class CL_Database_get(BaseModel):
name: str name: str
@@ -91,8 +90,8 @@ class CL_GET_DATABASE(BaseModel):
ip: str ip: str
class CL_GET_VOLUMES(BaseModel): class CL_GET_VOLUMES(BaseModel):
name: str user: str
database: str dbname: str
class CL_GET_CLIENT(BaseModel): class CL_GET_CLIENT(BaseModel):
name: str name: str
@@ -112,12 +111,17 @@ class CL_GET_HOST_USER(BaseModel):
class CL_SET_HOST(BaseModel): class CL_SET_HOST(BaseModel):
hostname: str hostname: str
user: str
ipadresse: str
winver: str
cpuname: str
cores: int
dbname: str dbname: str
ram: int ram: int
hddfree: str hddfree: str
hddused: str hddused: str
hddtotal: str hddtotal: str
ipadresse: str netvolumeuser: str
class CL_GET_CPU(BaseModel): class CL_GET_CPU(BaseModel):
hostname: str hostname: str
@@ -134,12 +138,17 @@ class CL_SET_CPU(BaseModel):
class CL_UPDATE_HOST(BaseModel): class CL_UPDATE_HOST(BaseModel):
hostname: str hostname: str
user: str
ipadresse: str
winver: str
cpuname: str
cores: int
dbname: str dbname: str
ram: int ram: int
hddfree: str hddfree: str
hddused: str hddused: str
hddtotal: str hddtotal: str
ipadresse: str netvolumeuser: str
class CL_SET_LASTLOGON_USER(BaseModel): class CL_SET_LASTLOGON_USER(BaseModel):
userID: int userID: int
@@ -154,6 +163,9 @@ class CL_GET_USER(BaseModel):
user: str user: str
database: str database: str
class CL_GET_USER_CLIENT(BaseModel):
dbname: str
hostname: str
class CL_ADD_GROUP_VOLUME(BaseModel): class CL_ADD_GROUP_VOLUME(BaseModel):
label: str label: str
@@ -161,3 +173,14 @@ class CL_ADD_GROUP_VOLUME(BaseModel):
letter: str letter: str
group: str group: str
dbname: str dbname: str
class CL_ERROR_LOG(BaseModel):
datum: str
hostname: str
samaccountname: str
errorcode: str
class CL_REPORTING(BaseModel):
username: str
lastaccess: str
ipaddress: str
+91 -47
View File
@@ -69,7 +69,7 @@ async def database_get(get: CL.CL_Database_get,api_key: APIKey = Depends(auth.ge
@app.post("/host/get/netvolume") @app.post("/host/get/netvolume")
async def getvolume(get: CL.CL_GET_VOLUMES,api_key: APIKey = Depends(auth.get_api_key)): async def getvolume(get: CL.CL_GET_VOLUMES,api_key: APIKey = Depends(auth.get_api_key)):
## Anpassung zum neune Schema erstellen ## Anpassung zum neune Schema erstellen
result = database(f"SELECT * FROM `NetVolumeToClients` where `Name` = '{get.user}'",f"{get.database}","") result = database(f"SELECT `{get.dbname}`.Netvolume.Volume_Path, `{get.dbname}`.Netvolume.Volume_Key, `{get.dbname}`.Netvolume.Volume_Name FROM `{get.dbname}`.`Active-Directory-User` INNER JOIN `{get.dbname}`.GruppenToADUser ON `{get.dbname}`.GruppenToADUser.ADUserID = `{get.dbname}`.`Active-Directory-User`.ID INNER JOIN `{get.dbname}`.Gruppen ON `{get.dbname}`.GruppenToADUser.GruppenID = `{get.dbname}`.Gruppen.id INNER JOIN `{get.dbname}`.GruppenToNetvolumes ON `{get.dbname}`.GruppenToNetvolumes.GruppenID = `{get.dbname}`.Gruppen.id INNER JOIN `{get.dbname}`.Netvolume ON `{get.dbname}`.GruppenToNetvolumes.NetvolumeID = `{get.dbname}`.Netvolume.ID WHERE `{get.dbname}`.`Active-Directory-User`.SamAccountName = '{get.user}' ORDER BY `{get.dbname}`.`Active-Directory-User`.SamAccountName DESC","","")
volume = [] volume = []
if not result: if not result:
return False return False
@@ -88,7 +88,7 @@ async def getuser(get: CL.CL_GET_USER,api_key: APIKey = Depends(auth.get_api_key
@app.post("/host/get") @app.post("/host/get")
async def gethost(get: CL.CL_GET_HOST,api_key: APIKey = Depends(auth.get_api_key)): async def gethost(get: CL.CL_GET_HOST,api_key: APIKey = Depends(auth.get_api_key)):
result = database(f"SELECT id FROM `hardware` where `hostname` = '{get.hostname}'",f"{get.dbname}","") result = database(f"SELECT id FROM `Clients` where `Host-Name` = '{get.hostname}'",f"{get.dbname}","")
if not result: if not result:
return False return False
else: else:
@@ -115,34 +115,42 @@ async def getdatabase(get: CL.CL_GET_DATABASE,api_key: APIKey = Depends(auth.get
@app.post("/host/set") @app.post("/host/set")
async def sethost(get: CL.CL_SET_HOST,api_key: APIKey = Depends(auth.get_api_key)): async def sethost(get: CL.CL_SET_HOST,api_key: APIKey = Depends(auth.get_api_key)):
database(f"INSERT INTO `{get.dbname}`.hardware (hostname,ipadresse,ram,hddused,hddfree,hddtotal) VALUES ('{get.hostname}','{get.ipadresse}','{get.ram}','{get.hddused}','{get.hddfree}','{get.hddtotal}')","","") database(f"INSERT INTO `{get.dbname}`.Clients (`Host-Name`,SamAccountName,`IP-Adresse`,`Windows-Version`,`CPU-Name`,`Prozessor-Anzahl`,RAM,Speichergesamt,Speicherfrei,Speicherbelegt, NetVolumeUser) VALUES ('{get.hostname}','{get.user}','{get.ipadresse}','{get.winver}','{get.cpuname}','{get.cores}','{get.ram}','{get.hddtotal}','{get.hddfree}','{get.hddused}',{get.netvolumeuser})","","")
result = database( hostid = database(
f"SELECT id FROM `{get.dbname}`.hardware WHERE hostname = '{get.hostname}')", f"SELECT id FROM `{get.dbname}`.Clients WHERE `Host-Name` = '{get.hostname}'",
"", "") "", "")
if not result: userid = database(
f"SELECT id FROM `{get.dbname}`.User WHERE `SamAccountName` = '{get.user}'",
"", "")
if not userid:
userid = database(
f"SELECT id FROM `{get.dbname}`.`Active-Directory-User` WHERE `SamAccountName` = '{get.user}'",
"", "")
database(f"INSERT INTO `{get.dbname}`.ClientsToUser (clientsid,userid) VALUES ({hostid},{userid})","","")
if not hostid:
return False return False
else: else:
return result[0][0] return hostid[0][0]
@app.post("/host/cpu") # @app.post("/host/cpu")
async def setcpu(get: CL.CL_SET_CPU,api_key: APIKey = Depends(auth.get_api_key)): # async def setcpu(get: CL.CL_SET_CPU,api_key: APIKey = Depends(auth.get_api_key)):
check = database(f"SELECT id FROM `{get.dbname}`.cpulist WHERE cpuname = '{get.cpuname}' AND ghz") # check = database(f"SELECT id FROM `{get.dbname}`.cpulist WHERE cpuname = '{get.cpuname}' AND ghz")
database(f"INSERT INTO `{get.dbname}`.cpulist (cpuname,ghz,cputyp) VALUES ('{get.cpuname}','{get.ghz}','{get.cputyp}')","","") # database(f"INSERT INTO `{get.dbname}`.cpulist (cpuname,ghz,cputyp) VALUES ('{get.cpuname}','{get.ghz}','{get.cputyp}')","","")
result = database( # result = database(
f"SELECT id FROM `{get.dbname}`.cpulist WHERE cpuname = '{get.cpuname} AND cputyp = {get.cputyp}')", # f"SELECT id FROM `{get.dbname}`.cpulist WHERE cpuname = '{get.cpuname} AND cputyp = {get.cputyp}')",
"", "") # "", "")
database( # database(
f"INSERT INTO `{get.dbname}`.cpu_to_client (hardwareID,cpulistID) VALUES ('{get.hardwareID}','{result[0][0]}',)", # f"INSERT INTO `{get.dbname}`.cpu_to_client (hardwareID,cpulistID) VALUES ('{get.hardwareID}','{result[0][0]}',)",
"", "") # "", "")
if not result: # if not result:
return False # return False
else: # else:
return result[0][0] # return result[0][0]
@app.post("/host/update") @app.post("/host/update")
async def updatehost(get: CL.CL_UPDATE_HOST,api_key: APIKey = Depends(auth.get_api_key)): async def updatehost(get: CL.CL_UPDATE_HOST,api_key: APIKey = Depends(auth.get_api_key)):
database(f"UPDATE `{get.dbname}`.hardware SET ipadresse = '{get.ipadresse}', ram = '{get.ram}', hddused = '{get.hddused}' ,hddfree = '{get.hddfree}',hddtotal = '{get.hddtotal}' WHERE hostname = '{get.hostname}'","","") database(f"UPDATE `{get.dbname}`.Clients SET SamAccountName = '{get.user}',`IP-Adresse` = '{get.ipadresse}',`Windows-Version` = '{get.winver}',`CPU-Name` = '{get.cpuname}',`Prozessor-Anzahl` = {get.cores},RAM = {get.ram},Speichergesamt = '{get.hddtotal}',Speicherfrei = '{get.hddfree}',Speicherbelegt = '{get.hddused}',NetVolumeUser = '{get.netvolumeuser}', LastChange = '{datetime.now()}' WHERE `Host-Name` = '{get.hostname}'","","")
result = database(f"SELECT id FROM `{get.dbname}`.hardware WHERE hostname = '{get.hostname}'","", "") result = database(f"SELECT id FROM `{get.dbname}`.Clients WHERE `Host-Name` = '{get.hostname}'","", "")
if not result: if not result:
return False return False
else: else:
@@ -150,9 +158,7 @@ async def updatehost(get: CL.CL_UPDATE_HOST,api_key: APIKey = Depends(auth.get_a
@app.post("/user/set") @app.post("/user/set")
async def set_user(get: CL.CL_SET_HOST_USER,api_key: APIKey = Depends(auth.get_api_key)): async def set_user(get: CL.CL_SET_HOST_USER,api_key: APIKey = Depends(auth.get_api_key)):
database(f"INSERT INTO `{get.dbname}`.user (user) VALUES ('{get.user}')","","") result = database(f"INSERT INTO `{get.dbname}`.ClientsUser (SamAccountName) VALUES ('{get.user}')","","")
result = database(f"SELECT id FROM `{get.dbname}`.user WHERE user = '{get.user}'","","")
database(f"INSERT INTO `{get.dbname}`.hardware_to_user (userID,hardwareID) VALUES ('{result[0][0]}',{get.hardwareID})", "", "")
if not result: if not result:
return False return False
else: else:
@@ -160,21 +166,16 @@ async def set_user(get: CL.CL_SET_HOST_USER,api_key: APIKey = Depends(auth.get_a
@app.post("/user/get") @app.post("/user/get")
async def get_user(get: CL.CL_GET_HOST_USER,api_key: APIKey = Depends(auth.get_api_key)): async def get_user(get: CL.CL_GET_HOST_USER,api_key: APIKey = Depends(auth.get_api_key)):
result = database(f"SELECT id FROM `{get.dbname}`.user WHERE user = '{get.user}'","","") result = database(f"SELECT id FROM `{get.dbname}`.`Active-Directory-User` WHERE SamAccountName = '{get.user}' ORDER BY ID DESC LIMIT 1","","")
if not result: if not result:
return False result = database(
else: f"SELECT id FROM `{get.dbname}`.`Clients` WHERE SamAccountName = '{get.user}' ORDER BY ID DESC LIMIT 1",
return result[0][0] "", "")
return result[0][0]
@app.post("/user/set/lastlogon") @app.post("/user/set/lastlogon")
async def set_lastlogon_user(get: CL.CL_SET_LASTLOGON_USER,api_key: APIKey = Depends(auth.get_api_key)): async def set_lastlogon_user(get: CL.CL_SET_LASTLOGON_USER,api_key: APIKey = Depends(auth.get_api_key)):
database(f"INSERT INTO `{get.dbname}`.lastlogon (lastlogon) VALUES ('{get.lastlogon}')","","") database(f"INSERT INTO `{get.dbname}`.LastLogonToADUser (aduserid,lastlogon) VALUES ('{get.userID}','{get.lastlogon}')", "", "")
lastlogonid = database(f"SELECT id FROM `{get.dbname}`.lastlogon WHERE lastlogon = '{get.lastlogon}'","","")
result = database(f"INSERT INTO `{get.dbname}`.lastlogon_to_user (userID,lastlogonID) VALUES ('{get.userID}','{lastlogonid[0][0]}')", "", "")
if not result:
return False
else:
return result[0][0]
@app.post("/info/getclient") @app.post("/info/getclient")
@@ -185,6 +186,15 @@ async def getclient(get: CL.CL_GET_CLIENT,api_key: APIKey = Depends(auth.get_api
else: else:
return result[0][0] return result[0][0]
@app.post("/client/user/get")
async def getclient(get: CL.CL_GET_USER_CLIENT,api_key: APIKey = Depends(auth.get_api_key)):
result = database(f"SELECT NetVolumeUser FROM `{get.dbname}`.`Clients` where `Host-Name` = '{get.hostname}'","","")
if not result:
return False
else:
return result[0][0]
@app.post("/info/addclient") @app.post("/info/addclient")
async def addclient(addclient: CL.CL_ADD_CLIENT,api_key: APIKey = Depends(auth.get_api_key)): async def addclient(addclient: CL.CL_ADD_CLIENT,api_key: APIKey = Depends(auth.get_api_key)):
print(addclient.query) print(addclient.query)
@@ -242,8 +252,7 @@ async def add_report_user(get: CL.CL_ADD_REPORT_USER,api_key: APIKey = Depends(a
@app.post("/ad/user/disabled") @app.post("/ad/user/disabled")
async def disabled_user(get: CL.CL_CHECK_DISABLED_USER,api_key: APIKey = Depends(auth.get_api_key)): async def disabled_user(get: CL.CL_CHECK_DISABLED_USER,api_key: APIKey = Depends(auth.get_api_key)):
# result = database(f"SELECT `{get.dbname}`.`Gruppen`.`Name` ,`{get.dbname}`.`GruppenToUser`.`Deaktiviert` from `{get.dbname}`.`Active-Directory-User` INNER join `{get.dbname}`.`GruppenToUser` on `{get.dbname}`.`Active-Directory-User`.`ID` = `{get.dbname}`.`GruppenToUser`.`UserID` INNER join`{get.dbname}`.`Gruppen` on `{get.dbname}`.`Gruppen`.`ID` = `{get.dbname}`.`GruppenToUser`.`GruppenID` WHERE `{get.dbname}`.`Active-Directory-User`.`SamAccountName` = '{get.user}' AND `{get.dbname}`.`GruppenToUser`.`Deaktiviert` LIKE '%{datetime.now().strftime('%Y-%m-%d')}%'",f"{get.dbname}","") result = database(f"SELECT `{get.dbname}`.`Gruppen`.`Name` ,`{get.dbname}`.`GruppenToADUser`.`Deaktiviert` from `{get.dbname}`.`Active-Directory-User` INNER join `{get.dbname}`.`GruppenToADUser` on `{get.dbname}`.`Active-Directory-User`.`ID` = `{get.dbname}`.`GruppenToADUser`.`ADUserID` INNER join`{get.dbname}`.`Gruppen` on `{get.dbname}`.`Gruppen`.`ID` = `{get.dbname}`.`GruppenToADUser`.`GruppenID` WHERE `{get.dbname}`.`Active-Directory-User`.`SamAccountName` = '{get.user}'",f"{get.dbname}","")
result = database(f"SELECT `{get.dbname}`.`Gruppen`.`Name` ,`{get.dbname}`.`GruppenToUser`.`Deaktiviert` from `{get.dbname}`.`Active-Directory-User` INNER join `{get.dbname}`.`GruppenToUser` on `{get.dbname}`.`Active-Directory-User`.`ID` = `{get.dbname}`.`GruppenToUser`.`UserID` INNER join`{get.dbname}`.`Gruppen` on `{get.dbname}`.`Gruppen`.`ID` = `{get.dbname}`.`GruppenToUser`.`GruppenID` WHERE `{get.dbname}`.`Active-Directory-User`.`SamAccountName` = '{get.user}'",f"{get.dbname}","")
return result return result
@app.post("/report/getgroup") @app.post("/report/getgroup")
@@ -265,17 +274,20 @@ async def get_user_id(get: CL.CL_GET_USER_ID,api_key: APIKey = Depends(auth.get_
@app.post("/report/addusertogroup") @app.post("/report/addusertogroup")
async def get_addusertogroup(get: CL.CL_ADD_USER_TO_GROUP,api_key: APIKey = Depends(auth.get_api_key)): async def get_addusertogroup(get: CL.CL_ADD_USER_TO_GROUP,api_key: APIKey = Depends(auth.get_api_key)):
groupid = []
userid = database(f"SELECT ID FROM `{get.dbname}`.`Active-Directory-User` WHERE SamAccountName = '{get.member}' ORDER BY ID DESC LIMIT 1","","")[0][0] userid = database(f"SELECT ID FROM `{get.dbname}`.`Active-Directory-User` WHERE SamAccountName = '{get.member}' ORDER BY ID DESC LIMIT 1","","")[0][0]
print(userid)
groupid = database(f"SELECT ID FROM `{get.dbname}`.Gruppen WHERE Name = '{get.groupname}'","","") groupid = database(f"SELECT ID FROM `{get.dbname}`.Gruppen WHERE Name = '{get.groupname}'","","")
if not groupid: if not groupid:
database(f"INSERT INTO `{get.dbname}`.Gruppen (Name) VALUES ('{get.groupname}')","","") database(f"INSERT INTO `{get.dbname}`.Gruppen (Name) VALUES ('{get.groupname}')","","")
groupid = database(f"SELECT ID FROM `{get.dbname}`.Gruppen WHERE Name = '{get.groupname}'", "", "")[0][0] groupid = database(f"SELECT ID FROM `{get.dbname}`.Gruppen WHERE Name = '{get.groupname}'", "", "")[0][0]
check = database(f"SELECT * FROM `{get.dbname}`.GruppenToUser WHERE UserID = {userid} AND GruppenID = {groupid[0][0]}","","") check = database(f"SELECT * FROM `{get.dbname}`.GruppenToADUser WHERE ADUserID = {userid} AND GruppenID = {groupid[0][0]}","","")
if not check: if not check:
database(f"INSERT INTO `{get.dbname}`.GruppenToUser (UserID,GruppenID) VALUES ({userid},{groupid[0][0]})","","") database(f"INSERT INTO `{get.dbname}`.GruppenToADUser (ADUserID,GruppenID) VALUES ({userid},{groupid[0][0]})","","")
else: else:
newid = database(f"SELECT db1.ID FROM `{get.dbname}`.`Active-Directory-User` as db1 WHERE db1.SamAccountName = '{get.member}' ORDER BY ID DESC LIMIT 1","","")
print(newid)
oldid = database(f"SELECT gtu.ADUserID FROM `{get.dbname}`.GruppenToADUser as gtu INNER JOIN `{get.dbname}`.`Active-Directory-User` as db2 ON gtu.ADUserID = db2.id WHERE db2.SamAccountName = '{get.member}' LIMIT 1","","")
print(oldid)
database(f"UPDATE `{get.dbname}`.GruppenToADUser as gtu SET gtu.ADUserID = '{newid[0][0]}' WHERE gtu.ADUserID = '{oldid[0][0]}'","","")
return check return check
@app.post("/report/addgroup") @app.post("/report/addgroup")
@@ -283,6 +295,11 @@ async def get_addreport_group(get: CL.CL_ADD_REPORT_GROUP,api_key: APIKey = Depe
print(database(get.query,get.dbname,"")) print(database(get.query,get.dbname,""))
return f"Create {get.query} - {get.dbname}" return f"Create {get.query} - {get.dbname}"
@app.post("/report/errorlog")
async def get_errorlog(get: CL.CL_ERROR_LOG,api_key: APIKey = Depends(auth.get_api_key)):
print(database(f"INSERT INTO {get.dname}.ERROR_LOG (datum,hostname,samaccouuntname,fehlercode) VALUES ({get.datum},{get.hostname},{get.user},{get.errocode})","",""))
return f"ADD {get.errocode} - {get.hostname}"
@app.post("/ad/addgroup") @app.post("/ad/addgroup")
async def add_ad_user(get: CL.CL_ADD_AD_GROUP,api_key: APIKey = Depends(auth.get_api_key)): async def add_ad_user(get: CL.CL_ADD_AD_GROUP,api_key: APIKey = Depends(auth.get_api_key)):
print(database(get.query,get.dbname,get.entry)) print(database(get.query,get.dbname,get.entry))
@@ -295,14 +312,20 @@ async def add_ad_user(get: CL.CL_ADD_EX_USER,api_key: APIKey = Depends(auth.get_
@app.post("/add/group/volume") @app.post("/add/group/volume")
async def send_group_volume(get: CL.CL_ADD_GROUP_VOLUME,api_key: APIKey = Depends(auth.get_api_key)): async def send_group_volume(get: CL.CL_ADD_GROUP_VOLUME,api_key: APIKey = Depends(auth.get_api_key)):
volume_id = database(f"SELECT ID FROM Netvolume WHERE Volume_Name = '{get.label}'", f"{get.dbname}", "") volume_id = database(f"SELECT ID FROM Netvolume WHERE Volume_Path = '{get.path}' AND Volume_Name = '{get.label}'", f"{get.dbname}", "")
if not volume_id: if not volume_id:
database(f"INSERT INTO `{get.dbname}`.Netvolume (Volume_Key,Volume_Path,Volume_Name) VALUES ('{get.letter}','{get.path}','{get.label}')", "", database(f"INSERT INTO `{get.dbname}`.Netvolume (Volume_Key,Volume_Path,Volume_Name) VALUES ('{get.letter}','{get.path}','{get.label}')", "",
"") "")
group_id = database(f"SELECT GruppenID FROM GruppenToNetvolumes WHERE NetvolumeID = '{volume_id}'", f"{get.dbname}", "") group_id = database(f"SELECT GruppenID FROM GruppenToNetvolumes WHERE NetvolumeID = '{volume_id[0][0]}'", f"{get.dbname}", "")
if not group_id: if not group_id:
group_id = database(f"SELECT ID FROM `{get.dbname}`.Gruppen WHERE Name = {get.group})", "","") group_id = database(f"SELECT ID FROM `{get.dbname}`.Gruppen WHERE Name = '{get.group}'", "","")
database(f"INSERT INTO `{get.dbname}`.GruppenToNetvolumes (GruppenID,NetvolumeID) VALUES ('{group_id}','{volume_id}')", "","") if not group_id:
group_id = database(f"SELECT ID FROM `{get.dbname}`.`Active-Directory-User` WHERE SamAccountName = '{get.group}' ORDER BY ID DESC LIMIT 1", "", "")
database(f"INSERT INTO `{get.dbname}`.GruppenToNetvolumes (UserID,NetvolumeID) VALUES ('{group_id[0][0]}','{volume_id[0][0]}')", "","")
else:
database(
f"INSERT INTO `{get.dbname}`.GruppenToNetvolumes (GruppenID,NetvolumeID) VALUES ('{group_id[0][0]}','{volume_id[0][0]}')",
"", "")
# database(get.query,get.dbname,get.entry) # database(get.query,get.dbname,get.entry)
return f"Create {get.label} - {get.path}" return f"Create {get.label} - {get.path}"
@@ -312,6 +335,27 @@ async def volume_mount(get: CL.CL_GET_VOLUME,api_key: APIKey = Depends(auth.get_
database(f"INSERT INTO `Volume-Mount` (date,user) VALUES ('{get.date}','{get.user}')","Stines-GmbH","") database(f"INSERT INTO `Volume-Mount` (date,user) VALUES ('{get.date}','{get.user}')","Stines-GmbH","")
return f"User {get.user} ADD" return f"User {get.user} ADD"
@app.post("/report")
async def reporting(get: CL.CL_REPORTING,api_key: APIKey = Depends(auth.get_api_key)):
print(f"{get.username}")
print(f"{get.lastaccess}")
print(f"{get.ipaddress}")
user_check = database(f"SELECT username from users where username = '{get.username}'","Kunden","")
if not user_check:
print("User not exist")
# TBD add Message to Admin by Gotify or E-Mail
else:
entry = database(f"SELECT s.customer_ID,s.service_ID from `server` s where s.privat_ipaddress LIKE '%{get.ipaddress}%'","Kunden","")
customer_ID = entry[0][0]
service_ID = entry[0][1]
reportingdate = datetime.now()
reportingdate = reportingdate.strftime("%Y-%m-%d %H:%M:%S")
print(reportingdate)
database(f"INSERT INTO `services.reporting` (username,service_ID,customer_ID,reportingdate,lastaccess) VALUES ('{get.username}','{service_ID}','{customer_ID}','{reportingdate}','{get.lastaccess}')","Kunden","")
print(f"INSERT INTO `services.reporting` (username,service_ID,customer_ID,reportingdate,lastaccess) VALUES ('{get.username}','{service_ID}','{customer_ID}','{reportingdate}','{get.lastaccess}')","Kunden","")
print(f"{service_ID} - {customer_ID}")
## Startet den API-Server ## Startet den API-Server
if __name__ == '__main__': if __name__ == '__main__':
uvicorn.run("main:app", host='0.0.0.0', port=8001, reload=True, log_level="debug") uvicorn.run("main:app", host='0.0.0.0', port=8001, reload=True, log_level="debug")
BIN
View File
Binary file not shown.