Use afb_token in contexts
[src/app-framework-binder.git] / src / afb-cred.h
index 6f8173f..82d0aac 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 "IoT.bzh"
+ * Copyright (C) 2017-2019 "IoT.bzh"
  * Author: José Bollo <jose.bollo@iot.bzh>
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -19,6 +19,8 @@
 
 #include <sys/types.h>
 
+struct afb_context;
+
 struct afb_cred
 {
        int refcount;
@@ -28,6 +30,7 @@ struct afb_cred
        const char *user;
        const char *label;
        const char *id;
+       const char *exported;
 };
 
 extern struct afb_cred *afb_cred_current();
@@ -36,4 +39,10 @@ extern struct afb_cred *afb_cred_create_for_socket(int fd);
 extern struct afb_cred *afb_cred_addref(struct afb_cred *cred);
 extern void afb_cred_unref(struct afb_cred *cred);
 
+extern int afb_cred_has_permission(struct afb_cred *cred, const char *permission, struct afb_context *context);
+
+extern const char *afb_cred_export(struct afb_cred *cred);
+extern struct afb_cred *afb_cred_import(const char *string);
+
+extern struct afb_cred *afb_cred_mixed_on_behalf_import(struct afb_cred *cred, struct afb_context *context, const char *exported);