docs: function (hostmask, opts) {
              return Promise.try(function () {
                  if (opts && opts.allowAll === true) {
                      return true;
                  }
  
                  const customAdmins = opts && opts.customAdmins;
                  const memoizationKey = opts && opts.memoizeOver;
                  const hostmask_passed = (customAdmins || admins).filter(function (admin) {
                      return checkHostmask(hostmask, admin);
                  });
  
                  if (hostmask_passed.some(notHasIdentifiedasProperty)) {
                      client.debug("PluginAdmin", "Admin object w/o identifiedas property (true)");
                      return true;
                  }
  
                  client.debug("PluginAdmin", "Admin object w/o identifiedas property (false)");
  
                  return (function recur () {
                      if (hostmask_passed.length === 0) {
                          client.debug("PluginAdmin", "User passes an identifiedas check (false)");
                          return false;
                      }
  
                      return Promise.try(function () {
                          const hostmask = hostmask_passed.pop();
                          return hostmask.identifiedas;
                      })
                      .then(function (accountname) {
                          return isIdentifiedAs(hostmask.nickname, accountname, {memoizeOver: memoizationKey});
                      })
                      .then(function (isIdentifiedAs) {
                          if (isIdentifiedAs) {
                              client.debug("PluginAdmin", "User passes an identifiedas check (true)");
                              return true;
                          } else {
                              return recur();
                          }
                      });
                  }());
              });
          }