Skip to content

Commit

Permalink
Merge pull request #51 from aau-network-security/feature/run-challeng…
Browse files Browse the repository at this point in the history
…e-on-req-#000

Feature/run challenge on req #000
  • Loading branch information
mrtrkmn authored May 8, 2021
2 parents baad7de + a3d033b commit 043d423
Show file tree
Hide file tree
Showing 10 changed files with 121 additions and 92 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/checkbrname.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ jobs:
python-version: 3.7
- name: Extract branch name
shell: bash
run: echo "::set-env name=BRANCH_NAME::$(echo ${GITHUB_REF#refs/heads/})"
run: echo "BRANCH_NAME=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV

- name: Check branch name
run: |
echo "Checking ${BRANCH_NAME}..."
echo "Checking ${{ env.BRANCH_NAME }}..."
curl --silent -o check-branch-name.py https://raw.githubusercontent.com/aau-network-security/richkit/develop/.githooks/check-branch-name.py
python3 check-branch-name.py "$BRANCH_NAME"
python3 check-branch-name.py "${{ env.BRANCH_NAME }}"
7 changes: 4 additions & 3 deletions database/query.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ var (
"finished_at timestamp," +
"createdBy text," +
"onlyVPN boolean," +
"secretKey text);"
"secretKey text," +
"disabledExercises text);"

CreateTeamsTable = "CREATE TABLE IF NOT EXISTS Team(" +
"id serial primary key, " +
Expand All @@ -31,8 +32,8 @@ var (
AddTeamQuery = "INSERT INTO team (tag, event_id, email, name, password, created_at, last_access, solved_challenges)" +
"VALUES ($1, $2, $3, $4, $5, $6, $7, $8)"

AddEventQuery = "INSERT INTO event (tag, name, available, capacity, frontends, status, exercises, started_at, finish_expected, finished_at, createdby, onlyvpn,secretKey)" +
"VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10,$11,$12,$13)"
AddEventQuery = "INSERT INTO event (tag, name, available, capacity, frontends, status, exercises, started_at, finish_expected, finished_at, createdby, onlyvpn,secretKey, disabledExercises)" +
"VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10,$11,$12,$13,$14)"

UpdateCloseEvent = "UPDATE event SET tag = $2, finished_at = $3 WHERE tag = $1"
UpdateEventStatus = "UPDATE event SET status = $2 WHERE tag = $1 "
Expand Down
11 changes: 9 additions & 2 deletions database/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ var (
Running = State(0)
Suspended = State(1)
Booked = State(2)
Closed = State(3)
)

type State int32
Expand Down Expand Up @@ -93,7 +94,7 @@ func (s *store) AddEvent(in *pb.AddEventRequest) (string, error) {
finishTime, _ := time.Parse(TimeFormat, in.FinishedAt)
expectedFinishTime, _ := time.Parse(TimeFormat, in.ExpectedFinishTime)

_, err := s.db.Exec(AddEventQuery, in.Tag, in.Name, in.Available, in.Capacity, in.Frontends, in.Status, in.Exercises, startTime, expectedFinishTime, finishTime, in.CreatedBy, in.OnlyVPN, in.SecretKey)
_, err := s.db.Exec(AddEventQuery, in.Tag, in.Name, in.Available, in.Capacity, in.Frontends, in.Status, in.Exercises, startTime, expectedFinishTime, finishTime, in.CreatedBy, in.OnlyVPN, in.SecretKey, in.DisabledExercises)

if err != nil {
return "", err
Expand Down Expand Up @@ -145,6 +146,12 @@ func (s *store) GetEvents(in *pb.GetEventRequest) ([]model.Event, error) {
if err != nil {
return nil, fmt.Errorf("query boooked events err %v", err)
}
// query only closed events
case int32(Closed):
rows, err = s.db.Query(QueryEventsByStatus, int32(Closed))
if err != nil {
return nil, fmt.Errorf("query closed events err %v", err)
}
default:
// all events
rows, err = s.db.Query(QueryEventTable)
Expand Down Expand Up @@ -340,7 +347,7 @@ func parseEvents(rows *sql.Rows) ([]model.Event, error) {
for rows.Next() {
event := new(model.Event)
err := rows.Scan(&event.Id, &event.Tag, &event.Name, &event.Available, &event.Capacity, &event.Status, &event.Frontends,
&event.Exercises, &event.StartedAt, &event.ExpectedFinishTime, &event.FinishedAt, &event.CreatedBy, &event.OnlyVPN, &event.SecretKey)
&event.Exercises, &event.StartedAt, &event.ExpectedFinishTime, &event.FinishedAt, &event.CreatedBy, &event.OnlyVPN, &event.SecretKey, &event.DisabledExercises)
if err != nil && !strings.Contains(err.Error(), handleNullConversionError) {
return nil, err
}
Expand Down
13 changes: 6 additions & 7 deletions database/store_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,8 @@ func TestAddEvent(t *testing.T) {
ExpectedFinishTime: "2020-05-21 14:35:01",
FinishedAt: "0001-01-01 00:00:00", // it means that event is not finished yet
OnlyVPN: false,
SecretKey: "",
DisabledExercises: "",
}

resp, err := c.AddEvent(context.Background(), &req)
Expand Down Expand Up @@ -321,13 +323,7 @@ func TestCloseEvent(t *testing.T) {
}

func TestMultipleEventWithSameTag(t *testing.T) {
dbConn, err := createDBConnection()
if err != nil {
t.Fatalf("error on database connection create %v", err)
}
if err := cleanRecords(dbConn); err != nil {
t.Fatalf("error on cleaning records %v", err)
}

t.Log("Testing Multiple Events with same Tags")
conn, err := createTestClientConn()
if err != nil {
Expand All @@ -346,6 +342,9 @@ func TestMultipleEventWithSameTag(t *testing.T) {
Capacity: 2,
StartTime: "2020-06-20 14:35:01",
ExpectedFinishTime: "2020-06-21 14:35:01",
OnlyVPN: false,
SecretKey: "",
DisabledExercises: "",
}

_, err = c.AddEvent(context.Background(), &req)
Expand Down
2 changes: 1 addition & 1 deletion database/timeline.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ func getEvents(db *sql.DB) []model.Event {
for r.Next() {
event := new(model.Event)
err := r.Scan(&event.Id, &event.Tag, &event.Name, &event.Available, &event.Capacity, &event.Status, &event.Frontends,
&event.Exercises, &event.StartedAt, &event.ExpectedFinishTime, &event.FinishedAt, &event.CreatedBy, &event.OnlyVPN, &event.SecretKey)
&event.Exercises, &event.StartedAt, &event.ExpectedFinishTime, &event.FinishedAt, &event.CreatedBy, &event.OnlyVPN, &event.SecretKey, &event.DisabledExercises)
if err != nil && !strings.Contains(err.Error(), "Null conversion error ") {
log.Fatalf("Error on scanning query %v", err)
}
Expand Down
3 changes: 2 additions & 1 deletion database/timeline_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ func insertTeamEvent(eid int, db *sql.DB) error {
}

func insertFakeEvent(event fakeEvent, db *sql.DB) error {
_, err := db.Exec(AddEventQuery, event.tag, "", event.available, event.capacity, "kali", 1, "ftp,sql", event.sT.UTC(), event.fT.UTC(), time.Date(0001, 01, 01, 00, 00, 00, 0000, time.UTC).Format(time.RFC3339), "tester", false, "")
_, err := db.Exec(AddEventQuery, event.tag, "", event.available, event.capacity, "kali", 1, "ftp,sql", event.sT.UTC(), event.fT.UTC(), time.Date(0001, 01, 01, 00, 00, 00, 0000, time.UTC).Format(time.RFC3339), "tester", false, "", "")
if err != nil {
return err
}
Expand Down Expand Up @@ -214,6 +214,7 @@ func TestGetEvents(t *testing.T) {
CreatedBy: "tester",
OnlyVPN: false,
SecretKey: "",
DisabledExercises: "",
}}

if got := getEvents(db); !reflect.DeepEqual(got, events) {
Expand Down
1 change: 1 addition & 0 deletions model/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ type Event struct {
CreatedBy string
OnlyVPN bool
SecretKey string
DisabledExercises string
}

type Team struct {
Expand Down
Loading

0 comments on commit 043d423

Please sign in to comment.