flag를 내재화함

This commit is contained in:
2023-06-20 11:07:53 +09:00
parent 09328575ad
commit 140da79f7f
8 changed files with 120 additions and 392 deletions

View File

@ -31,7 +31,6 @@ type blockinfo struct {
type whitelistMemberTag = string
type whitelistmember struct {
Service string `bson:"service" json:"service"`
Email string `bson:"email" json:"email"`
Platform string `bson:"platform" json:"platform"`
Desc string `bson:"desc" json:"desc"`
@ -130,7 +129,6 @@ type Division struct {
type ServiceDescriptionSummary struct {
Id primitive.ObjectID `bson:"_id" json:"_id"`
ServiceName string `bson:"service" json:"service"`
ServiceCode string `bson:"code" json:"code"`
}
@ -230,7 +228,7 @@ func (sh *serviceDescription) prepare(mg *Maingate) error {
div.Maintenance.link = div.Maintenance.Notice
} else {
hasher := md5.New()
hasher.Write([]byte(sh.ServiceName))
hasher.Write(sh.Id[:])
subfolder := hex.EncodeToString(hasher.Sum(nil))[:8]
div.Maintenance.link = path.Join("static", subfolder, div.Maintenance.Notice)
@ -260,25 +258,19 @@ func (sh *serviceDescription) prepare(mg *Maingate) error {
sh.getProviderInfo = mg.getProviderInfo
var whites []whitelistmember
if err := mg.mongoClient.FindAllAs(CollectionWhitelist, bson.M{
"$or": []bson.M{{"service": sh.ServiceName}, {"service": sh.ServiceCode}},
}, &whites, options.Find().SetReturnKey(false)); err != nil {
if err := mg.mongoClient.AllAs(CollectionWhitelist, &whites, options.Find().SetReturnKey(false)); err != nil {
return err
}
sh.wl.init(whites)
sh.admins = unsafe.Pointer(&sh.Admins)
for _, keyid := range sh.ServerApiTokens {
mg.apiTokenToService.add(keyid.Hex(), sh.ServiceCode)
}
bt, _ := json.Marshal(sh)
atomic.StorePointer(&sh.serviceSerialized, unsafe.Pointer(&bt))
btsum, _ := json.Marshal(sh.ServiceDescriptionSummary)
atomic.StorePointer(&sh.serviceSummarySerialized, unsafe.Pointer(&btsum))
logger.Println("service is ready :", sh.ServiceName, sh.ServiceCode, sh.Admins, string(divmarshaled))
logger.Println("service is ready :", sh.ServiceCode, sh.Admins, string(divmarshaled))
return nil
}
@ -380,7 +372,7 @@ func (sh *serviceDescription) link(w http.ResponseWriter, r *http.Request) {
return
}
_, newid, err := sh.mongoClient.Update(common.CollectionName(sh.ServiceName), bson.M{
_, newid, err := sh.mongoClient.Update(CollectionService, bson.M{
"_id": link["_id"].(primitive.ObjectID),
}, bson.M{
"$setOnInsert": bson.M{
@ -489,7 +481,7 @@ func (sh *serviceDescription) authorize(w http.ResponseWriter, r *http.Request)
for i := 0; i < len(sh.serviceCodeBytes); i++ {
newaccid[i] ^= sh.serviceCodeBytes[i]
}
account, err := sh.mongoClient.FindOneAndUpdate(common.CollectionName(sh.ServiceName), bson.M{
account, err := sh.mongoClient.FindOneAndUpdate(CollectionService, bson.M{
"_id": linkid,
}, bson.M{
"$setOnInsert": bson.M{