FOSSology  4.5.1
Open Source License Compliance by Open Source Software
delagent.h
1 /*
2  SPDX-FileCopyrightText: © 2007-2012 Hewlett-Packard Development Company, L.P.
3  SPDX-FileCopyrightText: © 2015-2019 Siemens AG
4 
5  SPDX-License-Identifier: GPL-2.0-only
6 */
11 #ifndef _DELAGENT_H
12 #define _DELAGENT_H 1
13 
14 #include <stdlib.h>
15 #include <stdio.h>
16 #include <unistd.h>
17 #include <stdint.h>
18 #include <ctype.h>
19 #include <string.h>
20 #include <dirent.h>
21 #include <time.h>
22 #include <signal.h>
23 #include <libgen.h>
24 #include <getopt.h>
25 #include <gcrypt.h>
26 
27 #include "libfossology.h"
28 
29 extern int Verbose;
34 extern int Test;
39 extern int Scheduler;
40 
41 /* for DB */
42 extern PGconn* pgConn;
43 
48 #define MAXSQL 2048
53 #define MAXSQLFolder 1024
58 #define MAXLINE 1024
63 #define myBUFSIZ 2048
64 
65 /* authentication and permission checking */
66 int authentication(char *user, char * password, int *userId, int *userPerm);
67 
68 int check_permission_upload(int wantedPermissions, long uploadId, int userId, int userPerm);
69 int check_read_permission_upload(long upload_id, int userId, int userPerm);
70 int check_write_permission_upload(long upload_id, int userId, int userPerm);
71 int check_permission_folder(long folder_id, int userId, int userPerm);
72 int check_permission_license(long license_id, int userPerm);
73 
74 /* functions that list things */
75 int listFolders(int userId, int userPerm);
76 int listUploads(int userId, int userPerm);
77 int listFoldersRecurse(long Parent, int Depth, long Row, int DelFlag, int userId, int userPerm);
78 
79 /* function that delete actual things */
80 int deleteUpload(long uploadId, int userId, int userPerm);
81 int deleteFolder(long cFolder, long pFolder, int userId, int userPerm);
82 int unlinkContent(long child, long parent, int mode, int userId, int userPerm);
83 
84 /* for usage from scheduler */
85 void doSchedulerTasks();
86 
87 /* misc */
88 void usage(char *Name);
89 void exitNow(int exitVal);
90 #endif /* _DELAGENT_H */
PGconn * pgConn
Database connection.
Definition: adj2nest.c:86
int check_permission_upload(int wanted_permissions, long uploadId, int userId, int userPerm)
check if the upload can be deleted, that is the user have the permission to delete this upload
Definition: util.c:198
int unlinkContent(long child, long parent, int mode, int userId, int userPerm)
remove link between parent and (child,mode) if there are other parents
Definition: util.c:536
void doSchedulerTasks()
process the jobs from scheduler
Definition: util.c:1138
int listFoldersRecurse(long Parent, int Depth, long Row, int DelFlag, int userId, int userPerm)
Draw folder tree.
Definition: util.c:598
int authentication(char *user, char *password, int *userId, int *userPerm)
if this account is valid
Definition: util.c:129
void exitNow(int exitVal)
Exit function. This does all cleanup and should be used instead of calling exit() or main() return.
Definition: util.c:1177
int Verbose
Verbose level.
Definition: util.c:19
int listUploads(int userId, int userPerm)
List every upload ID.
Definition: util.c:964
int Test
Definition: util.c:20
int Scheduler
Definition: util.c:21
int listFolders(int userId, int userPerm)
List every folder.
Definition: util.c:921
int deleteUpload(long uploadId, int userId, int userPerm)
Given an upload ID, delete it.
Definition: util.c:318
int check_write_permission_upload(long uploadId, int userId, int userPerm)
check if the user has read permission on the given upload
Definition: util.c:244
int deleteFolder(long cFolder, long pFolder, int userId, int userPerm)
recursively delete a folder
Definition: util.c:1018
int check_read_permission_upload(long uploadId, int userId, int userPerm)
check if the user has read permission on the given upload
Definition: util.c:229
The main FOSSology C library.
FUNCTION void usage(char *name)
Definition: usage.c:18