Cleaned up the credentials handling, and made it ready for plugins.
This commit is contained in:
77
src/util/credentials.c
Normal file
77
src/util/credentials.c
Normal file
@@ -0,0 +1,77 @@
|
||||
/*
|
||||
* uhub - A tiny ADC p2p connection hub
|
||||
* Copyright (C) 2007-2010, Jan Vidar Krey
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "uhub.h"
|
||||
|
||||
int auth_cred_is_protected(enum auth_credentials cred)
|
||||
{
|
||||
switch (cred)
|
||||
{
|
||||
case auth_cred_bot:
|
||||
case auth_cred_operator:
|
||||
case auth_cred_super:
|
||||
case auth_cred_admin:
|
||||
case auth_cred_link:
|
||||
return 1;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns 1 if a user is registered.
|
||||
* Only registered users will be let in if the hub is configured for registered
|
||||
* users only.
|
||||
*/
|
||||
int auth_cred_is_registered(enum auth_credentials cred)
|
||||
{
|
||||
switch (cred)
|
||||
{
|
||||
case auth_cred_bot:
|
||||
case auth_cred_user:
|
||||
case auth_cred_operator:
|
||||
case auth_cred_super:
|
||||
case auth_cred_admin:
|
||||
case auth_cred_link:
|
||||
return 1;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
const char* auth_cred_to_string(enum auth_credentials cred)
|
||||
{
|
||||
switch (cred)
|
||||
{
|
||||
case auth_cred_none: return "none";
|
||||
case auth_cred_bot: return "bot";
|
||||
case auth_cred_guest: return "guest";
|
||||
case auth_cred_user: return "user";
|
||||
case auth_cred_operator: return "operator";
|
||||
case auth_cred_super: return "super";
|
||||
case auth_cred_link: return "link";
|
||||
case auth_cred_admin: return "admin";
|
||||
}
|
||||
|
||||
return "";
|
||||
};
|
||||
|
||||
54
src/util/credentials.h
Normal file
54
src/util/credentials.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* uhub - A tiny ADC p2p connection hub
|
||||
* Copyright (C) 2007-2010, Jan Vidar Krey
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef HAVE_UHUB_CREDENTIALS_H
|
||||
#define HAVE_UHUB_CREDENTIALS_H
|
||||
|
||||
enum auth_credentials
|
||||
{
|
||||
auth_cred_none, /**<<< "User has no credentials (not yet logged in)" */
|
||||
auth_cred_bot, /**<<< "User is a robot" */
|
||||
auth_cred_guest, /**<<< "User is a guest (unregistered user)" */
|
||||
auth_cred_user, /**<<< "User is identified as a registered user" */
|
||||
auth_cred_operator, /**<<< "User is identified as a hub operator" */
|
||||
auth_cred_super, /**<<< "User is a super user" (not used) */
|
||||
auth_cred_link, /**<<< "User is a link (not used currently)" */
|
||||
auth_cred_admin, /**<<< "User is identified as a hub administrator/owner" */
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns 1 if the credentials means that a user is protected.
|
||||
* Returns 0 otherwise.
|
||||
*/
|
||||
int auth_cred_is_protected(enum auth_credentials cred);
|
||||
|
||||
/**
|
||||
* Returns 1 if a user is registered.
|
||||
* Returns 0 otherwise.
|
||||
* Only registered users will be let in if the hub is configured for registered
|
||||
* users only.
|
||||
*/
|
||||
int auth_cred_is_registered(enum auth_credentials cred);
|
||||
|
||||
/**
|
||||
* Returns a string representation of the credentials enum.
|
||||
*/
|
||||
const char* auth_cred_to_string(enum auth_credentials cred);
|
||||
|
||||
#endif /* HAVE_UHUB_CREDENTIALS_H */
|
||||
Reference in New Issue
Block a user