mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-10 11:09:04 -04:00
m_sasl Create SASLCap which subclasses Cap::Capability and implements OnRequest()
This commit is contained in:
parent
bc388aa97c
commit
53b9f55c18
@ -24,6 +24,25 @@
|
|||||||
#include "modules/sasl.h"
|
#include "modules/sasl.h"
|
||||||
#include "modules/ssl.h"
|
#include "modules/ssl.h"
|
||||||
|
|
||||||
|
class SASLCap : public Cap::Capability
|
||||||
|
{
|
||||||
|
bool OnRequest(LocalUser* user, bool adding) CXX11_OVERRIDE
|
||||||
|
{
|
||||||
|
// Requesting this cap is allowed anytime
|
||||||
|
if (adding)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// But removing it can only be done when unregistered
|
||||||
|
return (user->registered != REG_ALL);
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
SASLCap(Module* mod)
|
||||||
|
: Cap::Capability(mod, "sasl")
|
||||||
|
{
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
enum SaslState { SASL_INIT, SASL_COMM, SASL_DONE };
|
enum SaslState { SASL_INIT, SASL_COMM, SASL_DONE };
|
||||||
enum SaslResult { SASL_OK, SASL_FAIL, SASL_ABORT };
|
enum SaslResult { SASL_OK, SASL_FAIL, SASL_ABORT };
|
||||||
|
|
||||||
@ -247,7 +266,7 @@ class CommandSASL : public Command
|
|||||||
class ModuleSASL : public Module
|
class ModuleSASL : public Module
|
||||||
{
|
{
|
||||||
SimpleExtItem<SaslAuthenticator> authExt;
|
SimpleExtItem<SaslAuthenticator> authExt;
|
||||||
Cap::Capability cap;
|
SASLCap cap;
|
||||||
CommandAuthenticate auth;
|
CommandAuthenticate auth;
|
||||||
CommandSASL sasl;
|
CommandSASL sasl;
|
||||||
Events::ModuleEventProvider sasleventprov;
|
Events::ModuleEventProvider sasleventprov;
|
||||||
@ -255,7 +274,7 @@ class ModuleSASL : public Module
|
|||||||
public:
|
public:
|
||||||
ModuleSASL()
|
ModuleSASL()
|
||||||
: authExt("sasl_auth", ExtensionItem::EXT_USER, this)
|
: authExt("sasl_auth", ExtensionItem::EXT_USER, this)
|
||||||
, cap(this, "sasl")
|
, cap(this)
|
||||||
, auth(this, authExt, cap)
|
, auth(this, authExt, cap)
|
||||||
, sasl(this, authExt)
|
, sasl(this, authExt)
|
||||||
, sasleventprov(this, "event/sasl")
|
, sasleventprov(this, "event/sasl")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user