latest
This commit is contained in:
parent
89a8438fb8
commit
b9faad4175
72
app/http/endpoints/manage/blacklist.go
Normal file
72
app/http/endpoints/manage/blacklist.go
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
package manage
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/TicketsBot/GoPanel/app/http/template"
|
||||||
|
"github.com/TicketsBot/GoPanel/config"
|
||||||
|
"github.com/TicketsBot/GoPanel/database/table"
|
||||||
|
"github.com/TicketsBot/GoPanel/utils"
|
||||||
|
"github.com/TicketsBot/GoPanel/utils/discord/objects"
|
||||||
|
"github.com/gin-gonic/contrib/sessions"
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
func BlacklistHandler(ctx *gin.Context) {
|
||||||
|
store := sessions.Default(ctx)
|
||||||
|
if store == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer store.Save()
|
||||||
|
|
||||||
|
if utils.IsLoggedIn(store) {
|
||||||
|
userIdStr := store.Get("userid").(string)
|
||||||
|
userId, err := utils.GetUserId(store)
|
||||||
|
if err != nil {
|
||||||
|
ctx.String(500, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verify the guild exists
|
||||||
|
guildIdStr := ctx.Param("id")
|
||||||
|
guildId, err := strconv.ParseInt(guildIdStr, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
ctx.Redirect(302, config.Conf.Server.BaseUrl) // TODO: 404 Page
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get object for selected guild
|
||||||
|
var guild objects.Guild
|
||||||
|
for _, g := range table.GetGuilds(userIdStr) {
|
||||||
|
if g.Id == guildIdStr {
|
||||||
|
guild = g
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verify the user has permissions to be here
|
||||||
|
if !guild.Owner && !table.IsAdmin(guildId, userId) {
|
||||||
|
ctx.Redirect(302, config.Conf.Server.BaseUrl) // TODO: 403 Page
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
curid, err := strconv.ParseInt("210105426849562625", 10, 64)
|
||||||
|
table.RemoveBlacklist(guildId, curid)
|
||||||
|
fmt.Println(table.IsBlacklisted(guildId, curid))
|
||||||
|
|
||||||
|
//blacklistedUsers := table.GetBlacklistNodes(guildId)
|
||||||
|
//var blacklisted []map[string]interface{}
|
||||||
|
//for _, node := range blacklistedUsers {
|
||||||
|
|
||||||
|
//}
|
||||||
|
|
||||||
|
fmt.Println(len(guild.Members))
|
||||||
|
|
||||||
|
utils.Respond(ctx, template.TemplateBlacklist.Render(map[string]interface{}{
|
||||||
|
"name": store.Get("name").(string),
|
||||||
|
"guildId": guildIdStr,
|
||||||
|
"avatar": store.Get("avatar").(string),
|
||||||
|
"baseUrl": config.Conf.Server.BaseUrl,
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
}
|
@ -95,7 +95,7 @@ func LogsHandler(ctx *gin.Context) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.Respond(ctx, template.TemplateLogs.Render(map[string]interface{}{
|
utils.Respond(ctx, template.TemplateLogs.Render(map[string]interface{}{
|
||||||
"name": store.Get("name").(string),
|
"name": store.Get("name").(string),
|
||||||
"guildId": guildIdStr,
|
"guildId": guildIdStr,
|
||||||
"avatar": store.Get("avatar").(string),
|
"avatar": store.Get("avatar").(string),
|
||||||
|
@ -56,6 +56,9 @@ func StartServer() {
|
|||||||
// /manage/:id/logs/view/:uuid
|
// /manage/:id/logs/view/:uuid
|
||||||
router.GET("/manage/:id/logs/view/:uuid", manage.LogViewHandler)
|
router.GET("/manage/:id/logs/view/:uuid", manage.LogViewHandler)
|
||||||
|
|
||||||
|
// /manage/:id/blacklist
|
||||||
|
router.GET("/manage/:id/blacklist", manage.BlacklistHandler)
|
||||||
|
|
||||||
if err := router.Run(config.Conf.Server.Host); err != nil {
|
if err := router.Run(config.Conf.Server.Host); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,7 @@ var (
|
|||||||
TemplateIndex Template
|
TemplateIndex Template
|
||||||
TemplateLogs Template
|
TemplateLogs Template
|
||||||
TemplateSettings Template
|
TemplateSettings Template
|
||||||
|
TemplateBlacklist Template
|
||||||
)
|
)
|
||||||
|
|
||||||
func (t *Template) Render(context ...interface{}) string {
|
func (t *Template) Render(context ...interface{}) string {
|
||||||
@ -49,6 +50,10 @@ func LoadTemplates() {
|
|||||||
compiled: loadTemplate("settings"),
|
compiled: loadTemplate("settings"),
|
||||||
Layout: LayoutManage,
|
Layout: LayoutManage,
|
||||||
}
|
}
|
||||||
|
TemplateBlacklist = Template{
|
||||||
|
compiled: loadTemplate("blacklist"),
|
||||||
|
Layout: LayoutManage,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func loadLayout(name string) *mustache.Template {
|
func loadLayout(name string) *mustache.Template {
|
||||||
|
35
database/table/blacklist.go
Normal file
35
database/table/blacklist.go
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
package table
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/TicketsBot/GoPanel/database"
|
||||||
|
)
|
||||||
|
|
||||||
|
type BlacklistNode struct {
|
||||||
|
Assoc int `gorm:"column:ASSOCID;type:int;primary_key;auto_increment"`
|
||||||
|
Guild int64 `gorm:"column:GUILDID"`
|
||||||
|
User int64 `gorm:"column:USERID"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (BlacklistNode) TableName() string {
|
||||||
|
return "blacklist"
|
||||||
|
}
|
||||||
|
|
||||||
|
func IsBlacklisted(guildId, userId int64) bool {
|
||||||
|
var count int
|
||||||
|
database.Database.Table("blacklist").Where(&BlacklistNode{Guild: guildId, User: userId}).Count(&count)
|
||||||
|
return count > 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func AddBlacklist(guildId, userId int64) {
|
||||||
|
database.Database.Create(&BlacklistNode{Guild: guildId, User: userId})
|
||||||
|
}
|
||||||
|
|
||||||
|
func RemoveBlacklist(guildId, userId int64) {
|
||||||
|
database.Database.Delete(&BlacklistNode{Guild: guildId, User: userId})
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetBlacklistNodes(guildId int64) []BlacklistNode {
|
||||||
|
var nodes []BlacklistNode
|
||||||
|
database.Database.Where(&BlacklistNode{Guild: guildId}).Find(&nodes)
|
||||||
|
return nodes
|
||||||
|
}
|
@ -109,6 +109,9 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="/manage/{{guildId}}/logs/page/1">Logs</a>
|
<a class="nav-link" href="/manage/{{guildId}}/logs/page/1">Logs</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/manage/{{guildId}}/blacklist">Blacklist</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
37
public/templates/views/blacklist.mustache
Normal file
37
public/templates/views/blacklist.mustache
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<div class="content">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h4 class="card-title">Blacklisted Users</h4>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="card-body table-responsive">
|
||||||
|
<table class="table table-hover table-striped">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Ticket ID</th>
|
||||||
|
<th>Username</th>
|
||||||
|
<th>User ID</th>
|
||||||
|
<th>Log URL</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{{#blacklisted}}
|
||||||
|
<tr>
|
||||||
|
<td>{{ticketid}}</td>
|
||||||
|
<td>{{username}}</td>
|
||||||
|
<td>{{userid}}</td>
|
||||||
|
<td><a href="{{baseUrl}}/manage/{{guildId}}/logs/view/{{uuid}}">{{uuid}}</a></td>
|
||||||
|
</tr>
|
||||||
|
{{/blacklisted}}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
Loading…
x
Reference in New Issue
Block a user