2021-07-17 14:13:00 +08:00
|
|
|
// 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
|
|
|
|
|
2021-12-31 09:36:48 +08:00
|
|
|
import (
|
|
|
|
_ "embed"
|
|
|
|
|
|
|
|
"github.com/casbin/casdoor/util"
|
|
|
|
)
|
|
|
|
|
|
|
|
//go:embed token_jwt_key.pem
|
|
|
|
var tokenJwtPublicKey string
|
|
|
|
|
|
|
|
//go:embed token_jwt_key.key
|
|
|
|
var tokenJwtPrivateKey string
|
2021-02-15 10:05:14 +08:00
|
|
|
|
|
|
|
func InitDb() {
|
|
|
|
initBuiltInOrganization()
|
|
|
|
initBuiltInUser()
|
2021-02-15 10:32:14 +08:00
|
|
|
initBuiltInApplication()
|
2021-12-31 09:36:48 +08:00
|
|
|
initBuiltInCert()
|
2021-07-17 14:13:00 +08:00
|
|
|
initBuiltInLdap()
|
2021-02-15 10:05:14 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
func initBuiltInOrganization() {
|
|
|
|
organization := getOrganization("admin", "built-in")
|
|
|
|
if organization != nil {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
organization = &Organization{
|
2021-07-16 17:04:16 +08:00
|
|
|
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-12-23 21:28:40 +08:00
|
|
|
Owner: "built-in",
|
|
|
|
Name: "admin",
|
|
|
|
CreatedTime: util.GetCurrentTime(),
|
|
|
|
Id: util.GenerateId(),
|
|
|
|
Type: "normal-user",
|
|
|
|
Password: "123",
|
|
|
|
DisplayName: "Admin",
|
|
|
|
Avatar: "https://casbin.org/img/casbin.svg",
|
|
|
|
Email: "admin@example.com",
|
|
|
|
Phone: "12345678910",
|
|
|
|
Address: []string{},
|
|
|
|
Affiliation: "Example Inc.",
|
|
|
|
Tag: "staff",
|
|
|
|
Score: 2000,
|
|
|
|
Ranking: 1,
|
|
|
|
IsAdmin: true,
|
|
|
|
IsGlobalAdmin: true,
|
|
|
|
IsForbidden: false,
|
|
|
|
IsDeleted: false,
|
|
|
|
SignupApplication: "built-in-app",
|
|
|
|
CreatedIp: "127.0.0.1",
|
|
|
|
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",
|
2021-12-31 09:36:48 +08:00
|
|
|
Cert: "cert-built-in",
|
2021-02-15 10:32:14 +08:00
|
|
|
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)
|
|
|
|
}
|
2021-07-17 14:13:00 +08:00
|
|
|
|
2021-12-31 09:36:48 +08:00
|
|
|
func initBuiltInCert() {
|
|
|
|
cert := getCert("admin", "cert-built-in")
|
|
|
|
if cert != nil {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
cert = &Cert{
|
|
|
|
Owner: "admin",
|
|
|
|
Name: "cert-built-in",
|
|
|
|
CreatedTime: util.GetCurrentTime(),
|
|
|
|
DisplayName: "Built-in Cert",
|
|
|
|
Scope: "JWT",
|
|
|
|
Type: "x509",
|
|
|
|
CryptoAlgorithm: "RSA",
|
|
|
|
BitSize: 4096,
|
|
|
|
ExpireInYears: 20,
|
|
|
|
PublicKey: tokenJwtPublicKey,
|
|
|
|
PrivateKey: tokenJwtPrivateKey,
|
|
|
|
}
|
|
|
|
AddCert(cert)
|
|
|
|
}
|
|
|
|
|
2021-07-17 14:13:00 +08:00
|
|
|
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)
|
|
|
|
}
|