create default rag role

This commit is contained in:
abhishek9686 2024-08-12 10:49:24 +05:30
parent ac8cfdf7a4
commit bc1f2d0c72
4 changed files with 32 additions and 36 deletions

View file

@ -219,7 +219,6 @@ func updateHost(w http.ResponseWriter, r *http.Request) {
}
newHost := newHostData.ConvertAPIHostToNMHost(currHost)
logic.UpdateHost(newHost, currHost) // update the in memory struct values
if err = logic.UpsertHost(newHost); err != nil {
logger.Log(0, r.Header.Get("user"), "failed to update a host:", err.Error())

View file

@ -577,34 +577,6 @@ func createIngressGateway(w http.ResponseWriter, r *http.Request) {
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
return
}
host, err := logic.GetHost(node.HostID.String())
if err != nil {
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
return
}
// create network role for this gateway
logic.CreateRole(models.UserRolePermissionTemplate{
ID: models.GetRAGRoleName(node.Network, host.Name),
NetworkID: models.NetworkID(node.Network),
Default: true,
NetworkLevelAccess: map[models.RsrcType]map[models.RsrcID]models.RsrcPermissionScope{
models.RemoteAccessGwRsrc: {
models.RsrcID(node.ID.String()): models.RsrcPermissionScope{
Read: true,
VPNaccess: true,
},
},
models.ExtClientsRsrc: {
models.AllExtClientsRsrcID: models.RsrcPermissionScope{
Read: true,
Create: true,
Update: true,
Delete: true,
SelfOnly: true,
},
},
},
})
apiNode := node.ConvertToAPINode()
logger.Log(1, r.Header.Get("user"), "created ingress gateway on node", nodeid, "on network", netid)
@ -646,13 +618,6 @@ func deleteIngressGateway(w http.ResponseWriter, r *http.Request) {
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
return
}
host, err := logic.GetHost(node.HostID.String())
if err != nil {
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
return
}
go logic.DeleteRole(models.GetRAGRoleName(node.Network, host.Name), true)
apiNode := node.ConvertToAPINode()
logger.Log(1, r.Header.Get("user"), "deleted ingress gateway", nodeid)

View file

@ -178,6 +178,29 @@ func CreateIngressGateway(netid string, nodeid string, ingress models.IngressReq
if err != nil {
return models.Node{}, err
}
// create network role for this gateway
CreateRole(models.UserRolePermissionTemplate{
ID: models.GetRAGRoleName(node.Network, host.Name),
NetworkID: models.NetworkID(node.Network),
Default: true,
NetworkLevelAccess: map[models.RsrcType]map[models.RsrcID]models.RsrcPermissionScope{
models.RemoteAccessGwRsrc: {
models.RsrcID(node.ID.String()): models.RsrcPermissionScope{
Read: true,
VPNaccess: true,
},
},
models.ExtClientsRsrc: {
models.AllExtClientsRsrcID: models.RsrcPermissionScope{
Read: true,
Create: true,
Update: true,
Delete: true,
SelfOnly: true,
},
},
},
})
err = SetNetworkNodesLastModified(netid)
return node, err
}
@ -231,6 +254,11 @@ func DeleteIngressGateway(nodeid string) (models.Node, []models.ExtClient, error
if err != nil {
return models.Node{}, removedClients, err
}
host, err := GetHost(node.HostID.String())
if err != nil {
return models.Node{}, removedClients, err
}
go DeleteRole(models.GetRAGRoleName(node.Network, host.Name), true)
err = SetNetworkNodesLastModified(node.Network)
return node, removedClients, err
}

View file

@ -195,6 +195,10 @@ func DeleteNode(node *models.Node, purge bool) error {
if err := DeleteGatewayExtClients(node.ID.String(), node.Network); err != nil {
slog.Error("failed to delete ext clients", "nodeid", node.ID.String(), "error", err.Error())
}
host, err := GetHost(node.HostID.String())
if err == nil {
go DeleteRole(models.GetRAGRoleName(node.Network, host.Name), true)
}
}
if node.IsRelayed {
// cleanup node from relayednodes on relay node