@@ -6,25 +6,14 @@ import (
66 "main/components/log"
77 "main/components/machines"
88 "main/components/postgresmanager"
9- "time "
9+ "main/components/types "
1010
1111 "golang.org/x/crypto/bcrypt"
1212)
1313
14- type Admin struct {
15- ID string `json:"id" gorm:"primaryKey"`
16- Username string `json:"username" gorm:"uniqueIndex"`
17- Password string `json:"password"`
18- FirstName string `json:"first" gorm:"index"`
19- LastName string `json:"last" gorm:"index"`
20- Code string `json:"code" gorm:"uniqueIndex"`
21- CreatedAt time.Time `json:"-" gorm:"index"`
22- UpdatedAt time.Time `json:"-" gorm:"index"`
23- }
24-
2514func CreateAdmin (username , password , firstName , lastName , code string ) error {
26- var a * Admin
27- err := postgresmanager .Query (& Admin {Code : code }, & a )
15+ var a * types. Admin
16+ err := postgresmanager .Query (& types. Admin {Code : code }, & a )
2817
2918 if err != nil {
3019 if err .Error () != "record not found" {
@@ -37,39 +26,39 @@ func CreateAdmin(username, password, firstName, lastName, code string) error {
3726 return err
3827 }
3928
40- admin := Admin {ID : internal .GenerateUUID (), Username : username , Password : hashedPassword , FirstName : firstName , LastName : lastName , Code : code }
29+ admin := types. Admin {ID : internal .GenerateUUID (), Username : username , Password : hashedPassword , FirstName : firstName , LastName : lastName , Code : code }
4130
4231 err = postgresmanager .Save (& admin )
4332
4433 return err
4534}
4635
47- func GetAdmin (username string ) (Admin , error ) {
48- var admin Admin
49- err := postgresmanager .Query (& Admin {Username : username }, & admin )
36+ func GetAdmin (username string ) (* types. Admin , error ) {
37+ var admin * types. Admin
38+ err := postgresmanager .Query (& types. Admin {Username : username }, & admin )
5039 if err != nil {
51- return Admin {} , err
40+ return nil , err
5241 }
5342
5443 admin .Password = ""
5544 return admin , nil
5645}
5746
5847func CertifyUser (adminID , userID , machineID string ) error {
59- var user * User
60- var admin * Admin
61- var machine * machines .Machine
62- err := postgresmanager .Query (User {ID : userID }, & user )
48+ var user * types. User
49+ var admin * types. Admin
50+ var machine * types .Machine
51+ err := postgresmanager .Query (types. User {ID : userID }, & user )
6352 if err != nil {
6453 return err
6554 }
6655
67- err = postgresmanager .Query (Admin {ID : adminID }, & admin )
56+ err = postgresmanager .Query (types. Admin {ID : adminID }, & admin )
6857 if err != nil {
6958 return err
7059 }
7160
72- err = postgresmanager .Query (machines .Machine {ID : machineID }, & machine )
61+ err = postgresmanager .Query (types .Machine {ID : machineID }, & machine )
7362 if err != nil {
7463 return err
7564 }
@@ -81,20 +70,20 @@ func CertifyUser(adminID, userID, machineID string) error {
8170}
8271
8372func UncertifyUser (adminID , userID , machineID string ) error {
84- var user * User
85- var admin * Admin
86- var machine * machines .Machine
87- err := postgresmanager .Query (User {ID : userID }, & user )
73+ var user * types. User
74+ var admin * types. Admin
75+ var machine * types .Machine
76+ err := postgresmanager .Query (types. User {ID : userID }, & user )
8877 if err != nil {
8978 return err
9079 }
9180
92- err = postgresmanager .Query (Admin {ID : adminID }, & admin )
81+ err = postgresmanager .Query (types. Admin {ID : adminID }, & admin )
9382 if err != nil {
9483 return err
9584 }
9685
97- err = postgresmanager .Query (machines .Machine {ID : machineID }, & machine )
86+ err = postgresmanager .Query (types .Machine {ID : machineID }, & machine )
9887 if err != nil {
9988 return err
10089 }
@@ -105,13 +94,13 @@ func UncertifyUser(adminID, userID, machineID string) error {
10594 return err
10695}
10796
108- func SearchUsers (query map [string ]interface {}) []User {
109- var users []User
97+ func SearchUsers (query map [string ]interface {}) []types. User {
98+ var users []types. User
11099
111100 if len (query ) == 0 {
112101 postgresmanager .QueryAll (& users )
113102 for i , u := range users {
114- var machines []* machines .Machine
103+ var machines []* types .Machine
115104 u .Password = ""
116105 postgresmanager .ReadAssociation (& u , "Machines" , & machines )
117106 u .Machines = machines
@@ -122,18 +111,18 @@ func SearchUsers(query map[string]interface{}) []User {
122111
123112 postgresmanager .GroupQuery (query , & users )
124113 for i , u := range users {
125- var machines []* machines .Machine
114+ var machines []* types .Machine
126115 u .Password = ""
127116 postgresmanager .ReadAssociation (& u , "Machines" , & machines )
128117 u .Machines = machines
129118 users [i ] = u
130119 }
131-
120+
132121 return users
133122}
134123
135- func SearchAdmins (query map [string ]interface {}) []Admin {
136- var admins []Admin
124+ func SearchAdmins (query map [string ]interface {}) []* types. Admin {
125+ var admins []* types. Admin
137126
138127 if len (query ) == 0 {
139128 postgresmanager .QueryAll (& admins )
@@ -154,29 +143,24 @@ func SearchAdmins(query map[string]interface{}) []Admin {
154143}
155144
156145func AuthenticateAdmin (code , machineID string ) (string , error ) {
157- var admin * Admin
158-
159- if err := postgresmanager .Query (& Admin {Code : code }, & admin ); err != nil {
160- return "" , err
161- }
146+ var admin * types.Admin
162147
163- var machine * machines.Machine
164- if err := postgresmanager .Query (& machines.Machine {ID : machineID }, & machine ); err != nil {
148+ if err := postgresmanager .Query (& types.Admin {Code : code }, & admin ); err != nil {
165149 return "" , err
166150 }
167151
168- actions , err := machine .SignIn ()
152+ actions , err := machines .SignIn (machineID )
169153 if err != nil {
170154 log .Log (fmt .Sprintf ("%s failed to sign in to machine %s" , admin .Username , machineID ))
171155 return "" , err
172156 }
173157
174- log .Log (fmt .Sprintf ("%s %s (Username: %s) signed in to machine %s" , admin .FirstName , admin .LastName , admin .Username , machine . ID ))
158+ log .Log (fmt .Sprintf ("%s %s (Username: %s) signed in to machine %s" , admin .FirstName , admin .LastName , admin .Username , machineID ))
175159 return fmt .Sprintf ("{\" authorized\" : true, \" name\" : \" %s %s\" , actions: %v}" , admin .FirstName , admin .LastName , actions ), nil
176160}
177161
178162func DeleteAdmin (id string ) error {
179- return postgresmanager .Delete (Admin {ID : id })
163+ return postgresmanager .Delete (types. Admin {ID : id })
180164}
181165
182166func HashPassword (password string ) (string , error ) {
0 commit comments