Code Review
/
src
/
app-framework-binder.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
jobs: Ensure releasing event loop
[src/app-framework-binder.git]
/
include
/
afb
/
afb-auth.h
diff --git
a/include/afb/afb-auth.h
b/include/afb/afb-auth.h
index
fe29ade
..
b9162cd
100644
(file)
--- a/
include/afb/afb-auth.h
+++ b/
include/afb/afb-auth.h
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (C) 2016, 2017 "IoT.bzh"
+ * Copyright (C) 2016, 2017
, 2018
"IoT.bzh"
* Author: José Bollo <jose.bollo@iot.bzh>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Author: José Bollo <jose.bollo@iot.bzh>
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@
-17,24
+17,63
@@
#pragma once
#pragma once
-/*
- * Enum for Session/Token/Assurance middleware.
+/** @defgroup AFB_AUTH
+ * @{ */
+
+
+/**
+ * Enumeration for authority (Session/Token/Assurance) definitions.
+ *
+ * @see afb_auth
*/
enum afb_auth_type
{
*/
enum afb_auth_type
{
+ /** never authorized, no data */
afb_auth_No = 0,
afb_auth_No = 0,
+
+ /** authorized if token valid, no data */
+ afb_auth_Token,
+
+ /** authorized if LOA greater than or equal to data 'loa' */
+ afb_auth_LOA,
+
+ /** authorized if permission 'text' is granted */
afb_auth_Permission,
afb_auth_Permission,
+
+ /** authorized if 'first' or 'next' is authorized */
afb_auth_Or,
afb_auth_Or,
+
+ /** authorized if 'first' and 'next' are authorized */
afb_auth_And,
afb_auth_And,
+
+ /** authorized if 'first' is not authorized */
+ afb_auth_Not,
+
+ /** always authorized, no data */
afb_auth_Yes
};
afb_auth_Yes
};
-struct afb_auth_desc
+/**
+ * Definition of an authorization entry
+ */
+struct afb_auth
{
{
+ /** type of entry @see afb_auth_type */
enum afb_auth_type type;
enum afb_auth_type type;
+
union {
union {
+ /** text when @ref type == @ref afb_auth_Permission */
const char *text;
const char *text;
- struct afb_auth_desc *child[2];
+
+ /** level of assurancy when @ref type == @ref afb_auth_LOA */
+ unsigned loa;
+
+ /** first child when @ref type in { @ref afb_auth_Or, @ref afb_auth_And, @ref afb_auth_Not } */
+ const struct afb_auth *first;
};
};
+
+ /** second child when @ref type in { @ref afb_auth_Or, @ref afb_auth_And } */
+ const struct afb_auth *next;
};
};
+/** @} */
\ No newline at end of file