Skip to content

Commit cbde32f

Browse files
authored
Merge pull request #4643 from merkato/master
[FEATURE] Add role logging for PostGIS versioning.
2 parents 2718317 + 31ab103 commit cbde32f

File tree

2 files changed

+25
-3
lines changed

2 files changed

+25
-3
lines changed

python/plugins/db_manager/db_plugins/postgis/plugins/versioning/DlgVersioning.ui

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,23 @@
126126
</property>
127127
</widget>
128128
</item>
129+
<item row="3" column="0">
130+
<widget class="QLabel" name="label_9">
131+
<property name="text">
132+
<string>User role</string>
133+
</property>
134+
<property name="alignment">
135+
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
136+
</property>
137+
</widget>
138+
</item>
139+
<item row="2" column="1">
140+
<widget class="QLineEdit" name="editUser">
141+
<property name="text">
142+
<string>time_end</string>
143+
</property>
144+
</widget>
145+
</item>
129146
</layout>
130147
</widget>
131148
</item>
@@ -173,6 +190,7 @@
173190
<tabstop>editPkey</tabstop>
174191
<tabstop>editStart</tabstop>
175192
<tabstop>editEnd</tabstop>
193+
<tabstop>editUser</tabstop>
176194
<tabstop>txtSql</tabstop>
177195
<tabstop>buttonBox</tabstop>
178196
</tabstops>

python/plugins/db_manager/db_plugins/postgis/plugins/versioning/dlg_versioning.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ def __init__(self, item, parent=None):
6161
self.editPkey.textChanged.connect(self.updateSql)
6262
self.editStart.textChanged.connect(self.updateSql)
6363
self.editEnd.textChanged.connect(self.updateSql)
64+
self.editUser.textChanged.connect(self.updateSql)
6465

6566
self.updateSql()
6667

@@ -114,6 +115,7 @@ def updateSql(self):
114115
self.colPkey = self.db.connector.quoteId(self.editPkey.text())
115116
self.colStart = self.db.connector.quoteId(self.editStart.text())
116117
self.colEnd = self.db.connector.quoteId(self.editEnd.text())
118+
self.colUser = self.db.connector.quoteId(self.editUser.text())
117119

118120
self.columns = [self.db.connector.quoteId(x.name) for x in self.table.fields()]
119121

@@ -173,8 +175,8 @@ def showHelp(self):
173175
QMessageBox.information(self, "Help", helpText)
174176

175177
def sql_alterTable(self):
176-
return u"ALTER TABLE %s ADD %s serial, ADD %s timestamp, ADD %s timestamp;" % (
177-
self.schematable, self.colPkey, self.colStart, self.colEnd)
178+
return u"ALTER TABLE %s ADD %s serial, ADD %s timestamp, ADD %s timestamp, ADD %s varchar;" % (
179+
self.schematable, self.colPkey, self.colStart, self.colEnd, self.colUser)
178180

179181
def sql_setPkey(self):
180182
return u"ALTER TABLE %s DROP CONSTRAINT %s, ADD PRIMARY KEY (%s);" % (
@@ -209,6 +211,7 @@ def sql_functions(self):
209211
IF NEW.%(end)s IS NULL THEN
210212
INSERT INTO %(schematable)s (%(cols)s, %(start)s, %(end)s) VALUES (%(oldcols)s, OLD.%(start)s, current_timestamp);
211213
NEW.%(start)s = current_timestamp;
214+
NEW.%(user)s = current_user;
212215
END IF;
213216
RETURN NEW;
214217
END;
@@ -222,12 +225,13 @@ def sql_functions(self):
222225
if NEW.%(start)s IS NULL then
223226
NEW.%(start)s = now();
224227
NEW.%(end)s = null;
228+
NEW.%(user)s = current_user;
225229
end if;
226230
RETURN NEW;
227231
END;
228232
$$
229233
LANGUAGE 'plpgsql';""" % {'view': self.view, 'schematable': self.schematable, 'cols': cols, 'oldcols': old_cols,
230-
'start': self.colStart, 'end': self.colEnd, 'func_at_time': self.func_at_time,
234+
'start': self.colStart, 'end': self.colEnd, 'user': self.colUser, 'func_at_time': self.func_at_time,
231235
'func_update': self.func_update, 'func_insert': self.func_insert}
232236
return sql
233237

0 commit comments

Comments
 (0)