Add opbots and unrestricted bots

This commit is contained in:
klondike 2014-04-04 04:59:13 +02:00 committed by Francisco Blas (klondike) Izquierdo Riera
parent 05edfa48b2
commit d86ef503b3
4 changed files with 34 additions and 1 deletions

View File

@ -170,6 +170,9 @@ static int acl_parse_line(char* line, int line_count, void* ptr_data)
LOG_DEBUG("acl_parse_line: '%s'", line); LOG_DEBUG("acl_parse_line: '%s'", line);
ACL_ADD_USER("bot", handle->users, auth_cred_bot); ACL_ADD_USER("bot", handle->users, auth_cred_bot);
ACL_ADD_USER("ubot", handle->users, auth_cred_ubot);
ACL_ADD_USER("opbot", handle->users, auth_cred_opbot);
ACL_ADD_USER("opubot", handle->users, auth_cred_opubot);
ACL_ADD_USER("user_admin", handle->users, auth_cred_admin); ACL_ADD_USER("user_admin", handle->users, auth_cred_admin);
ACL_ADD_USER("user_super", handle->users, auth_cred_super); ACL_ADD_USER("user_super", handle->users, auth_cred_super);
ACL_ADD_USER("user_op", handle->users, auth_cred_operator); ACL_ADD_USER("user_op", handle->users, auth_cred_operator);

View File

@ -571,6 +571,10 @@ static int set_credentials(struct hub_info* hub, struct hub_user* user, struct a
adc_msg_add_argument(cmd, ADC_INF_FLAG_CLIENT_TYPE ADC_CLIENT_TYPE_BOT); adc_msg_add_argument(cmd, ADC_INF_FLAG_CLIENT_TYPE ADC_CLIENT_TYPE_BOT);
break; break;
case auth_cred_ubot:
adc_msg_add_argument(cmd, ADC_INF_FLAG_CLIENT_TYPE ADC_CLIENT_TYPE_BOT);
break;
case auth_cred_guest: case auth_cred_guest:
/* Nothing to be added to the info message */ /* Nothing to be added to the info message */
break; break;
@ -583,6 +587,14 @@ static int set_credentials(struct hub_info* hub, struct hub_user* user, struct a
adc_msg_add_argument(cmd, ADC_INF_FLAG_CLIENT_TYPE ADC_CLIENT_TYPE_OPERATOR); adc_msg_add_argument(cmd, ADC_INF_FLAG_CLIENT_TYPE ADC_CLIENT_TYPE_OPERATOR);
break; break;
case auth_cred_opbot:
adc_msg_add_argument(cmd, ADC_INF_FLAG_CLIENT_TYPE ADC_CLIENT_TYPE_HUBBOT);
break;
case auth_cred_opubot:
adc_msg_add_argument(cmd, ADC_INF_FLAG_CLIENT_TYPE ADC_CLIENT_TYPE_HUBBOT);
break;
case auth_cred_super: case auth_cred_super:
adc_msg_add_argument(cmd, ADC_INF_FLAG_CLIENT_TYPE ADC_CLIENT_TYPE_SUPER_USER); adc_msg_add_argument(cmd, ADC_INF_FLAG_CLIENT_TYPE ADC_CLIENT_TYPE_SUPER_USER);
break; break;

View File

@ -24,6 +24,9 @@ int auth_cred_is_protected(enum auth_credentials cred)
switch (cred) switch (cred)
{ {
case auth_cred_bot: case auth_cred_bot:
case auth_cred_ubot:
case auth_cred_opbot:
case auth_cred_opubot:
case auth_cred_operator: case auth_cred_operator:
case auth_cred_super: case auth_cred_super:
case auth_cred_admin: case auth_cred_admin:
@ -45,6 +48,9 @@ int auth_cred_is_registered(enum auth_credentials cred)
switch (cred) switch (cred)
{ {
case auth_cred_bot: case auth_cred_bot:
case auth_cred_ubot:
case auth_cred_opbot:
case auth_cred_opubot:
case auth_cred_user: case auth_cred_user:
case auth_cred_operator: case auth_cred_operator:
case auth_cred_super: case auth_cred_super:
@ -64,6 +70,9 @@ const char* auth_cred_to_string(enum auth_credentials cred)
{ {
case auth_cred_none: return "none"; case auth_cred_none: return "none";
case auth_cred_bot: return "bot"; case auth_cred_bot: return "bot";
case auth_cred_ubot: return "ubot";
case auth_cred_opbot: return "opbot";
case auth_cred_opubot: return "opubot";
case auth_cred_guest: return "guest"; case auth_cred_guest: return "guest";
case auth_cred_user: return "user"; case auth_cred_user: return "user";
case auth_cred_operator: return "operator"; case auth_cred_operator: return "operator";
@ -95,14 +104,20 @@ int auth_string_to_cred(const char* str, enum auth_credentials* out)
if (!strcasecmp(str, "none")) { *out = auth_cred_none; return 1; } if (!strcasecmp(str, "none")) { *out = auth_cred_none; return 1; }
if (!strcasecmp(str, "user")) { *out = auth_cred_user; return 1; } if (!strcasecmp(str, "user")) { *out = auth_cred_user; return 1; }
if (!strcasecmp(str, "link")) { *out = auth_cred_link; return 1; } if (!strcasecmp(str, "link")) { *out = auth_cred_link; return 1; }
if (!strcasecmp(str, "ubot")) { *out = auth_cred_ubot; return 1; }
return 0; return 0;
case 5: case 5:
if (!strcasecmp(str, "admin")) { *out = auth_cred_admin; return 1; } if (!strcasecmp(str, "admin")) { *out = auth_cred_admin; return 1; }
if (!strcasecmp(str, "super")) { *out = auth_cred_super; return 1; } if (!strcasecmp(str, "super")) { *out = auth_cred_super; return 1; }
if (!strcasecmp(str, "opbot")) { *out = auth_cred_opbot; return 1; }
if (!strcasecmp(str, "guest")) { *out = auth_cred_guest; return 1; } if (!strcasecmp(str, "guest")) { *out = auth_cred_guest; return 1; }
return 0; return 0;
case 6:
if (!strcasecmp(str, "opubot")) { *out = auth_cred_opubot; return 1; }
return 0;
case 8: case 8:
if (!strcasecmp(str, "operator")) { *out = auth_cred_operator; return 1; } if (!strcasecmp(str, "operator")) { *out = auth_cred_operator; return 1; }
return 0; return 0;

View File

@ -23,10 +23,13 @@
enum auth_credentials enum auth_credentials
{ {
auth_cred_none, /**<<< "User has no credentials (not yet logged in)" */ 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_guest, /**<<< "User is a guest (unregistered user)" */
auth_cred_user, /**<<< "User is identified as a registered user" */ auth_cred_user, /**<<< "User is identified as a registered user" */
auth_cred_bot, /**<<< "User is a robot" */
auth_cred_ubot, /**<<< "User is an unrestricted robot" */
auth_cred_operator, /**<<< "User is identified as a hub operator" */ auth_cred_operator, /**<<< "User is identified as a hub operator" */
auth_cred_opbot, /**<<< "User is a operator robot" */
auth_cred_opubot, /**<<< "User is an unrestricted operator robot" */
auth_cred_super, /**<<< "User is a super user" (not used) */ auth_cred_super, /**<<< "User is a super user" (not used) */
auth_cred_link, /**<<< "User is a link (not used currently)" */ auth_cred_link, /**<<< "User is a link (not used currently)" */
auth_cred_admin, /**<<< "User is identified as a hub administrator/owner" */ auth_cred_admin, /**<<< "User is identified as a hub administrator/owner" */