casdoor/object/init.go

130 lines
3.7 KiB
Go
Raw Normal View History

// Copyright 2021 The casbin Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
2021-02-15 10:05:14 +08:00
package object
import "github.com/casbin/casdoor/util"
2021-02-15 10:05:14 +08:00
func InitDb() {
initBuiltInOrganization()
initBuiltInUser()
2021-02-15 10:32:14 +08:00
initBuiltInApplication()
initBuiltInLdap()
2021-02-15 10:05:14 +08:00
}
func initBuiltInOrganization() {
organization := getOrganization("admin", "built-in")
if organization != nil {
return
}
organization = &Organization{
Owner: "admin",
Name: "built-in",
CreatedTime: util.GetCurrentTime(),
DisplayName: "Built-in Organization",
WebsiteUrl: "https://example.com",
Favicon: "https://cdn.casbin.com/static/favicon.ico",
PhonePrefix: "86",
DefaultAvatar: "https://casbin.org/img/casbin.svg",
PasswordType: "plain",
2021-02-15 10:05:14 +08:00
}
AddOrganization(organization)
}
func initBuiltInUser() {
user := getUser("built-in", "admin")
if user != nil {
return
}
user = &User{
2021-02-15 22:14:19 +08:00
Owner: "built-in",
Name: "admin",
CreatedTime: util.GetCurrentTime(),
Id: util.GenerateId(),
Type: "normal-user",
2021-02-15 22:14:19 +08:00
Password: "123",
DisplayName: "Admin",
Avatar: "https://casbin.org/img/casbin.svg",
Email: "admin@example.com",
Phone: "12345678910",
Address: []string{},
2021-02-15 22:14:19 +08:00
Affiliation: "Example Inc.",
Tag: "staff",
2021-08-28 11:13:38 +08:00
Score: 2000,
Ranking: 1,
2021-02-15 22:14:19 +08:00
IsAdmin: true,
IsGlobalAdmin: true,
2021-05-02 12:18:28 +08:00
IsForbidden: false,
2021-11-06 15:52:03 +08:00
IsDeleted: false,
Properties: make(map[string]string),
2021-02-15 10:05:14 +08:00
}
AddUser(user)
}
2021-02-15 10:32:14 +08:00
func initBuiltInApplication() {
application := getApplication("admin", "app-built-in")
if application != nil {
return
}
application = &Application{
Owner: "admin",
Name: "app-built-in",
CreatedTime: util.GetCurrentTime(),
DisplayName: "Casdoor",
2021-03-21 15:31:31 +08:00
Logo: "https://cdn.casbin.com/logo/logo_1024x256.png",
2021-05-28 22:38:12 +08:00
HomepageUrl: "https://casdoor.org",
2021-02-15 10:32:14 +08:00
Organization: "built-in",
EnablePassword: true,
2021-05-28 22:38:12 +08:00
EnableSignUp: true,
2021-06-14 21:35:19 +08:00
Providers: []*ProviderItem{},
2021-09-20 22:17:52 +08:00
SignupItems: []*SignupItem{
{Name: "ID", Visible: false, Required: true, Prompted: false, Rule: "Random"},
{Name: "Username", Visible: true, Required: true, Prompted: false, Rule: "None"},
{Name: "Display name", Visible: true, Required: true, Prompted: false, Rule: "None"},
{Name: "Password", Visible: true, Required: true, Prompted: false, Rule: "None"},
{Name: "Confirm password", Visible: true, Required: true, Prompted: false, Rule: "None"},
{Name: "Email", Visible: true, Required: true, Prompted: false, Rule: "None"},
{Name: "Phone", Visible: true, Required: true, Prompted: false, Rule: "None"},
{Name: "Agreement", Visible: true, Required: true, Prompted: false, Rule: "None"},
},
RedirectUris: []string{},
ExpireInHours: 168,
2021-02-15 10:32:14 +08:00
}
AddApplication(application)
}
func initBuiltInLdap() {
ldap := GetLdap("ldap-built-in")
if ldap != nil {
return
}
ldap = &Ldap{
Id: "ldap-built-in",
Owner: "built-in",
ServerName: "BuildIn LDAP Server",
Host: "example.com",
Port: 389,
Admin: "cn=buildin,dc=example,dc=com",
Passwd: "123",
BaseDn: "ou=BuildIn,dc=example,dc=com",
AutoSync: 0,
LastSync: "",
}
AddLdap(ldap)
}