Anzeigen:
Modul: Core

Mit einer Instanz von UserAccess kann eine App auf User zugreifen, die bereits einmal im Channel waren, als die App lief. Für alle nicht zugreifbaren User kann man via UserAccess den korrekt geschriebenen Nicknamen erhalten.

Die Instanz für die UserAccess erhält man über das KnuddelsServer-Objekt mit KnuddelsServer.getUserAccess()

Methoden

eachAccessibleUser

(
  • callback
  • [parameters]
)

Loopt über alle zugreifbaren User sortiert nach Registrierzeitpunkt und führt für jeden User das übergebene Callback aus.

Parameter:

  • callback Function

    der für jeden User aufgerufen wird. Wird hier als return-value false zurückgegeben, so stoppt das Loopen.

  • [parameters] Object optional

    Objekt zum Übergeben optionaler Parameter

    • [onStart] Function optional

      Callback, das aufgerufen wird, bevor über alle Nutzer geloopt wird

    • [onEnd] Function optional

      Callback, das aufgerufen wird, sobald über alle Nutzer geloopt wurde

Beispiel:

var birthdayMailCount = 0;

var parameters = {
    onStart: function(accessibleUserCount)
    {
        KnuddelsServer.getDefaultLogger().info('Starte Geburtstagsmails.');
    },
    onEnd: function(accessibleUserCount)
    {
        KnuddelsServer.getDefaultLogger().info('Ende Geburtstagsmails: ' + birthdayMailCount);
    }
};
userAccess.eachAccessibleUser(function(user, index, accessibleUserCount)
{
    const kAgeYesterday = 'ageYesterday';
    var userPersistence = user.getPersistence();
    
    var ageYesterday = userPersistence.getNumber(kAgeYesterday, 0);
    
    var ageToday = user.getAge();
    
    var ageChanged = ageToday != ageYesterday;
    
    if (ageChanged)
    {
        var topic = 'Alles Gute zum Geburtstag';
        var text = 'Hey! Zu deinem Ehrentag wünschen wir dir alles Gute!';
        
        user.sendPostMessage(topic, text);
        
        userPersistence.setNumber(kAgeYesterday, ageToday);
        birthdayMailCount++;
    }
    
}, parameters);

exists

(
  • nick
)
Boolean

Informiert darüber, ob ein Nutzer mit dem übergebenen Nicknamen existiert.

Parameter:

Rückgabewert:

Boolean:

true, falls ein User mit diesem Nick existiert, false andernfalls

Beispiel:

var nick = 'Ironist';

var userAccess = KnuddelsServer.getUserAccess();

var userExists = userAccess.exists(nick);

getNick

(
  • userId
)
String

Liefert den Nicknamen des Nutzers mit der übergebenen userId in der korrekten Schreibweise.

Parameter:

Rückgabewert:

String:

Korrekt geschriebener Nickname für den User der übergebenen userId

Beispiel:

var nick = 'IrOniSt';

var userAccess = KnuddelsServer.getUserAccess();

if (userAccess.exists(nick))
{
    var userId = userAccess.getUserId(nick);
    
    if (userAccess.mayAccess(userId))
    {
        var user = userAccess.getUserById(userId);  // Ironist as user
    }
    else
    {
        var correctNick = userAccess.getNick(userId); // 'Ironist'
    }
}

getUserById

(
  • userId
)
User

Liefert den Nutzer mit der übergebenen userId. Neben dem AppDeveloper können nur Nutzer geladen werden, die sich einmal im Channel befanden, als die App lief. Es wird empfohlen vor der Abfrage von getUserById(userId) mit mayAccess abzufragen, ob dies funktionieren wird.

Parameter:

Rückgabewert:

User:

User, der die übergebene userId besitzt

Beispiel:

var nick = 'Ironist';

var userAccess = KnuddelsServer.getUserAccess();

if (userAccess.exists(nick))
{
    var userId = userAccess.getUserId(nick);
    
    if (userAccess.mayAccess(userId))
    {
        var user = userAccess.getUserById(userId);
    }
}

getUserId

(
  • nick
)
Number

Liefert die userId des Nutzers mit dem übergebenen Nicknamen.

Parameter:

Rückgabewert:

Number:

userId des Users mit dem angegebenen Nick

Beispiel:

var nick = 'Ironist';

var userAccess = KnuddelsServer.getUserAccess();

if (userAccess.exists(nick))
{
    var userId = userAccess.getUserId(nick);
}

mayAccess

(
  • userId
)
Boolean

Informiert darüber, ob der Nutzer mit der übergebenen userId geladen werden darf. Neben dem AppDeveloper können nur Nutzer geladen werden, die sich einmal im Channel befanden, als die App lief.

Parameter:

Rückgabewert:

Boolean:

true, falls der Nutzer mit getUserById geladen werden darf, false andernfalls

Beispiel:

var nick = 'Ironist';

var userAccess = KnuddelsServer.getUserAccess();

if (userAccess.exists(nick))
{
    var userId = userAccess.getUserId(nick);
    
    if (userAccess.mayAccess(userId))
    {
        // Der User ist zugreifbar...
    }
}