Skip to content
Snippets Groups Projects
Commit a810dc40 authored by Fabian Seidl's avatar Fabian Seidl Committed by Matthias Feyll
Browse files

Resolve "Add generic app role to controller"

See merge request !921
parent 504e6fa1
No related branches found
No related tags found
1 merge request!1005Draft: feature-ui-361_setup-project
...@@ -164,7 +164,7 @@ func initialize() error { ...@@ -164,7 +164,7 @@ func initialize() error {
c.networkElementWatcher = nucleus.NewNetworkElementWatcher(c.mneService, c.eventService) c.networkElementWatcher = nucleus.NewNetworkElementWatcher(c.mneService, c.eventService)
c.networkElementWatcher.SubscribeToNetworkElements(nil) c.networkElementWatcher.SubscribeToNetworkElements(nil)
if err := ensureDefaultRoleExists(); err != nil { if err := ensureDefaultRolesExist(); err != nil {
return err return err
} }
...@@ -287,7 +287,21 @@ func createPrincipalNetworkDomain() error { ...@@ -287,7 +287,21 @@ func createPrincipalNetworkDomain() error {
return nil return nil
} }
func ensureDefaultRoleExists() error { func ensureDefaultRolesExist() error {
err := ensureAdminRoleExists()
if err != nil {
return err
}
err = ensureGenericAppRoleExists()
if err != nil {
return err
}
return nil
}
func ensureAdminRoleExists() error {
defaultAdminRoleName := "admin" defaultAdminRoleName := "admin"
adminRole, err := c.roleService.Get(store.Query{ID: uuid.Nil, Name: defaultAdminRoleName}) adminRole, err := c.roleService.Get(store.Query{ID: uuid.Nil, Name: defaultAdminRoleName})
if err != nil { if err != nil {
...@@ -347,6 +361,44 @@ func ensureDefaultRoleExists() error { ...@@ -347,6 +361,44 @@ func ensureDefaultRoleExists() error {
return nil return nil
} }
func ensureGenericAppRoleExists() error {
defaultAppRoleName := "app"
appRole, err := c.roleService.Get(store.Query{ID: uuid.Nil, Name: defaultAppRoleName})
if err != nil {
log.Info(err)
}
if appRole == nil {
err := c.roleService.Add(rbacImpl.NewRole(uuid.New(), defaultAppRoleName, "generic app role", []string{
"/gosdn.pnd.PndService/GetPnd",
"/gosdn.pnd.PndService/GetPndList",
"/gosdn.networkelement.NetworkElementService/Get",
"/gosdn.networkelement.NetworkElementService/GetFlattened",
"/gosdn.networkelement.NetworkElementService/GetAll",
"/gosdn.networkelement.NetworkElementService/GetAllFlattened",
"/gosdn.networkelement.NetworkElementService/GetPath",
"/gosdn.networkelement.NetworkElementService/GetIntendedPath",
"/gosdn.networkelement.NetworkElementService/GetChange",
"/gosdn.networkelement.NetworkElementService/GetChangeList",
"/gosdn.networkelement.NetworkElementService/AddList",
"/gosdn.networkelement.NetworkElementService/SetChangeList",
"/gosdn.networkelement.NetworkElementService/SetPathList",
"/gosdn.networkelement.NetworkElementService/DeviceSchema",
"/gosdn.networkelement.NetworkElementService/Delete",
"/gosdn.networkelement.NetworkElementService/SubscribePath",
"/gosdn.plugin_internal.PluginInternalService/AvailablePlugins",
"/gosdn.plugin_internal.PluginInternalService/GetPluginSchema",
"/gosdn.app.AppService/Register",
"/gosdn.app.AppService/Deregister",
}))
if err != nil {
return err
}
}
return nil
}
func ensureDefaultUserExists() error { func ensureDefaultUserExists() error {
defaultUserName := "admin" defaultUserName := "admin"
adminUser, err := c.userService.Get(store.Query{ID: uuid.Nil, Name: defaultUserName}) adminUser, err := c.userService.Get(store.Query{ID: uuid.Nil, Name: defaultUserName})
......
...@@ -100,6 +100,7 @@ func TestMain(m *testing.M) { ...@@ -100,6 +100,7 @@ func TestMain(m *testing.M) {
// a user and role and update the user because of the login. After then only logins are done, no user and role creations. // a user and role and update the user because of the login. After then only logins are done, no user and role creations.
// This means that this will block after trying once, because of the three attempts to read from eventChannels. // This means that this will block after trying once, because of the three attempts to read from eventChannels.
_ = <-application.addEventChannel
_ = <-application.addEventChannel _ = <-application.addEventChannel
_ = <-application.addEventChannel _ = <-application.addEventChannel
_ = <-application.updateEventChannel _ = <-application.updateEventChannel
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment