Merge branch 'dev' of git.silversoft.se:Imbus/TTime into dev
This commit is contained in:
		
						commit
						9b9f6dd962
					
				
					 3 changed files with 28 additions and 0 deletions
				
			
		|  | @ -14,6 +14,7 @@ import ( | |||
| type Database interface { | ||||
| 	AddUser(username string, password string) error | ||||
| 	RemoveUser(username string) error | ||||
| 	PromoteToAdmin(username string) error | ||||
| 	GetUserId(username string) (int, error) | ||||
| 	AddProject(name string, description string, username string) error | ||||
| 	Migrate(dirname string) error | ||||
|  | @ -30,6 +31,7 @@ var scripts embed.FS | |||
| 
 | ||||
| const userInsert = "INSERT INTO users (username, password) VALUES (?, ?)" | ||||
| const projectInsert = "INSERT INTO projects (name, description, user_id) SELECT ?, ?, id FROM users WHERE username = ?" | ||||
| const promoteToAdmin = "INSERT INTO site_admin (admin_id) SELECT id FROM users WHERE username = ?" | ||||
| 
 | ||||
| // DbConnect connects to the database | ||||
| func DbConnect(dbpath string) Database { | ||||
|  | @ -60,6 +62,11 @@ func (d *Db) RemoveUser(username string) error { | |||
| 	return err | ||||
| } | ||||
| 
 | ||||
| func (d *Db) PromoteToAdmin(username string) error { | ||||
| 	_, err := d.Exec(promoteToAdmin, username) | ||||
| 	return err | ||||
| } | ||||
| 
 | ||||
| func (d *Db) GetUserId(username string) (int, error) { | ||||
| 	var id int | ||||
| 	err := d.Get(&id, "SELECT id FROM users WHERE username = ?", username) | ||||
|  |  | |||
|  | @ -74,3 +74,20 @@ func TestDbRemoveUser(t *testing.T) { | |||
| 		t.Error("RemoveUser failed:", err) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func TestPromoteToAdmin(t *testing.T) { | ||||
| 	db, err := setupState() | ||||
| 	if err != nil { | ||||
| 		t.Error("setupState failed:", err) | ||||
| 	} | ||||
| 
 | ||||
| 	err = db.AddUser("test", "password") | ||||
| 	if err != nil { | ||||
| 		t.Error("AddUser failed:", err) | ||||
| 	} | ||||
| 
 | ||||
| 	err = db.PromoteToAdmin("test") | ||||
| 	if err != nil { | ||||
| 		t.Error("PromoteToAdmin failed:", err) | ||||
| 	} | ||||
| } | ||||
|  |  | |||
							
								
								
									
										4
									
								
								backend/internal/database/migrations/0060_site_admin.sql
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								backend/internal/database/migrations/0060_site_admin.sql
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | |||
| CREATE TABLE IF NOT EXISTS site_admin ( | ||||
|     admin_id INTEGER PRIMARY KEY, | ||||
|     FOREIGN KEY (admin_id) REFERENCES users (id) ON DELETE CASCADE | ||||
| ) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Imbus
						Imbus