the beginning of a proper database
This commit is contained in:
parent
f3f02ab834
commit
f4f8d1c316
11
collab.rb
11
collab.rb
|
@ -53,9 +53,9 @@ class User
|
|||
end
|
||||
|
||||
def refresh_keys
|
||||
File.open(@keypath,"r") do |f|
|
||||
@keys = f.read.split("\n").select{ |line| line[0..2] == "ssh" }.map{ |ks| k = ks.split(" "); SSHKey.new(k[0][4..6], k[1], k[2]) }
|
||||
end
|
||||
#File.open(@keypath,"r") do |f|
|
||||
# @keys = f.read.split("\n").select{ |line| line[0..2] == "ssh" }.map{ |ks| k = ks.split(" "); SSHKey.new(k[0][4..6], k[1], k[2]) }
|
||||
#end
|
||||
end
|
||||
|
||||
def flush
|
||||
|
@ -69,6 +69,7 @@ end
|
|||
|
||||
def add_user(id)
|
||||
user = User.new(id)
|
||||
db.add_user(user)
|
||||
$users << user
|
||||
$user_id_map[id] = user
|
||||
end
|
||||
|
@ -295,8 +296,8 @@ end
|
|||
|
||||
################################################
|
||||
|
||||
reload_users_from_dir
|
||||
reload_projects_from_passwd
|
||||
#reload_users_from_dir
|
||||
#reload_projects_from_passwd
|
||||
|
||||
#remove_project 5
|
||||
#create_project 3
|
||||
|
|
20
init_sql_db.sql
Normal file
20
init_sql_db.sql
Normal file
|
@ -0,0 +1,20 @@
|
|||
CREATE TABLE Users (
|
||||
name VARCHAR (24) NOT NULL,
|
||||
passwd VARCHAR (64),
|
||||
salt VARCHAR (64),
|
||||
keys VARCHAR (8192),
|
||||
created DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||
last_seen DATETIME,
|
||||
|
||||
PRIMARY KEY (name)
|
||||
);
|
||||
|
||||
CREATE TABLE Projects (
|
||||
uid INT NOT NULL,
|
||||
name VARCHAR (24) NOT NULL,
|
||||
owner VARCHAR (24) NOT NULL,
|
||||
users VARCHAR (8192),
|
||||
|
||||
PRIMARY KEY (uid),
|
||||
FOREIGN KEY (owner) REFERENCES Users(name)
|
||||
);
|
33
sqlite.rb
Normal file
33
sqlite.rb
Normal file
|
@ -0,0 +1,33 @@
|
|||
require 'sqlite3'
|
||||
require 'json'
|
||||
require 'securerandom'
|
||||
require 'scrypt'
|
||||
require_relative 'collab.rb'
|
||||
|
||||
|
||||
$db = SQLite3::Database.new "data/test.db"
|
||||
|
||||
def get_user(id)
|
||||
puts $db.execute("SELECT * FROM Users WHERE name = ?", [id])
|
||||
end
|
||||
|
||||
def add_user(user)
|
||||
$db.execute("INSERT INTO Users (name) VALUES (?)",
|
||||
[user.id])
|
||||
end
|
||||
|
||||
def update_user(user)
|
||||
$db.execute("UPDATE Users SET keys = ? WHERE name = ?",
|
||||
[JSON.generate(user.keys),user.id])
|
||||
end
|
||||
|
||||
def change_user_password(user,password)
|
||||
salt = SecureRandom.base64(32)
|
||||
hash = SCrypt::Password.create(salt + password)
|
||||
$db.execute("UPDATE Users SET passwd = ?, salt = ? WHERE name = ?",
|
||||
[hash,salt,user.id])
|
||||
end
|
||||
|
||||
#user1 = User.new("user1")
|
||||
#add_user(user1)
|
||||
#change_user_password(user1,"testtest")
|
Loading…
Reference in New Issue
Block a user