Greenbone Security Assistant
Macros | Functions | Variables
gsad_session.c File Reference

GSAD user session handling. More...

#include "gsad_session.h"
#include "gsad_user.h"
#include "utils.h"

Macros

#define G_LOG_DOMAIN   "gsad session"
 GLib log domain. More...
 

Functions

user_tsession_get_user_by_id_internal (const gchar *id)
 
void session_remove_user_internal (const gchar *id)
 
void session_add_user_internal (user_t *user)
 
void session_init ()
 
user_tsession_get_user_by_id (const gchar *id)
 
user_tsession_get_user_by_username (const gchar *username)
 
void session_add_user (const gchar *id, user_t *user)
 Add user to the session "database". More...
 
void session_remove_user (const gchar *id)
 Remove a user from the session "database". More...
 
void session_remove_other_sessions (const gchar *id, user_t *user)
 Removes all session of the user, except the one with the passed id. More...
 

Variables

GPtrArray * users = NULL
 User session data. More...
 
static GMutex * mutex = NULL
 Mutex to prevent concurrent access to the session. More...
 

Detailed Description

GSAD user session handling.

Macro Definition Documentation

◆ G_LOG_DOMAIN

#define G_LOG_DOMAIN   "gsad session"

GLib log domain.

Function Documentation

◆ session_add_user()

void session_add_user ( const gchar *  id,
user_t user 
)

Add user to the session "database".

Parameters
[in]idUnique identifier.
[in]userUser.

◆ session_add_user_internal()

void session_add_user_internal ( user_t user)

◆ session_get_user_by_id()

user_t* session_get_user_by_id ( const gchar *  id)

Find a user by a session identifier

Returns
Return a copy of the user or NULL if not found

◆ session_get_user_by_id_internal()

user_t* session_get_user_by_id_internal ( const gchar *  id)

◆ session_get_user_by_username()

user_t* session_get_user_by_username ( const gchar *  username)

Find the first user with the username

Returns
Return a copy of the user or NULL if not found

◆ session_init()

void session_init ( )

◆ session_remove_other_sessions()

void session_remove_other_sessions ( const gchar *  id,
user_t user 
)

Removes all session of the user, except the one with the passed id.

Parameters
[in]idID of the session to keep
[in]userThe user to logout.

◆ session_remove_user()

void session_remove_user ( const gchar *  id)

Remove a user from the session "database".

Parameters
[in]idUnique identifier.

◆ session_remove_user_internal()

void session_remove_user_internal ( const gchar *  id)

Variable Documentation

◆ mutex

GMutex* mutex = NULL
static

Mutex to prevent concurrent access to the session.

◆ users

GPtrArray* users = NULL

User session data.