mirror of https://github.com/gophish/gophish
Fixed isses with SMTP table migration: better names on created objects, all SMTP records are imported with appropriate user_id, entries are de-duped based on user_id:host:from_address tuple
parent
7ca63f55be
commit
56c9ea070b
|
@ -1,41 +0,0 @@
|
|||
|
||||
-- +goose Up
|
||||
-- SQL in section 'Up' is executed when this migration is applied
|
||||
ALTER TABLE campaigns ADD COLUMN smtp_id bigint;
|
||||
UPDATE campaigns
|
||||
SET smtp_id = (SELECT smtp.smtp_id FROM smtp)
|
||||
WHERE campaigns.id = (
|
||||
SELECT campaigns.id
|
||||
FROM smtp,campaigns
|
||||
WHERE smtp.campaign_id=campaigns.id
|
||||
)
|
||||
; -- sure hope the current smtp table works like I think it does
|
||||
ALTER TABLE smtp RENAME TO smtp_old;
|
||||
CREATE TABLE smtp(
|
||||
id integer primary key autoincrement,
|
||||
user_id bigint,
|
||||
interface_type varchar(255),
|
||||
name varchar(255),
|
||||
host varchar(255),
|
||||
username varchar(255),
|
||||
password varchar(255),
|
||||
from_address varchar(255),
|
||||
modified_date datetime default CURRENT_TIMESTAMP,
|
||||
ignore_cert_errors BOOLEAN
|
||||
);
|
||||
INSERT INTO smtp (id,interface_type,name,host,username,from_address,ignore_cert_errors)
|
||||
SELECT smtp_id,'SMTP',smtp_id,host,username,from_address,ignore_cert_errors
|
||||
FROM smtp_old
|
||||
;
|
||||
UPDATE smtp
|
||||
SET user_id = (SELECT campaigns.user_id FROM campaigns)
|
||||
WHERE smtp.id = (
|
||||
SELECT smtp.id
|
||||
FROM smtp,campaigns
|
||||
WHERE smtp.id=campaigns.smtp_id
|
||||
)
|
||||
;
|
||||
DROP TABLE smtp_old;
|
||||
-- +goose Down
|
||||
-- SQL section 'Down' is executed when this migration is rolled back
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
-- +goose Up
|
||||
-- SQL in section 'Up' is executed when this migration is applied
|
||||
ALTER TABLE pages ADD COLUMN capture_credentials BOOLEAN;
|
||||
ALTER TABLE pages ADD COLUMN capture_passwords BOOLEAN;
|
||||
|
||||
-- +goose Down
|
||||
-- SQL section 'Down' is executed when this migration is rolled back
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
|
||||
-- +goose Up
|
||||
-- SQL in section 'Up' is executed when this migration is applied
|
||||
-- Move the relationship between campaigns and smtp to campaigns
|
||||
ALTER TABLE campaigns ADD COLUMN "smtp_id" bigint;
|
||||
UPDATE campaigns
|
||||
SET smtp_id = (
|
||||
SELECT smtp.smtp_id
|
||||
FROM smtp,campaigns
|
||||
WHERE campaigns.id=smtp.campaign_id
|
||||
)
|
||||
;
|
||||
-- Add the appropriate user_id to each smtp record
|
||||
ALTER TABLE smtp ADD COLUMN "user_id" bigint;
|
||||
UPDATE smtp
|
||||
SET user_id = (
|
||||
SELECT campaigns.user_id
|
||||
FROM smtp,campaigns
|
||||
WHERE smtp.smtp_id=campaigns.smtp_id
|
||||
)
|
||||
;
|
||||
-- Create a new table to store smtp records
|
||||
ALTER TABLE smtp RENAME TO smtp_old;
|
||||
CREATE TABLE smtp(
|
||||
id integer primary key autoincrement,
|
||||
user_id bigint,
|
||||
interface_type varchar(255),
|
||||
name varchar(255),
|
||||
host varchar(255),
|
||||
username varchar(255),
|
||||
password varchar(255),
|
||||
from_address varchar(255),
|
||||
modified_date datetime default CURRENT_TIMESTAMP,
|
||||
ignore_cert_errors BOOLEAN
|
||||
);
|
||||
-- Import existing smtp records into new format and drop the old table
|
||||
INSERT INTO smtp (id,user_id,interface_type,name,host,username,from_address,ignore_cert_errors)
|
||||
SELECT smtp_id,user_id,'SMTP',
|
||||
'Imported campaign via ' || COALESCE(host,'') || ' from ' || COALESCE(from_address,''),
|
||||
host,username,from_address,ignore_cert_errors
|
||||
FROM smtp_old
|
||||
-- Prevent insertion of duplicate records
|
||||
WHERE smtp_id IN (
|
||||
SELECT smtp_id
|
||||
FROM smtp_old
|
||||
GROUP BY user_id,host,from_address
|
||||
)
|
||||
;
|
||||
DROP TABLE smtp_old;
|
||||
-- +goose Down
|
||||
-- SQL section 'Down' is executed when this migration is rolled back
|
||||
|
Loading…
Reference in New Issue