FOSSology  4.4.0
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;
35 
36 /* for DB */
37 extern PGconn* pgConn;
38 
43 #define MAXSQL 2048
48 #define MAXSQLFolder 1024
53 #define MAXLINE 1024
58 #define myBUFSIZ 2048
59 
60 /* authentication and permission checking */
61 int authentication(char *user, char * password, int *userId, int *userPerm);
62 
63 int check_permission_upload(int wantedPermissions, long uploadId, int userId, int userPerm);
64 int check_read_permission_upload(long upload_id, int userId, int userPerm);
65 int check_write_permission_upload(long upload_id, int userId, int userPerm);
66 int check_permission_folder(long folder_id, int userId, int userPerm);
67 int check_permission_license(long license_id, int userPerm);
68 
69 /* functions that list things */
70 int listFolders(int userId, int userPerm);
71 int listUploads(int userId, int userPerm);
72 int listFoldersRecurse(long Parent, int Depth, long Row, int DelFlag, int userId, int userPerm);
73 
74 /* function that delete actual things */
75 int deleteUpload(long uploadId, int userId, int userPerm);
76 int deleteFolder(long cFolder, long pFolder, int userId, int userPerm);
77 int unlinkContent(long child, long parent, int mode, int userId, int userPerm);
78 
79 /* for usage from scheduler */
80 void doSchedulerTasks();
81 
82 /* misc */
83 void usage(char *Name);
84 void exitNow(int exitVal);
85 #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:165
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:490
void doSchedulerTasks()
process the jobs from scheduler
Definition: util.c:1092
int listFoldersRecurse(long Parent, int Depth, long Row, int DelFlag, int userId, int userPerm)
Draw folder tree.
Definition: util.c:552
int authentication(char *user, char *password, int *userId, int *userPerm)
if this account is valid
Definition: util.c:96
void exitNow(int exitVal)
Exit function. This does all cleanup and should be used instead of calling exit() or main() return.
Definition: util.c:1131
int Verbose
Verbose level.
Definition: util.c:19
int listUploads(int userId, int userPerm)
List every upload ID.
Definition: util.c:918
int Test
Definition: util.c:20
int listFolders(int userId, int userPerm)
List every folder.
Definition: util.c:875
int deleteUpload(long uploadId, int userId, int userPerm)
Given an upload ID, delete it.
Definition: util.c:285
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:211
int deleteFolder(long cFolder, long pFolder, int userId, int userPerm)
recursively delete a folder
Definition: util.c:972
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:196
The main FOSSology C library.
FUNCTION void usage(char *name)
Definition: usage.c:18