Documentation ¶
Index ¶
- Constants
- Variables
- func GenerateLink(c *gin.Context, gid int) string
- func GetMailFromContext(c *gin.Context) string
- func GetMailFromUserID(id int) string
- func GetNameFromUserID(id int) string
- func GetUserIDFromContext(c *gin.Context) int
- func GetUserIDFromMail(mail string) int
- func HasLinkAccess(c *gin.Context, id int) bool
- func IsAdmin(id int) bool
- func RequireAdmin(c *gin.Context) bool
- func RequireUser(c *gin.Context) bool
- type Module
- type User
- type UserRole
Constants ¶
const ( //UserIsNotLoggedIn -> der Nutzer ist nicht angemeldet UserIsNotLoggedIn = 0 //UserIsLoggedIn -> der Nutzer ist angemeldet UserIsLoggedIn = 1 //UserIsAdmin -> der Nutzer ist angemdeldet und hat Admin Privilegien UserIsAdmin = 2 )
Variables ¶
var M = Module{}
M ist die Instanz des Moduls und muss immer so heißen, damit andere Module darauf zugreifen können
Functions ¶
func GenerateLink ¶
GenerateLink generiert einen ReadOnly Link für das Objekt mit der Global ID gid
func GetMailFromContext ¶
GetMailFromContext liefert die Mail des angemeldeten Nutzers zurück
func GetMailFromUserID ¶
GetMailFromUserID gibt die Mail des Nutzers für die ID zurück
func GetNameFromUserID ¶
GetNameFromUserID gibt den Anzeigenamen des Nutzer mit der Nutzer ID id zurück
func GetUserIDFromContext ¶
GetUserIDFromContext liefert die Nutzer ID des angemeldeten Nutzers zurück
func GetUserIDFromMail ¶
GetUserIDFromMail gibt für die angegebene Mail die Nutzer ID zurück, Wenn der Nutzer nicht existiert, wird 0 zurück gegeben
func HasLinkAccess ¶
HasLinkAccess gibt true zurück, wenn der Nutzer für die ID Leserechte hat
func IsAdmin ¶
IsAdmin gibt true zurück, wenn der Nutzer mit der id ein Admin ist
func RequireAdmin ¶
RequireAdmin prüft, ob der Nutzer ein Admin ist.
Admin: return true else: return false und gebe einen entsprechenden Status zurück, sodass sich in der Funktion um nichts mehr gekümmert werden muss
Types ¶
type Module ¶
type Module struct{}
Module definiert das Modul
func (*Module) Info ¶
Info gibt Informationen über das Modul aus (Name, ID, Version, Verzeichnis)
func (*Module) Routes ¶
func (*Module) Routes(router *gin.RouterGroup)
Routes richtet die vom Modul benötigten Routen ein
type User ¶
type User struct { UserID int `json:"user_id"` Name string `json:"name"` Password string `json:"password,omitempty"` NewPassword string `json:"newpassword,omitempty"` Mail string `json:"mail"` AdminFlag int `json:"admin_flag"` }
User beschreibt, wie ein Nutzer in JSON und in der Datenbank aussieht
type UserRole ¶
type UserRole int
UserRole gibt den Typ des Nutzers an
func GetUserState ¶
GetUserState überprüft, welche Rechte ein Nutzer hat. Es wird auf den Authorization Header (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization) zugegriffen. Der Header muss den Zusatz Bearer (https://tools.ietf.org/html/rfc6750) haben. Wenn der Header vorhanden ist, wird in der Datenbank nach dem admin_flag geguckt. So wird auch überprüft, ob ein Nutzer in der Datenbank noch vorhanden ist. Die Funktion gibt zurück, was für eine Nutzerrolle der angemeldete Nutzer hat.