Commit f246bb00 authored by Marc Vef's avatar Marc Vef
Browse files

renamed permission to access, skeletons for rm bash command, moved chk_access to adafs_ops/

parent c533577e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -16,6 +16,6 @@ find_package(FUSE3 REQUIRED)
find_package(Boost 1.56.0 COMPONENTS system filesystem serialization)

include_directories(${FUSE3_INCLUDE_DIR} include/)
set(SOURCE_FILES src/main.cpp src/main.h src/fuse_ops.h src/util.cpp src/classes/metadata.h src/classes/metadata.cpp src/adafs_ops/metadata_ops.h src/adafs_ops/metadata_ops.cpp src/adafs_ops/dentry_ops.cpp src/adafs_ops/dentry_ops.h src/configure.h src/fuse_ops/file.cpp src/fuse_ops/directory.cpp src/fuse_ops/permission.cpp src/fuse_utils.h src/fuse_ops/sync.cpp)
set(SOURCE_FILES src/main.cpp src/main.h src/fuse_ops.h src/util.cpp src/classes/metadata.h src/classes/metadata.cpp src/adafs_ops/metadata_ops.h src/adafs_ops/metadata_ops.cpp src/adafs_ops/dentry_ops.cpp src/adafs_ops/dentry_ops.h src/configure.h src/fuse_ops/file.cpp src/fuse_ops/directory.cpp src/fuse_ops/access.cpp src/fuse_ops/sync.cpp src/adafs_ops/access.cpp src/adafs_ops/access.h)
add_executable(adafs ${SOURCE_FILES} src/main.cpp)
target_link_libraries(adafs ${FUSE3_LIBRARIES} -lpthread -lboost_system -lboost_filesystem -lboost_serialization)
 No newline at end of file
+11 −6
Original line number Diff line number Diff line
//
// Created by draze on 3/19/17.
// Created by evie on 3/28/17.
//

#include "../fuse_utils.h"

using namespace std;
#include "access.h"

/**
 *
 * @param md
 * @param mode
 * @return
 */
int chk_access(const Metadata& md, const int mode) {
    ADAFS_DATA->logger->debug("chk_access() enter: metadata_uid {} fusecontext_uid {}", md.uid(), fuse_get_context()->uid);
    ADAFS_DATA->logger->debug("chk_access() enter: metadata_uid {} fusecontext_uid {}", md.uid(),
                              fuse_get_context()->uid);
    // root user is a god
    if (fuse_get_context()->uid == 0)
        return 0;
+14 −0
Original line number Diff line number Diff line
//
// Created by draze on 3/19/17.
// Created by evie on 3/28/17.
//

#ifndef FS_FUSE_UTILS_H
#define FS_FUSE_UTILS_H
#ifndef FS_ACCESS_H
#define FS_ACCESS_H

#include "../classes/metadata.h"

#include "classes/metadata.h"

int chk_access(const Metadata& md, const int mode);

#endif //FS_FUSE_UTILS_H

#endif //FS_ACCESS_H
+16 −13
Original line number Diff line number Diff line
@@ -6,34 +6,37 @@
#define FS_FUSE_OPS_H

#include "main.h"
#include "fuse_utils.h"

// file
int adafs_getattr(const char*, struct stat*, struct fuse_file_info*);
int adafs_getattr(const char* p, struct stat* attr, struct fuse_file_info* fi);

int adafs_mknod(const char*, mode_t, dev_t);
int adafs_mknod(const char* p, mode_t, dev_t);

int adafs_open(const char*, struct fuse_file_info*);
int adafs_open(const char*, struct fuse_file_info* fi);

int adafs_utimens(const char*, const struct timespec tv[2], struct fuse_file_info* fi);
int adafs_unlink(const char* p);

int adafs_utimens(const char* p, const struct timespec tv[2], struct fuse_file_info* fi);

// directory
int adafs_opendir(const char*, struct fuse_file_info*);
int adafs_opendir(const char* p, struct fuse_file_info* fi);

int adafs_readdir(const char*, void*, fuse_fill_dir_t, off_t, struct fuse_file_info*, enum fuse_readdir_flags);
int adafs_readdir(const char* p, void* buf, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info* fi,
                  enum fuse_readdir_flags flags);

int adafs_releasedir(const char*, struct fuse_file_info*);
int adafs_releasedir(const char* p, struct fuse_file_info* fi);

int adafs_mkdir(const char *, mode_t);
int adafs_mkdir(const char* p, mode_t mode);

//
int adafs_flush(const char*, struct fuse_file_info*);
int adafs_flush(const char* p, struct fuse_file_info* fi);

//
// permissions
int adafs_access(const char* p, int mask);


void* adafs_init(struct fuse_conn_info*, struct fuse_config*);
void* adafs_init(struct fuse_conn_info* conn, struct fuse_config* cfg);

void adafs_destroy(void*);
void adafs_destroy(void* adafs_data);

#endif //FS_FUSE_OPS_H
+24 −0
Original line number Diff line number Diff line
//
// Created by draze on 3/19/17.
//

#include "../main.h"
#include "../fuse_ops.h"

using namespace std;

/**
 * Check file access permissions
 *
 * This will be called for the access() system call.  If the
 * 'default_permissions' mount option is given, this method is not
 * called.
 *
 * This method is not called under Linux kernel versions 2.4.x
 */
int adafs_access(const char* p, int mask) {
    ADAFS_DATA->logger->info("##### FUSE FUNC ###### adafs_access() enter: name '{}' mask {}", p, mask);
    // XXX To be implemented for rm
    return 0;
}
Loading