New parameter to display a message at the top of the screen
This commit is contained in:
parent
f7da603dbe
commit
b604e98f64
15
auth.go
15
auth.go
@ -13,6 +13,7 @@ import (
|
|||||||
var LocalAuthFunc = checkAuthKrb5
|
var LocalAuthFunc = checkAuthKrb5
|
||||||
var allowLocalAuth bool
|
var allowLocalAuth bool
|
||||||
var localAuthUsers arrayFlags
|
var localAuthUsers arrayFlags
|
||||||
|
var mainBanner string
|
||||||
|
|
||||||
type loginForm struct {
|
type loginForm struct {
|
||||||
Login string `json:"username"`
|
Login string `json:"username"`
|
||||||
@ -47,16 +48,18 @@ func declareAPIAdminAuthRoutes(router *gin.RouterGroup) {
|
|||||||
session.Update()
|
session.Update()
|
||||||
|
|
||||||
c.JSON(http.StatusOK, authToken{
|
c.JSON(http.StatusOK, authToken{
|
||||||
User: newuser,
|
User: newuser,
|
||||||
CurrentPromo: currentPromo,
|
CurrentPromo: currentPromo,
|
||||||
|
MessageBanner: mainBanner,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
type authToken struct {
|
type authToken struct {
|
||||||
*User
|
*User
|
||||||
CurrentPromo uint `json:"current_promo"`
|
CurrentPromo uint `json:"current_promo"`
|
||||||
Groups []string `json:"groups"`
|
Groups []string `json:"groups"`
|
||||||
|
MessageBanner string `json:"banner,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func validateAuthToken(c *gin.Context) {
|
func validateAuthToken(c *gin.Context) {
|
||||||
@ -64,7 +67,7 @@ func validateAuthToken(c *gin.Context) {
|
|||||||
c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"errmsg": "Not connected"})
|
c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"errmsg": "Not connected"})
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
t := authToken{User: u.(*User), CurrentPromo: currentPromo}
|
t := authToken{User: u.(*User), CurrentPromo: currentPromo, MessageBanner: mainBanner}
|
||||||
|
|
||||||
t.Groups = strings.Split(strings.TrimFunc(t.User.Groups, func(r rune) bool { return !unicode.IsLetter(r) }), ",")
|
t.Groups = strings.Split(strings.TrimFunc(t.User.Groups, func(r rune) bool { return !unicode.IsLetter(r) }), ",")
|
||||||
|
|
||||||
@ -157,6 +160,6 @@ func dummyAuth(c *gin.Context) {
|
|||||||
c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"errmsg": err.Error()})
|
c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"errmsg": err.Error()})
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
c.JSON(http.StatusOK, authToken{User: usr, CurrentPromo: currentPromo})
|
c.JSON(http.StatusOK, authToken{User: usr, CurrentPromo: currentPromo, MessageBanner: mainBanner})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1
main.go
1
main.go
@ -58,6 +58,7 @@ func main() {
|
|||||||
var bind = flag.String("bind", ":8081", "Bind port/socket")
|
var bind = flag.String("bind", ":8081", "Bind port/socket")
|
||||||
var dsn = flag.String("dsn", DSNGenerator(), "DSN to connect to the MySQL server")
|
var dsn = flag.String("dsn", DSNGenerator(), "DSN to connect to the MySQL server")
|
||||||
var dummyauth = flag.Bool("dummy-auth", false, "If set, allow any authentication credentials")
|
var dummyauth = flag.Bool("dummy-auth", false, "If set, allow any authentication credentials")
|
||||||
|
flag.StringVar(&mainBanner, "banner-message", mainBanner, "Display a message to connected user, at the top of the screen")
|
||||||
flag.StringVar(&DevProxy, "dev", DevProxy, "Proxify traffic to this host for static assets")
|
flag.StringVar(&DevProxy, "dev", DevProxy, "Proxify traffic to this host for static assets")
|
||||||
flag.StringVar(&baseURL, "baseurl", baseURL, "URL prepended to each URL")
|
flag.StringVar(&baseURL, "baseurl", baseURL, "URL prepended to each URL")
|
||||||
flag.UintVar(¤tPromo, "current-promo", currentPromo, "Year of the current promotion")
|
flag.UintVar(¤tPromo, "current-promo", currentPromo, "Year of the current promotion")
|
||||||
|
@ -29,6 +29,11 @@
|
|||||||
<title>ЕРІТА: MCQ and others courses related stuff</title>
|
<title>ЕРІТА: MCQ and others courses related stuff</title>
|
||||||
</svelte:head>
|
</svelte:head>
|
||||||
|
|
||||||
|
{#if $user && $user.banner}
|
||||||
|
<div class="bg-danger text-white text-center py-1 fw-bolder">
|
||||||
|
{$user.banner}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
{#if isSRS}
|
{#if isSRS}
|
||||||
<div style="position: fixed; bottom: 20px; right: 20px; z-index: -1; background-image: url('img/srstamps.png'); background-size: cover; width: 125px; height: 125px;"></div>
|
<div style="position: fixed; bottom: 20px; right: 20px; z-index: -1; background-image: url('img/srstamps.png'); background-size: cover; width: 125px; height: 125px;"></div>
|
||||||
{/if}
|
{/if}
|
||||||
|
Reference in New Issue
Block a user