Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4d70f8a017 | ||
|
|
d5476b4269 | ||
|
|
bddc196e25 | ||
|
|
e3d1679f86 | ||
|
|
34f33772d0 | ||
|
|
bfe3fdcff4 | ||
|
|
1feb7bf574 | ||
|
|
272a5ad202 |
@@ -1,5 +1,7 @@
|
|||||||
# functions
|
# functions
|
||||||
function/update_function.sql
|
function/update_function.sql
|
||||||
|
function/random_string.sql
|
||||||
|
function/edit_set_access_uid.sql
|
||||||
# generic tables
|
# generic tables
|
||||||
table/edit_temp_files.sql
|
table/edit_temp_files.sql
|
||||||
table/edit_generic.sql
|
table/edit_generic.sql
|
||||||
@@ -18,9 +20,11 @@ table/edit_user.sql
|
|||||||
table/edit_log.sql
|
table/edit_log.sql
|
||||||
table/edit_access.sql
|
table/edit_access.sql
|
||||||
table/edit_access_user.sql
|
table/edit_access_user.sql
|
||||||
|
table/edit_access_data.sql
|
||||||
# all triggers (after all tables have been created)
|
# all triggers (after all tables have been created)
|
||||||
trigger/trg_edit_access_right.sql
|
trigger/trg_edit_access_right.sql
|
||||||
trigger/trg_edit_access.sql
|
trigger/trg_edit_access.sql
|
||||||
|
trigger/trg_edit_access_data.sql
|
||||||
trigger/trg_edit_access_user.sql
|
trigger/trg_edit_access_user.sql
|
||||||
trigger/trg_edit_generic.sql
|
trigger/trg_edit_generic.sql
|
||||||
trigger/trg_edit_group.sql
|
trigger/trg_edit_group.sql
|
||||||
@@ -33,3 +37,6 @@ trigger/trg_edit_scheme.sql
|
|||||||
trigger/trg_edit_user.sql
|
trigger/trg_edit_user.sql
|
||||||
trigger/trg_edit_visible_group.sql
|
trigger/trg_edit_visible_group.sql
|
||||||
trigger/trg_edit_menu_group.sql
|
trigger/trg_edit_menu_group.sql
|
||||||
|
trigger/trg_set_edit_access_uid.sql
|
||||||
|
# insert data
|
||||||
|
data/edit_tables.sql
|
||||||
|
|||||||
141
4dev/database/data/edit_tables.sql
Executable file
141
4dev/database/data/edit_tables.sql
Executable file
@@ -0,0 +1,141 @@
|
|||||||
|
-- edit tables insert data in order
|
||||||
|
|
||||||
|
-- edit visible group
|
||||||
|
DELETE FROM edit_page_visible_group;
|
||||||
|
INSERT INTO edit_page_visible_group VALUES (1, 1);
|
||||||
|
INSERT INTO edit_page_visible_group VALUES (2, 1);
|
||||||
|
INSERT INTO edit_page_visible_group VALUES (3, 1);
|
||||||
|
INSERT INTO edit_page_visible_group VALUES (4, 1);
|
||||||
|
INSERT INTO edit_page_visible_group VALUES (5, 1);
|
||||||
|
INSERT INTO edit_page_visible_group VALUES (6, 1);
|
||||||
|
INSERT INTO edit_page_visible_group VALUES (7, 1);
|
||||||
|
|
||||||
|
-- edit menu group
|
||||||
|
DELETE FROM edit_menu_group;
|
||||||
|
INSERT INTO edit_menu_group (name, flag, order_number) VALUES ('Admin Menu', 'admin', 1);
|
||||||
|
INSERT INTO edit_menu_group (name, flag, order_number) VALUES ('Admin Data Popup Menu', 'AdminDataPopup', 2);
|
||||||
|
|
||||||
|
-- edit page
|
||||||
|
DELETE FROM edit_page;
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_pages.php', 'Edit Pages', 1, 1, 1);
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_users.php', 'Edit Users', 2, 1, 1);
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_languages.php', 'Edit Languages', 3, 1, 1);
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_schemes.php', 'Edit Schemes', 4, 1, 1);
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_groups.php', 'Edit Groups', 5, 1, 1);
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_visible_group.php', 'Edit Visible Groups', 6, 1, 1);
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_menu_group.php', 'Edit Menu Groups', 7, 1, 1);
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_access.php', 'Edit Access', 8, 1, 1);
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_order.php', 'Edit Order', 9, 1, 0);
|
||||||
|
|
||||||
|
-- edit page menu group
|
||||||
|
DELETE FROM edit_page_menu_group;
|
||||||
|
INSERT INTO edit_page_menu_group VALUES (1, 1);
|
||||||
|
INSERT INTO edit_page_menu_group VALUES (2, 1);
|
||||||
|
INSERT INTO edit_page_menu_group VALUES (3, 1);
|
||||||
|
INSERT INTO edit_page_menu_group VALUES (4, 1);
|
||||||
|
INSERT INTO edit_page_menu_group VALUES (5, 1);
|
||||||
|
INSERT INTO edit_page_menu_group VALUES (6, 1);
|
||||||
|
INSERT INTO edit_page_menu_group VALUES (7, 1);
|
||||||
|
|
||||||
|
-- edit access right
|
||||||
|
DELETE FROM edit_access_right;
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('Default', -1, 'default');
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('No Access', 0, 'none');
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('Read', 20, 'read');
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('Translator', 30, 'mod_trans');
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('Modify', 40, 'mod');
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('Create/Write', 60, 'write');
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('Delete', 80, 'del');
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('Site Admin', 90, 'siteadmin');
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('Admin', 100, 'admin');
|
||||||
|
|
||||||
|
-- edit scheme
|
||||||
|
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Default Scheme', 'E0E2FF', 1);
|
||||||
|
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Admin', 'CC7E7E', 1);
|
||||||
|
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Visitor', 'B0C4B3', 1);
|
||||||
|
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('User', '1E789E', 1);
|
||||||
|
|
||||||
|
-- edit language
|
||||||
|
INSERT INTO edit_language (short_name, long_name, iso_name, order_number, enabled, lang_default) VALUES ('en', 'English', 'UTF-8', 1, 1, 1);
|
||||||
|
INSERT INTO edit_language (short_name, long_name, iso_name, order_number, enabled, lang_default) VALUES ('ja', 'Japanese', 'UTF-8', 2, 1, 0);
|
||||||
|
|
||||||
|
-- edit group
|
||||||
|
INSERT INTO edit_group (name, enabled, edit_scheme_id, edit_access_right_id) VALUES ('Admin', 1,
|
||||||
|
(SELECT edit_scheme_id FROM edit_scheme WHERE name = 'Admin'),
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
INSERT INTO edit_group (name, enabled, edit_scheme_id, edit_access_right_id) VALUES ('User', 1,
|
||||||
|
(SELECT edit_scheme_id FROM edit_scheme WHERE name = 'User'),
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'write')
|
||||||
|
);
|
||||||
|
|
||||||
|
-- edit page access
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
1,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
2,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
3,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
4,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
5,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
6,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin'
|
||||||
|
);
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
7,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin'
|
||||||
|
);
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
8,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
9,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
|
||||||
|
-- edit user
|
||||||
|
-- inserts admin user so basic users can be created
|
||||||
|
DELETE FROM edit_user;
|
||||||
|
INSERT INTO edit_user (username, password, enabled, debug, db_debug, email, protected, admin, edit_language_id, edit_group_id, edit_scheme_id, edit_access_right_id) VALUES ('admin', 'admin', 1, 1, 1, '', 1, 1,
|
||||||
|
(SELECT edit_language_id FROM edit_language WHERE short_name = 'en'),
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
(SELECT edit_scheme_id FROM edit_scheme WHERE name = 'Admin')
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
|
||||||
|
-- edit access
|
||||||
|
DELETE FROM edit_access;
|
||||||
|
INSERT INTO edit_access (name, enabled, protected) VALUES ('Admin Access', 't', 1);
|
||||||
|
INSERT INTO edit_access (name, enabled, protected) VALUES ('User Access', 't', 1);
|
||||||
|
|
||||||
|
-- edit access user
|
||||||
|
DELETE FROM edit_access_user;
|
||||||
|
INSERT INTO edit_access_user (edit_default, edit_access_id, edit_user_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_access_id FROM edit_access WHERE uid = 'AdminAccess')
|
||||||
|
(SELECT edit_user_id FROM edit_user WHERE username = 'admin')
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
-- add uid add for edit_access table
|
-- add uid add for edit_access table
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION set_edit_access_uid() RETURNS TRIGGER AS
|
CREATE OR REPLACE FUNCTION set_edit_access_uid() RETURNS TRIGGER AS
|
||||||
$$
|
$$
|
||||||
DECLARE
|
DECLARE
|
||||||
myrec RECORD;
|
myrec RECORD;
|
||||||
|
|||||||
18
4dev/database/function/random_string.sql
Executable file
18
4dev/database/function/random_string.sql
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
-- create random string with length X
|
||||||
|
|
||||||
|
CREATE FUNCTION random_string(randomLength int)
|
||||||
|
RETURNS text AS $$
|
||||||
|
SELECT array_to_string(
|
||||||
|
ARRAY(
|
||||||
|
SELECT substring(
|
||||||
|
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
|
||||||
|
trunc(random() * 62)::int + 1,
|
||||||
|
1
|
||||||
|
)
|
||||||
|
FROM generate_series(1, randomLength) AS gs(x)
|
||||||
|
),
|
||||||
|
''
|
||||||
|
)
|
||||||
|
$$ LANGUAGE SQL
|
||||||
|
RETURNS NULL ON NULL INPUT
|
||||||
|
VOLATILE; -- LEAKPROOF;
|
||||||
15
4dev/database/function/set_edit_generic.sql
Normal file
15
4dev/database/function/set_edit_generic.sql
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
-- adds the created or updated date tags
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION set_edit_generic() RETURNS TRIGGER AS '
|
||||||
|
DECLARE
|
||||||
|
random_length INT = 12; -- that should be long enough
|
||||||
|
BEGIN
|
||||||
|
IF TG_OP = ''INSERT'' THEN
|
||||||
|
NEW.date_created := ''now'';
|
||||||
|
NEW.cuid := random_string(random_length);
|
||||||
|
ELSIF TG_OP = ''UPDATE'' THEN
|
||||||
|
NEW.date_updated := ''now'';
|
||||||
|
END IF;
|
||||||
|
RETURN NEW;
|
||||||
|
END;
|
||||||
|
' LANGUAGE 'plpgsql';
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
CREATE OR REPLACE FUNCTION set_generic() RETURNS TRIGGER AS '
|
CREATE OR REPLACE FUNCTION set_generic() RETURNS TRIGGER AS '
|
||||||
BEGIN
|
BEGIN
|
||||||
IF TG_OP = ''INSERT'' THEN
|
IF TG_OP = ''INSERT'' THEN
|
||||||
NEW.date_created := ''now'';
|
NEW.cuid := random_string(random_length);
|
||||||
ELSIF TG_OP = ''UPDATE'' THEN
|
ELSIF TG_OP = ''UPDATE'' THEN
|
||||||
NEW.date_updated := ''now'';
|
NEW.date_updated := ''now'';
|
||||||
END IF;
|
END IF;
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ CREATE TABLE edit_access (
|
|||||||
edit_access_id SERIAL PRIMARY KEY,
|
edit_access_id SERIAL PRIMARY KEY,
|
||||||
name VARCHAR UNIQUE,
|
name VARCHAR UNIQUE,
|
||||||
description VARCHAR,
|
description VARCHAR,
|
||||||
COLOR VARCHAR
|
color VARCHAR,
|
||||||
|
uid VARCHAR,
|
||||||
|
enabled BOOLEAN DEFAULT 'true',
|
||||||
|
protected INT
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
DELETE FROM edit_access;
|
|
||||||
INSERT INTO edit_access (name) VALUES ('Admin Access');
|
|
||||||
|
|||||||
@@ -14,14 +14,3 @@ CREATE TABLE edit_access_right (
|
|||||||
type VARCHAR,
|
type VARCHAR,
|
||||||
UNIQUE (level,type)
|
UNIQUE (level,type)
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
DELETE FROM edit_access_right;
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Default', -1, 'default');
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('No Access', 0, 'none');
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Read', 20, 'read');
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Translator', 30, 'mod_trans');
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Modify', 40, 'mod');
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Create/Write', 60, 'write');
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Delete', 80, 'del');
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Site Admin', 90, 'siteadmin');
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Admin', 100, 'admin');
|
|
||||||
|
|||||||
@@ -17,6 +17,3 @@ CREATE TABLE edit_access_user (
|
|||||||
FOREIGN KEY (edit_user_id) REFERENCES edit_user (edit_user_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
FOREIGN KEY (edit_user_id) REFERENCES edit_user (edit_user_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
DELETE FROM edit_access_user;
|
|
||||||
INSERT INTO edit_access_user (edit_default, edit_access_id, edit_user_id, edit_access_right_id) VALUES (1, 1, 1, 8);
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
-- DROP TABLE edit_generic;
|
-- DROP TABLE edit_generic;
|
||||||
CREATE TABLE edit_generic (
|
CREATE TABLE edit_generic (
|
||||||
eg_status INT,
|
cuid VARCHAR,
|
||||||
date_created TIMESTAMP WITHOUT TIME ZONE DEFAULT clock_timestamp(),
|
date_created TIMESTAMP WITHOUT TIME ZONE DEFAULT clock_timestamp(),
|
||||||
date_updated TIMESTAMP WITHOUT TIME ZONE
|
date_updated TIMESTAMP WITHOUT TIME ZONE
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -15,5 +15,3 @@ CREATE TABLE edit_group (
|
|||||||
FOREIGN KEY (edit_scheme_id) REFERENCES edit_scheme (edit_scheme_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
FOREIGN KEY (edit_scheme_id) REFERENCES edit_scheme (edit_scheme_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
INSERT INTO edit_group (name, enabled, edit_scheme_id, edit_access_right_id) VALUES ('Admin', 1, 2, 8);
|
|
||||||
|
|||||||
@@ -16,5 +16,3 @@ CREATE TABLE edit_language (
|
|||||||
enabled SMALLINT NOT NULL DEFAULT 0,
|
enabled SMALLINT NOT NULL DEFAULT 0,
|
||||||
lang_default SMALLINT NOT NULL DEFAULT 0
|
lang_default SMALLINT NOT NULL DEFAULT 0
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
INSERT INTO edit_language (short_name, long_name, iso_name, order_number, enabled, lang_default) VALUES ('en', 'English', 'UTF-8', 1, 1, 1);
|
|
||||||
|
|||||||
@@ -13,6 +13,4 @@ CREATE TABLE edit_menu_group (
|
|||||||
order_number INT NOT NULL
|
order_number INT NOT NULL
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
DELETE FROM edit_menu_group;
|
|
||||||
INSERT INTO edit_menu_group (name, flag, order_number) VALUES ('Admin Menu', 'admin', 1);
|
|
||||||
INSERT INTO edit_menu_group (name, flag, order_number) VALUES ('Admin Data Popup Menu', 'AdminDataPopup', 2);
|
|
||||||
|
|||||||
@@ -17,14 +17,3 @@ CREATE TABLE edit_page (
|
|||||||
popup_x SMALLINT,
|
popup_x SMALLINT,
|
||||||
popup_y SMALLINT
|
popup_y SMALLINT
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
DELETE FROM edit_page;
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_pages.php', 'Edit Pages', 1, 1, 1);
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_users.php', 'Edit Users', 2, 1, 1);
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_languages.php', 'Edit Languages', 3, 1, 1);
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_schemes.php', 'Edit Schemes', 4, 1, 1);
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_groups.php', 'Edit Groups', 5, 1, 1);
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_visible_group.php', 'Edit Visible Groups', 6, 1, 1);
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_menu_group.php', 'Edit Menu Groups', 7, 1, 1);
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_access.php', 'Edit Access', 8, 1, 1);
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_order.php', 'Edit Order', 9, 1, 0);
|
|
||||||
|
|||||||
@@ -17,12 +17,4 @@ CREATE TABLE edit_page_access (
|
|||||||
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 1, 8);
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 2, 8);
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 3, 8);
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 4, 8);
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 5, 8);
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 6, 8);
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 7, 8);
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 8, 8);
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 9, 8);
|
|
||||||
|
|||||||
@@ -12,12 +12,3 @@ CREATE TABLE edit_page_menu_group (
|
|||||||
FOREIGN KEY (edit_page_id) REFERENCES edit_page (edit_page_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
FOREIGN KEY (edit_page_id) REFERENCES edit_page (edit_page_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
FOREIGN KEY (edit_menu_group_id) REFERENCES edit_menu_group (edit_menu_group_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
FOREIGN KEY (edit_menu_group_id) REFERENCES edit_menu_group (edit_menu_group_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
);
|
);
|
||||||
|
|
||||||
DELETE FROM edit_page_menu_group;
|
|
||||||
INSERT INTO edit_page_menu_group VALUES (1, 1);
|
|
||||||
INSERT INTO edit_page_menu_group VALUES (2, 1);
|
|
||||||
INSERT INTO edit_page_menu_group VALUES (3, 1);
|
|
||||||
INSERT INTO edit_page_menu_group VALUES (4, 1);
|
|
||||||
INSERT INTO edit_page_menu_group VALUES (5, 1);
|
|
||||||
INSERT INTO edit_page_menu_group VALUES (6, 1);
|
|
||||||
INSERT INTO edit_page_menu_group VALUES (7, 1);
|
|
||||||
|
|||||||
@@ -12,12 +12,3 @@ CREATE TABLE edit_page_visible_group (
|
|||||||
FOREIGN KEY (edit_page_id) REFERENCES edit_page (edit_page_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
FOREIGN KEY (edit_page_id) REFERENCES edit_page (edit_page_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
FOREIGN KEY (edit_visible_group_id) REFERENCES edit_visible_group (edit_visible_group_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
FOREIGN KEY (edit_visible_group_id) REFERENCES edit_visible_group (edit_visible_group_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
);
|
);
|
||||||
|
|
||||||
DELETE FROM edit_page_visible_group;
|
|
||||||
INSERT INTO edit_page_visible_group VALUES (1, 1);
|
|
||||||
INSERT INTO edit_page_visible_group VALUES (2, 1);
|
|
||||||
INSERT INTO edit_page_visible_group VALUES (3, 1);
|
|
||||||
INSERT INTO edit_page_visible_group VALUES (4, 1);
|
|
||||||
INSERT INTO edit_page_visible_group VALUES (5, 1);
|
|
||||||
INSERT INTO edit_page_visible_group VALUES (6, 1);
|
|
||||||
INSERT INTO edit_page_visible_group VALUES (7, 1);
|
|
||||||
|
|||||||
@@ -14,7 +14,3 @@ CREATE TABLE edit_scheme (
|
|||||||
css_file VARCHAR,
|
css_file VARCHAR,
|
||||||
template VARCHARs
|
template VARCHARs
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Default Scheme', 'E0E2FF', 1);
|
|
||||||
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Admin', 'CC7E7E', 1);
|
|
||||||
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Visitor', 'B0C4B3', 1);
|
|
||||||
|
|||||||
@@ -8,8 +8,13 @@
|
|||||||
-- DROP TABLE edit_user;
|
-- DROP TABLE edit_user;
|
||||||
CREATE TABLE edit_user (
|
CREATE TABLE edit_user (
|
||||||
edit_user_id SERIAL PRIMARY KEY,
|
edit_user_id SERIAL PRIMARY KEY,
|
||||||
|
connect_edit_user_id INT, -- possible reference to other user
|
||||||
username VARCHAR UNIQUE,
|
username VARCHAR UNIQUE,
|
||||||
password VARCHAR,
|
password VARCHAR,
|
||||||
|
first_name VARCHAR,
|
||||||
|
last_name VARCHAR,
|
||||||
|
first_name_furigana VARCHAR,
|
||||||
|
last_name_furigana VARCHAR,
|
||||||
enabled SMALLINT NOT NULL DEFAULT 0,
|
enabled SMALLINT NOT NULL DEFAULT 0,
|
||||||
debug SMALLINT NOT NULL DEFAULT 0,
|
debug SMALLINT NOT NULL DEFAULT 0,
|
||||||
db_debug SMALLINT NOT NULL DEFAULT 0,
|
db_debug SMALLINT NOT NULL DEFAULT 0,
|
||||||
@@ -27,12 +32,9 @@ CREATE TABLE edit_user (
|
|||||||
locked SMALLINT DEFAULT 0,
|
locked SMALLINT DEFAULT 0,
|
||||||
password_change_date TIMESTAMP WITHOUT TIME ZONE, -- only when password is first set or changed
|
password_change_date TIMESTAMP WITHOUT TIME ZONE, -- only when password is first set or changed
|
||||||
password_change_interval INTERVAL, -- null if no change is needed, or d/m/y time interval
|
password_change_interval INTERVAL, -- null if no change is needed, or d/m/y time interval
|
||||||
|
FOREIGN KEY (connect_edit_user_id) REFERENCES edit_user (edit_user_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
FOREIGN KEY (edit_language_id) REFERENCES edit_language (edit_language_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
FOREIGN KEY (edit_language_id) REFERENCES edit_language (edit_language_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
FOREIGN KEY (edit_group_id) REFERENCES edit_group (edit_group_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
FOREIGN KEY (edit_group_id) REFERENCES edit_group (edit_group_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
FOREIGN KEY (edit_scheme_id) REFERENCES edit_scheme (edit_scheme_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
FOREIGN KEY (edit_scheme_id) REFERENCES edit_scheme (edit_scheme_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
-- inserts admin user so basic users can be created
|
|
||||||
DELETE FROM edit_user;
|
|
||||||
INSERT INTO edit_user (username, password, enabled, debug, db_debug, email, protected, admin, edit_language_id, edit_group_id, edit_scheme_id, edit_access_right_id) VALUES ('admin', 'admin', 1, 1, 1, '', 1, 1, 1, 1, 2, 8);
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_access ON edit_access;
|
DROP TRIGGER trg_edit_access ON edit_access;
|
||||||
CREATE TRIGGER trg_edit_access
|
CREATE TRIGGER trg_edit_access
|
||||||
BEFORE INSERT OR UPDATE ON edit_access
|
BEFORE INSERT OR UPDATE ON edit_access
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_access_data ON edit_access_data;
|
DROP TRIGGER trg_edit_access_data ON edit_access_data;
|
||||||
CREATE TRIGGER trg_edit_access_data
|
CREATE TRIGGER trg_edit_access_data
|
||||||
BEFORE INSERT OR UPDATE ON edit_access_data
|
BEFORE INSERT OR UPDATE ON edit_access_data
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_access_right ON edit_access_right;
|
DROP TRIGGER trg_edit_access_right ON edit_access_right;
|
||||||
CREATE TRIGGER trg_edit_access_right
|
CREATE TRIGGER trg_edit_access_right
|
||||||
BEFORE INSERT OR UPDATE ON edit_access_right
|
BEFORE INSERT OR UPDATE ON edit_access_right
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_access_user ON edit_access_user;
|
DROP TRIGGER trg_edit_access_user ON edit_access_user;
|
||||||
CREATE TRIGGER trg_edit_access_user
|
CREATE TRIGGER trg_edit_access_user
|
||||||
BEFORE INSERT OR UPDATE ON edit_access_user
|
BEFORE INSERT OR UPDATE ON edit_access_user
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_group ON edit_group;
|
DROP TRIGGER trg_edit_group ON edit_group;
|
||||||
CREATE TRIGGER trg_edit_group
|
CREATE TRIGGER trg_edit_group
|
||||||
BEFORE INSERT OR UPDATE ON edit_group
|
BEFORE INSERT OR UPDATE ON edit_group
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_language ON edit_language;
|
DROP TRIGGER trg_edit_language ON edit_language;
|
||||||
CREATE TRIGGER trg_edit_language
|
CREATE TRIGGER trg_edit_language
|
||||||
BEFORE INSERT OR UPDATE ON edit_language
|
BEFORE INSERT OR UPDATE ON edit_language
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_log ON edit_log;
|
DROP TRIGGER trg_edit_log ON edit_log;
|
||||||
CREATE TRIGGER trg_edit_log
|
CREATE TRIGGER trg_edit_log
|
||||||
BEFORE INSERT OR UPDATE ON edit_log
|
BEFORE INSERT OR UPDATE ON edit_log
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_visible_group ON edit_visible_group;
|
DROP TRIGGER trg_edit_menu_group ON edit_menu_group;
|
||||||
CREATE TRIGGER trg_edit_menu_group
|
CREATE TRIGGER trg_edit_menu_group
|
||||||
BEFORE INSERT OR UPDATE ON edit_menu_group
|
BEFORE INSERT OR UPDATE ON edit_menu_group
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_page ON edit_page;
|
DROP TRIGGER trg_edit_page ON edit_page;
|
||||||
CREATE TRIGGER trg_edit_page
|
CREATE TRIGGER trg_edit_page
|
||||||
BEFORE INSERT OR UPDATE ON edit_page
|
BEFORE INSERT OR UPDATE ON edit_page
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_page_access ON edit_page_access;
|
DROP TRIGGER trg_edit_page_access ON edit_page_access;
|
||||||
CREATE TRIGGER trg_edit_page_access
|
CREATE TRIGGER trg_edit_page_access
|
||||||
BEFORE INSERT OR UPDATE ON edit_page_access
|
BEFORE INSERT OR UPDATE ON edit_page_access
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_query_string ON edit_query_string;
|
DROP TRIGGER trg_edit_query_string ON edit_query_string;
|
||||||
CREATE TRIGGER trg_edit_query_string
|
CREATE TRIGGER trg_edit_query_string
|
||||||
BEFORE INSERT OR UPDATE ON edit_query_string
|
BEFORE INSERT OR UPDATE ON edit_query_string
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_scheme ON edit_scheme;
|
DROP TRIGGER trg_edit_scheme ON edit_scheme;
|
||||||
CREATE TRIGGER trg_edit_scheme
|
CREATE TRIGGER trg_edit_scheme
|
||||||
BEFORE INSERT OR UPDATE ON edit_scheme
|
BEFORE INSERT OR UPDATE ON edit_scheme
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_user ON edit_user;
|
DROP TRIGGER trg_edit_user ON edit_user;
|
||||||
CREATE TRIGGER trg_edit_user
|
CREATE TRIGGER trg_edit_user
|
||||||
BEFORE INSERT OR UPDATE ON edit_user
|
BEFORE INSERT OR UPDATE ON edit_user
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_visible_group ON edit_visible_group;
|
DROP TRIGGER trg_edit_visible_group ON edit_visible_group;
|
||||||
CREATE TRIGGER trg_edit_visible_group
|
CREATE TRIGGER trg_edit_visible_group
|
||||||
BEFORE INSERT OR UPDATE ON edit_visible_group
|
BEFORE INSERT OR UPDATE ON edit_visible_group
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -139,8 +139,11 @@ $PAGES = $_SESSION["PAGES"];
|
|||||||
|
|
||||||
//$form->debug('menu', $form->printAr($PAGES));
|
//$form->debug('menu', $form->printAr($PAGES));
|
||||||
|
|
||||||
// baue nav aus $PAGES ...
|
// build nav from $PAGES ...
|
||||||
for ($i = 0; $i < count($PAGES); $i ++) {
|
if (!is_array($PAGES)) {
|
||||||
|
$PAGES = array ();
|
||||||
|
}
|
||||||
|
for ($i = 0, $i_max = count($PAGES); $i < $i_max; $i ++) {
|
||||||
if ($PAGES[$i]["menu"] && $PAGES[$i]["online"]) {
|
if ($PAGES[$i]["menu"] && $PAGES[$i]["online"]) {
|
||||||
$menuarray[] = $PAGES[$i];
|
$menuarray[] = $PAGES[$i];
|
||||||
}
|
}
|
||||||
@@ -204,6 +207,7 @@ if ($form->yes) {
|
|||||||
$elements[] = $form->formCreateElement("login_error_date_last");
|
$elements[] = $form->formCreateElement("login_error_date_last");
|
||||||
$elements[] = $form->formCreateElement("login_error_date_first");
|
$elements[] = $form->formCreateElement("login_error_date_first");
|
||||||
$elements[] = $form->formCreateElement("enabled");
|
$elements[] = $form->formCreateElement("enabled");
|
||||||
|
$elements[] = $form->formCreateElement("protected");
|
||||||
$elements[] = $form->formCreateElement("username");
|
$elements[] = $form->formCreateElement("username");
|
||||||
$elements[] = $form->formCreateElement("password");
|
$elements[] = $form->formCreateElement("password");
|
||||||
$elements[] = $form->formCreateElement("password_change_interval");
|
$elements[] = $form->formCreateElement("password_change_interval");
|
||||||
@@ -283,6 +287,8 @@ if ($form->yes) {
|
|||||||
break;
|
break;
|
||||||
case "edit_access":
|
case "edit_access":
|
||||||
$elements[] = $form->formCreateElement("name");
|
$elements[] = $form->formCreateElement("name");
|
||||||
|
$elements[] = $form->formCreateElement("enabled");
|
||||||
|
$elements[] = $form->formCreateElement("protected");
|
||||||
$elements[] = $form->formCreateElement("color");
|
$elements[] = $form->formCreateElement("color");
|
||||||
$elements[] = $form->formCreateElement("description");
|
$elements[] = $form->formCreateElement("description");
|
||||||
// add name/value list here
|
// add name/value list here
|
||||||
|
|||||||
@@ -28,6 +28,26 @@ $edit_access = array (
|
|||||||
"error_check" => "custom",
|
"error_check" => "custom",
|
||||||
"error_regex" => "/[\dA-Fa-f]{6}/",
|
"error_regex" => "/[\dA-Fa-f]{6}/",
|
||||||
"error_example" => "F6A544"
|
"error_example" => "F6A544"
|
||||||
|
),
|
||||||
|
"enabled" => array (
|
||||||
|
"value" => $GLOBALS["enabled"],
|
||||||
|
"output_name" => "Enabled",
|
||||||
|
"type" => "binary",
|
||||||
|
"int" => 1,
|
||||||
|
"element_list" => array (
|
||||||
|
"1" => "Yes",
|
||||||
|
"0" => "No"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
"protected" => array (
|
||||||
|
"value" => $GLOBALS["protected"],
|
||||||
|
"output_name" => "Protected",
|
||||||
|
"type" => "binary",
|
||||||
|
"int" => 1,
|
||||||
|
"element_list" => array (
|
||||||
|
"1" => "Yes",
|
||||||
|
"0" => "No"
|
||||||
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
"table_name" => "edit_access",
|
"table_name" => "edit_access",
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ $edit_users = array (
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
// password date when first insert and password is set, needs special field with connection to password
|
// password date when first insert and password is set, needs special field with connection to password
|
||||||
|
// password reset force interval, if set, user needs to reset password after X time period
|
||||||
'password_change_interval' => array (
|
'password_change_interval' => array (
|
||||||
'value' => $GLOBALS['password_change_interval'],
|
'value' => $GLOBALS['password_change_interval'],
|
||||||
'output_name' => 'Password change interval',
|
'output_name' => 'Password change interval',
|
||||||
@@ -38,7 +39,6 @@ $edit_users = array (
|
|||||||
'size' => 5, // make it 5 chars long
|
'size' => 5, // make it 5 chars long
|
||||||
'length' => 5
|
'length' => 5
|
||||||
),
|
),
|
||||||
// password reset force interval, if set, user needs to reset password after X time period
|
|
||||||
"enabled" => array (
|
"enabled" => array (
|
||||||
"value" => $GLOBALS["enabled"],
|
"value" => $GLOBALS["enabled"],
|
||||||
"output_name" => "Enabled",
|
"output_name" => "Enabled",
|
||||||
@@ -163,10 +163,15 @@ $edit_users = array (
|
|||||||
"type" => "view",
|
"type" => "view",
|
||||||
"empty" => "-"
|
"empty" => "-"
|
||||||
),
|
),
|
||||||
// planned delete lock flag
|
|
||||||
"protected" => array (
|
"protected" => array (
|
||||||
"value" => $GLOBALS["protected"],
|
"value" => $GLOBALS["protected"],
|
||||||
"int" => 1
|
"output_name" => "Protected",
|
||||||
|
"type" => "binary",
|
||||||
|
"int" => 1,
|
||||||
|
"element_list" => array (
|
||||||
|
"1" => "Yes",
|
||||||
|
"0" => "No"
|
||||||
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
"load_query" => "SELECT edit_user_id, username, enabled, debug, db_debug, strict, locked, login_error_count FROM edit_user ORDER BY username",
|
"load_query" => "SELECT edit_user_id, username, enabled, debug, db_debug, strict, locked, login_error_count FROM edit_user ORDER BY username",
|
||||||
|
|||||||
@@ -367,6 +367,30 @@ input[type="text"]:focus, textarea:focus, select:focus {
|
|||||||
font-size: 8px;
|
font-size: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* NEW VERSION with CSS key frame animation */
|
||||||
|
.progress {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
background: rgba(255, 255, 255, 0.6);
|
||||||
|
border: 20px solid rgba(255, 255, 255 ,0.25);
|
||||||
|
border-left-color: rgba(3, 155, 229 ,1);
|
||||||
|
border-top-color: rgba(3, 155, 229 ,1);
|
||||||
|
border-radius: 50%;
|
||||||
|
display: inline-block;
|
||||||
|
animation: rotate 600ms infinite linear;
|
||||||
|
/* align */
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
/* Animation for above progress */
|
||||||
|
@keyframes rotate {
|
||||||
|
to {
|
||||||
|
transform: rotate(1turn)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* ***************************** ADMIN EDIT INTERFACE COLORS ********************************* */
|
/* ***************************** ADMIN EDIT INTERFACE COLORS ********************************* */
|
||||||
/* set all colors here and not in the config file */
|
/* set all colors here and not in the config file */
|
||||||
/* for edit interface */
|
/* for edit interface */
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
code is taken and adapted from dokuwiki
|
code is taken and adapted from dokuwiki
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* jshint esversion: 6 */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Some browser detection
|
* Some browser detection
|
||||||
*/
|
*/
|
||||||
@@ -207,3 +209,196 @@ function formatBytes(bytes)
|
|||||||
|
|
||||||
return parseFloat(Math.round(bytes * Math.pow(10, 2)) / Math.pow(10, 2)) + ['kB', 'MB', 'GB', 'TB', 'PB', 'EB'][i];
|
return parseFloat(Math.round(bytes * Math.pow(10, 2)) / Math.pow(10, 2)) + ['kB', 'MB', 'GB', 'TB', 'PB', 'EB'][i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// *** DOM MANAGEMENT FUNCTIONS
|
||||||
|
// METHOD: cel [create element]
|
||||||
|
// PARAMS: tag: must set tag (div, span, etc)
|
||||||
|
// id: optional set for id, if input, select will be used for name
|
||||||
|
// content: text content inside, is skipped if sub elements exist
|
||||||
|
// css: array for css tags
|
||||||
|
// options: anything else (value, placeholder, OnClick, style)
|
||||||
|
// RETURN: object
|
||||||
|
// DESC : creates object for DOM element creation flow
|
||||||
|
const cel = (tag, id = '', content = '', css = [], options = {}) =>
|
||||||
|
element = {
|
||||||
|
tag: tag,
|
||||||
|
id: id,
|
||||||
|
name: options.name, // override name if set [name gets ignored in tree build anyway]
|
||||||
|
content: content,
|
||||||
|
css: css,
|
||||||
|
options: options,
|
||||||
|
sub: []
|
||||||
|
};
|
||||||
|
|
||||||
|
// METHOD: ael [attach element]
|
||||||
|
// PARAMS: base: object where to attach/search
|
||||||
|
// attach: the object to be attached
|
||||||
|
// id: optional id, if given search in base for this id and attach there
|
||||||
|
// RETURN: "none", technically there is no return needed
|
||||||
|
// DESC : attach a cel created object to another to create a basic DOM tree
|
||||||
|
function ael(base, attach, id = '')
|
||||||
|
{
|
||||||
|
if (id) {
|
||||||
|
// base id match already
|
||||||
|
if (base.id == id) {
|
||||||
|
base.sub.push(attach);
|
||||||
|
} else {
|
||||||
|
// sub check
|
||||||
|
if (base.sub.length > 0) {
|
||||||
|
base.sub.each(function(t) {
|
||||||
|
// recursive call to sub element
|
||||||
|
ael(t, attach, id);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
base.sub.push(attach);
|
||||||
|
}
|
||||||
|
return base;
|
||||||
|
}
|
||||||
|
|
||||||
|
// METHOD: rel [rese element]
|
||||||
|
// PARAMS: cel created element
|
||||||
|
// RETURN: "none", is self change, but returns base.sub
|
||||||
|
// DESC : resets the sub elements of the base element given
|
||||||
|
const rel = (base) => base.sub = [];
|
||||||
|
|
||||||
|
// METHOD: rcssel [remove a css from the element]
|
||||||
|
// PARAMS: element, style sheet to remove
|
||||||
|
// RETURN: "none", in place because of reference
|
||||||
|
// DESC : searches and removes style from css array
|
||||||
|
function rcssel(element, css)
|
||||||
|
{
|
||||||
|
let css_index = element.css.indexOf(css);
|
||||||
|
if (css_index > -1) {
|
||||||
|
element.css.splice(css_index, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// METHOD acssel [add css element]
|
||||||
|
// PARAMS: element, style sheet to add
|
||||||
|
// RETURN: "none", in place add because of reference
|
||||||
|
// DESC : adds a new style sheet to the element given
|
||||||
|
function acssel(element, css)
|
||||||
|
{
|
||||||
|
let css_index = element.css.indexOf(css);
|
||||||
|
if (css_index > -1) {
|
||||||
|
element.css.push(css);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// METHOD: phfo [produce html from object]
|
||||||
|
// PARAMS: object tree with dom element declarations
|
||||||
|
// RETURN: HTML string that can be used as innerHTML
|
||||||
|
// DESC : parses the object tree created with cel/ael
|
||||||
|
// and converts it into an HTML string that can
|
||||||
|
// be inserted into the page
|
||||||
|
function phfo(tree)
|
||||||
|
{
|
||||||
|
// holds the elements
|
||||||
|
let content = [];
|
||||||
|
// main part line
|
||||||
|
let line = '<' + tree.tag;
|
||||||
|
// first id, if set
|
||||||
|
if (tree.id) {
|
||||||
|
line += ' id="' + tree.id + '"';
|
||||||
|
// if anything input (input, textarea, select then add name too)
|
||||||
|
if (['input', 'textarea', 'select'].includes(tree.tag)) {
|
||||||
|
line += ' name="' + (tree.name ? tree.name : tree.id) + '"';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// second CSS
|
||||||
|
if (tree.css.length > 0) {
|
||||||
|
line += ' class="';
|
||||||
|
tree.css.each(function(t) {
|
||||||
|
line += t + ' ';
|
||||||
|
});
|
||||||
|
// strip last space
|
||||||
|
line = line.slice(0, -1);
|
||||||
|
line += '"';
|
||||||
|
}
|
||||||
|
// options is anything key = "data"
|
||||||
|
if (tree.options) {
|
||||||
|
// ignores id, name, class as key
|
||||||
|
for (const [key, item] of Object.entries(tree.options)) {
|
||||||
|
if (!['id', 'name', 'class'].includes(key)) {
|
||||||
|
line += ' ' + key + '="' + item + '"';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// finish open tag
|
||||||
|
line += '>';
|
||||||
|
// push finished line
|
||||||
|
content.push(line);
|
||||||
|
// dive into sub tree to attach sub nodes
|
||||||
|
// NOTES: we cannot have content (text) AND sub nodes at the same level
|
||||||
|
// NODE takes preference over content
|
||||||
|
if (tree.sub.length > 0) {
|
||||||
|
tree.sub.each(function(t) {
|
||||||
|
content.push(phfo(t));
|
||||||
|
});
|
||||||
|
} else if (tree.content) {
|
||||||
|
content.push(tree.content);
|
||||||
|
}
|
||||||
|
// if not input close
|
||||||
|
if (tree.tag != 'input') {
|
||||||
|
content.push('</' + tree.tag + '>');
|
||||||
|
}
|
||||||
|
// combine to string
|
||||||
|
return content.join('');
|
||||||
|
}
|
||||||
|
|
||||||
|
// BLOCK: html wrappers for quickly creating html data blocks
|
||||||
|
// METHOD: html_options
|
||||||
|
// PARAMS: name/id, array for the options, selected item uid
|
||||||
|
// options_only: if this is true, it will not print the select part
|
||||||
|
// return_string, return as string and not as element
|
||||||
|
// RETURN: html with build options block
|
||||||
|
// DESC : creates an select/options drop down block.
|
||||||
|
// the array needs to be key -> value format. key is for the option id and value is for the data output
|
||||||
|
function html_options(name, data, selected = '', options_only = false, return_string = false)
|
||||||
|
{
|
||||||
|
let content = [];
|
||||||
|
let element_select;
|
||||||
|
let element_option;
|
||||||
|
// set outside select, gets stripped on return if options only is true
|
||||||
|
element_select = cel('select', name);
|
||||||
|
// console.log('Call for %s, options: %s', name, options_only);
|
||||||
|
$H(data).each(function(t) {
|
||||||
|
console.log('options: key: %s, value: %s', t.key, t.value);
|
||||||
|
// basic options init
|
||||||
|
let options = {
|
||||||
|
'label': t.value,
|
||||||
|
'value': t.key
|
||||||
|
};
|
||||||
|
// add selected if matching
|
||||||
|
if (selected == t.key) {
|
||||||
|
options.selected = '';
|
||||||
|
}
|
||||||
|
// create the element option
|
||||||
|
element_option = cel('option', '', t.value, '', options);
|
||||||
|
// attach it to the select element
|
||||||
|
ael(element_select, element_option);
|
||||||
|
});
|
||||||
|
// if with select part, convert to text
|
||||||
|
if (!options_only) {
|
||||||
|
if (return_string) {
|
||||||
|
content.push(phfo(element_select));
|
||||||
|
return content.join('');
|
||||||
|
} else {
|
||||||
|
return element_select;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// strip select part
|
||||||
|
if (return_string) {
|
||||||
|
element.sub.each(function(t) {
|
||||||
|
content.push(phfo(t));
|
||||||
|
});
|
||||||
|
return content.join('');
|
||||||
|
} else {
|
||||||
|
return element_select.sub;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* END */
|
||||||
|
|||||||
@@ -3,3 +3,27 @@
|
|||||||
color: #a4a4a4;
|
color: #a4a4a4;
|
||||||
font-size: 8px;
|
font-size: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* NEW VERSION with CSS key frame animation */
|
||||||
|
.progress {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
background: rgba(255, 255, 255, 0.6);
|
||||||
|
border: 20px solid rgba(255, 255, 255 ,0.25);
|
||||||
|
border-left-color: rgba(3, 155, 229 ,1);
|
||||||
|
border-top-color: rgba(3, 155, 229 ,1);
|
||||||
|
border-radius: 50%;
|
||||||
|
display: inline-block;
|
||||||
|
animation: rotate 600ms infinite linear;
|
||||||
|
/* align */
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
/* Animation for above progress */
|
||||||
|
@keyframes rotate {
|
||||||
|
to {
|
||||||
|
transform: rotate(1turn)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -70,10 +70,14 @@ class Login extends \CoreLibs\DB\IO
|
|||||||
private $login_error; // login error code, can be matched to the array login_error_msg, which holds the string
|
private $login_error; // login error code, can be matched to the array login_error_msg, which holds the string
|
||||||
private $password_change = false; // if this is set to true, the user can change passwords
|
private $password_change = false; // if this is set to true, the user can change passwords
|
||||||
private $password_change_ok = false; // password change was successful
|
private $password_change_ok = false; // password change was successful
|
||||||
|
private $password_forgot = false; // can we reset password and mail to user with new password set screen
|
||||||
|
private $password_forgot_ok = false; // password forgot mail send ok
|
||||||
private $pw_change_deny_users = array (); // array of users for which the password change is forbidden
|
private $pw_change_deny_users = array (); // array of users for which the password change is forbidden
|
||||||
|
|
||||||
// if we have password change we need to define some rules
|
// if we have password change we need to define some rules
|
||||||
private $password_min_length = 8;
|
private $password_min_length = PASSWORD_MIN_LENGTH;
|
||||||
|
// max length is fixed as 255 (for input type max), if set highter, it will be set back to 255
|
||||||
|
private $password_max_length = PASSWORD_MAX_LENGTH;
|
||||||
// can have several regexes, if nothing set, all is ok
|
// can have several regexes, if nothing set, all is ok
|
||||||
private $password_valid_chars = array (
|
private $password_valid_chars = array (
|
||||||
// '^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z!@#$%]{8,}$',
|
// '^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z!@#$%]{8,}$',
|
||||||
@@ -83,7 +87,11 @@ class Login extends \CoreLibs\DB\IO
|
|||||||
// all possible login error conditions
|
// all possible login error conditions
|
||||||
private $login_error_msg = array ();
|
private $login_error_msg = array ();
|
||||||
// this is an array holding all strings & templates passed from the outside (translation)
|
// this is an array holding all strings & templates passed from the outside (translation)
|
||||||
private $login_template = array ('strings' => array (), 'password_change' => '', 'template' => '');
|
private $login_template = array (
|
||||||
|
'strings' => array (),
|
||||||
|
'password_change' => '',
|
||||||
|
'template' => ''
|
||||||
|
);
|
||||||
|
|
||||||
// acl vars
|
// acl vars
|
||||||
public $acl = array ();
|
public $acl = array ();
|
||||||
@@ -113,6 +121,16 @@ class Login extends \CoreLibs\DB\IO
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// pre-check that password min/max lengths are inbetween 1 and 255;
|
||||||
|
if ($this->password_max_length > 255) {
|
||||||
|
echo "<b>Settings problem</b> PMaL<br>";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
if ($this->password_min_length < 1) {
|
||||||
|
echo "<b>Settings problem</b> PMiL<br>";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
$this->l = new \CoreLibs\Language\L10n($lang);
|
$this->l = new \CoreLibs\Language\L10n($lang);
|
||||||
|
|
||||||
// if we have a search path we need to set it, to use the correct DB to login
|
// if we have a search path we need to set it, to use the correct DB to login
|
||||||
@@ -179,6 +197,10 @@ class Login extends \CoreLibs\DB\IO
|
|||||||
if (defined('PASSWORD_CHANGE')) {
|
if (defined('PASSWORD_CHANGE')) {
|
||||||
$this->password_change = PASSWORD_CHANGE;
|
$this->password_change = PASSWORD_CHANGE;
|
||||||
}
|
}
|
||||||
|
// NOTE: forgot password flow with email
|
||||||
|
if (defined('PASSWORD_FORGOT')) {
|
||||||
|
$this->password_forgot = PASSWORD_FORGOT;
|
||||||
|
}
|
||||||
// max login counts before error reporting
|
// max login counts before error reporting
|
||||||
$this->max_login_error_count = 10;
|
$this->max_login_error_count = 10;
|
||||||
// users that never get locked, even if they are set strict
|
// users that never get locked, even if they are set strict
|
||||||
@@ -216,6 +238,10 @@ class Login extends \CoreLibs\DB\IO
|
|||||||
if ($this->password_change) {
|
if ($this->password_change) {
|
||||||
$this->loginPasswordChange();
|
$this->loginPasswordChange();
|
||||||
}
|
}
|
||||||
|
// password forgot
|
||||||
|
if ($this->password_forgot) {
|
||||||
|
$this->loginPasswordForgot();
|
||||||
|
}
|
||||||
// if !$euid || permission not okay, print login screan
|
// if !$euid || permission not okay, print login screan
|
||||||
echo $this->loginPrintLogin();
|
echo $this->loginPrintLogin();
|
||||||
// closing all connections, depending on error status, exit
|
// closing all connections, depending on error status, exit
|
||||||
@@ -386,7 +412,9 @@ class Login extends \CoreLibs\DB\IO
|
|||||||
$_SESSION["DEFAULT_LANG"] = $res["lang_short"].'_'.strtolower(str_replace('-', '', $res["lang_iso"]));
|
$_SESSION["DEFAULT_LANG"] = $res["lang_short"].'_'.strtolower(str_replace('-', '', $res["lang_iso"]));
|
||||||
// reset any login error count for this user
|
// reset any login error count for this user
|
||||||
if ($res['login_error_count'] > 0) {
|
if ($res['login_error_count'] > 0) {
|
||||||
$q = "UPDATE edit_user SET login_error_count = 0, login_error_date_last = NULL, login_error_date_first = NULL WHERE edit_user_id = ".$res['edit_user_id'];
|
$q = "UPDATE edit_user ";
|
||||||
|
$q .= "SET login_error_count = 0, login_error_date_last = NULL, login_error_date_first = NULL ";
|
||||||
|
$q .= "WHERE edit_user_id = ".$res['edit_user_id'];
|
||||||
$this->dbExec($q);
|
$this->dbExec($q);
|
||||||
}
|
}
|
||||||
$pages = array();
|
$pages = array();
|
||||||
@@ -573,7 +601,7 @@ class Login extends \CoreLibs\DB\IO
|
|||||||
unset($_SESSION["GROUP_NAME"]);
|
unset($_SESSION["GROUP_NAME"]);
|
||||||
unset($_SESSION["HEADER_COLOR"]);
|
unset($_SESSION["HEADER_COLOR"]);
|
||||||
session_destroy();
|
session_destroy();
|
||||||
// he prints the login screen again
|
// then prints the login screen again
|
||||||
$this->permission_okay = 0;
|
$this->permission_okay = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -596,88 +624,91 @@ class Login extends \CoreLibs\DB\IO
|
|||||||
// * if an account ACL is set, set this parallel, account ACL overrides user ACL if it applies
|
// * if an account ACL is set, set this parallel, account ACL overrides user ACL if it applies
|
||||||
// * if edit access ACL level is set, use this, else use page
|
// * if edit access ACL level is set, use this, else use page
|
||||||
// set all base ACL levels as a list keyword -> ACL number
|
// set all base ACL levels as a list keyword -> ACL number
|
||||||
public function loginSetAcl()
|
private function loginSetAcl()
|
||||||
{
|
{
|
||||||
// we start with the default acl
|
// only set acl if we have permission okay
|
||||||
$this->acl['base'] = DEFAULT_ACL_LEVEL;
|
if ($this->permission_okay) {
|
||||||
|
// we start with the default acl
|
||||||
|
$this->acl['base'] = DEFAULT_ACL_LEVEL;
|
||||||
|
|
||||||
// set admin flag and base to 100
|
// set admin flag and base to 100
|
||||||
if ($_SESSION['ADMIN']) {
|
if ($_SESSION['ADMIN']) {
|
||||||
$this->acl['admin'] = 1;
|
$this->acl['admin'] = 1;
|
||||||
$this->acl['base'] = 100;
|
$this->acl['base'] = 100;
|
||||||
} else {
|
|
||||||
$this->acl['admin'] = 0;
|
|
||||||
// now go throw the flow and set the correct ACL
|
|
||||||
// user > page > group
|
|
||||||
// group ACL 0
|
|
||||||
if ($_SESSION['GROUP_ACL_LEVEL'] != -1) {
|
|
||||||
$this->acl['base'] = $_SESSION['GROUP_ACL_LEVEL'];
|
|
||||||
}
|
|
||||||
// page ACL 1
|
|
||||||
if ($_SESSION['PAGES_ACL_LEVEL'][$this->page_name] != -1) {
|
|
||||||
$this->acl['base'] = $_SESSION['PAGES_ACL_LEVEL'][$this->page_name];
|
|
||||||
}
|
|
||||||
// user ACL 2
|
|
||||||
if ($_SESSION['USER_ACL_LEVEL'] != -1) {
|
|
||||||
$this->acl['base'] = $_SESSION['USER_ACL_LEVEL'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// set the current page acl
|
|
||||||
// start with default acl
|
|
||||||
// set group if not -1, overrides default
|
|
||||||
// set page if not -1, overrides group set
|
|
||||||
$this->acl['page'] = DEFAULT_ACL_LEVEL;
|
|
||||||
if ($_SESSION['GROUP_ACL_LEVEL'] != -1) {
|
|
||||||
$this->acl['page'] = $_SESSION['GROUP_ACL_LEVEL'];
|
|
||||||
}
|
|
||||||
if (isset($_SESSION['PAGES_ACL_LEVEL'][$this->page_name]) && $_SESSION['PAGES_ACL_LEVEL'][$this->page_name] != -1) {
|
|
||||||
$this->acl['page'] = $_SESSION['PAGES_ACL_LEVEL'][$this->page_name];
|
|
||||||
}
|
|
||||||
|
|
||||||
// PER ACCOUNT (UNIT/edit access)->
|
|
||||||
foreach ($_SESSION['UNIT'] as $ea_id => $unit) {
|
|
||||||
// if admin flag is set, all units are set to 100
|
|
||||||
if ($this->acl['admin']) {
|
|
||||||
$this->acl['unit'][$ea_id] = $this->acl['base'];
|
|
||||||
} else {
|
} else {
|
||||||
if ($unit['acl_level'] != -1) {
|
$this->acl['admin'] = 0;
|
||||||
$this->acl['unit'][$ea_id] = $unit['acl_level'];
|
// now go throw the flow and set the correct ACL
|
||||||
} else {
|
// user > page > group
|
||||||
$this->acl['unit'][$ea_id] = $this->acl['base'];
|
// group ACL 0
|
||||||
|
if ($_SESSION['GROUP_ACL_LEVEL'] != -1) {
|
||||||
|
$this->acl['base'] = $_SESSION['GROUP_ACL_LEVEL'];
|
||||||
|
}
|
||||||
|
// page ACL 1
|
||||||
|
if ($_SESSION['PAGES_ACL_LEVEL'][$this->page_name] != -1) {
|
||||||
|
$this->acl['base'] = $_SESSION['PAGES_ACL_LEVEL'][$this->page_name];
|
||||||
|
}
|
||||||
|
// user ACL 2
|
||||||
|
if ($_SESSION['USER_ACL_LEVEL'] != -1) {
|
||||||
|
$this->acl['base'] = $_SESSION['USER_ACL_LEVEL'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// detail name/level set
|
|
||||||
$this->acl['unit_detail'][$ea_id] = array (
|
// set the current page acl
|
||||||
'name' => $unit['name'],
|
// start with default acl
|
||||||
'uid' => $unit['uid'],
|
// set group if not -1, overrides default
|
||||||
'level' => $this->default_acl_list[$this->acl['unit'][$ea_id]]['name'],
|
// set page if not -1, overrides group set
|
||||||
'default' => $unit['default'],
|
$this->acl['page'] = DEFAULT_ACL_LEVEL;
|
||||||
'data' => $unit['data']
|
if ($_SESSION['GROUP_ACL_LEVEL'] != -1) {
|
||||||
);
|
$this->acl['page'] = $_SESSION['GROUP_ACL_LEVEL'];
|
||||||
// set default
|
|
||||||
if ($unit['default']) {
|
|
||||||
$this->acl['unit_id'] = $unit['id'];
|
|
||||||
$this->acl['unit_name'] = $unit['name'];
|
|
||||||
$this->acl['unit_uid'] = $unit['uid'];
|
|
||||||
}
|
}
|
||||||
|
if (isset($_SESSION['PAGES_ACL_LEVEL'][$this->page_name]) && $_SESSION['PAGES_ACL_LEVEL'][$this->page_name] != -1) {
|
||||||
|
$this->acl['page'] = $_SESSION['PAGES_ACL_LEVEL'][$this->page_name];
|
||||||
|
}
|
||||||
|
|
||||||
|
// PER ACCOUNT (UNIT/edit access)->
|
||||||
|
foreach ($_SESSION['UNIT'] as $ea_id => $unit) {
|
||||||
|
// if admin flag is set, all units are set to 100
|
||||||
|
if ($this->acl['admin']) {
|
||||||
|
$this->acl['unit'][$ea_id] = $this->acl['base'];
|
||||||
|
} else {
|
||||||
|
if ($unit['acl_level'] != -1) {
|
||||||
|
$this->acl['unit'][$ea_id] = $unit['acl_level'];
|
||||||
|
} else {
|
||||||
|
$this->acl['unit'][$ea_id] = $this->acl['base'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// detail name/level set
|
||||||
|
$this->acl['unit_detail'][$ea_id] = array (
|
||||||
|
'name' => $unit['name'],
|
||||||
|
'uid' => $unit['uid'],
|
||||||
|
'level' => $this->default_acl_list[$this->acl['unit'][$ea_id]]['name'],
|
||||||
|
'default' => $unit['default'],
|
||||||
|
'data' => $unit['data']
|
||||||
|
);
|
||||||
|
// set default
|
||||||
|
if ($unit['default']) {
|
||||||
|
$this->acl['unit_id'] = $unit['id'];
|
||||||
|
$this->acl['unit_name'] = $unit['name'];
|
||||||
|
$this->acl['unit_uid'] = $unit['uid'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// flag if to show extra edit access drop downs (because user has multiple groups assigned)
|
||||||
|
if (count($_SESSION['UNIT']) > 1) {
|
||||||
|
$this->acl['show_ea_extra'] = 1;
|
||||||
|
} else {
|
||||||
|
$this->acl['show_ea_extra'] = 0;
|
||||||
|
}
|
||||||
|
// set the default edit access
|
||||||
|
$this->acl['default_edit_access'] = $_SESSION['UNIT_DEFAULT'];
|
||||||
|
// integrate the type acl list, but only for the keyword -> level
|
||||||
|
foreach ($this->default_acl_list as $level => $data) {
|
||||||
|
$this->acl['min'][$data['type']] = $level;
|
||||||
|
}
|
||||||
|
// set the full acl list too
|
||||||
|
$this->acl['acl_list'] = $_SESSION['DEFAULT_ACL_LIST'];
|
||||||
|
// debug
|
||||||
|
// $this->debug('ACL', $this->print_ar($this->acl));
|
||||||
}
|
}
|
||||||
// flag if to show extra edit access drop downs (because user has multiple groups assigned)
|
|
||||||
if (count($_SESSION['UNIT']) > 1) {
|
|
||||||
$this->acl['show_ea_extra'] = 1;
|
|
||||||
} else {
|
|
||||||
$this->acl['show_ea_extra'] = 0;
|
|
||||||
}
|
|
||||||
// set the default edit access
|
|
||||||
$this->acl['default_edit_access'] = $_SESSION['UNIT_DEFAULT'];
|
|
||||||
// integrate the type acl list, but only for the keyword -> level
|
|
||||||
foreach ($this->default_acl_list as $level => $data) {
|
|
||||||
$this->acl['min'][$data['type']] = $level;
|
|
||||||
}
|
|
||||||
// set the full acl list too
|
|
||||||
$this->acl['acl_list'] = $_SESSION['DEFAULT_ACL_LIST'];
|
|
||||||
// debug
|
|
||||||
// $this->debug('ACL', $this->print_ar($this->acl));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// METHOD: loginCheckEditAccess
|
// METHOD: loginCheckEditAccess
|
||||||
@@ -710,12 +741,28 @@ class Login extends \CoreLibs\DB\IO
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// check for min length
|
// check for min length
|
||||||
if (strlen($password) < $this->password_min_length) {
|
if (strlen($password) < $this->password_min_length || strlen($password) > $this->password_max_length) {
|
||||||
$is_valid_password = false;
|
$is_valid_password = false;
|
||||||
}
|
}
|
||||||
return $is_valid_password;
|
return $is_valid_password;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// METHOD: loginSetPasswordMinLength
|
||||||
|
// PARAMS: set the minimum length
|
||||||
|
// RETURN: true/false on success
|
||||||
|
// DESC : sets the minium length and checks on valid
|
||||||
|
public function loginSetPasswordMinLength($length)
|
||||||
|
{
|
||||||
|
// check that numeric, positive numeric, not longer than max input string lenght
|
||||||
|
// and not short than min password length
|
||||||
|
if (is_numeric($length) && $length >= PASSWORD_MIN_LENGTH && $length <= $this->password_max_length) {
|
||||||
|
$this->password_min_length = $length;
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// METHOD: loginPasswordChange
|
// METHOD: loginPasswordChange
|
||||||
// WAS : login_password_change
|
// WAS : login_password_change
|
||||||
// PARAMS: none
|
// PARAMS: none
|
||||||
@@ -793,7 +840,7 @@ class Login extends \CoreLibs\DB\IO
|
|||||||
// METHOD: loginPrintLogin
|
// METHOD: loginPrintLogin
|
||||||
// WAS : login_print_login
|
// WAS : login_print_login
|
||||||
// PARAMS: none
|
// PARAMS: none
|
||||||
// RETURN: none
|
// RETURN: html data for login page
|
||||||
// DESC : prints out login html part if no permission (error) is set
|
// DESC : prints out login html part if no permission (error) is set
|
||||||
private function loginPrintLogin()
|
private function loginPrintLogin()
|
||||||
{
|
{
|
||||||
@@ -863,7 +910,7 @@ class Login extends \CoreLibs\DB\IO
|
|||||||
// METHOD: loginCloseClass
|
// METHOD: loginCloseClass
|
||||||
// WAS : login_close_class
|
// WAS : login_close_class
|
||||||
// PARAMS: none
|
// PARAMS: none
|
||||||
// RETURN: none
|
// RETURN: true on permission ok, false on permission wrong
|
||||||
// DESC : last function called, writes log and prints out error msg and exists script if permission 0
|
// DESC : last function called, writes log and prints out error msg and exists script if permission 0
|
||||||
private function loginCloseClass()
|
private function loginCloseClass()
|
||||||
{
|
{
|
||||||
@@ -882,8 +929,8 @@ class Login extends \CoreLibs\DB\IO
|
|||||||
// prepare for log
|
// prepare for log
|
||||||
if ($this->euid) {
|
if ($this->euid) {
|
||||||
// get user from user table
|
// get user from user table
|
||||||
$q = "SELECT username, password FROM edit_user WHERE edit_user_id = ".$this->euid;
|
$q = "SELECT username FROM edit_user WHERE edit_user_id = ".$this->euid;
|
||||||
list($username, $password) = $this->dbReturnRow($q);
|
list($username) = $this->dbReturnRow($q);
|
||||||
} // if euid is set, get username (or try)
|
} // if euid is set, get username (or try)
|
||||||
$this->writeLog($event, '', $this->login_error, $username);
|
$this->writeLog($event, '', $this->login_error, $username);
|
||||||
} // write log under certain settings
|
} // write log under certain settings
|
||||||
@@ -898,50 +945,50 @@ class Login extends \CoreLibs\DB\IO
|
|||||||
|
|
||||||
// METHOD: loginSetTemplates
|
// METHOD: loginSetTemplates
|
||||||
// WAS : login_set_templates
|
// WAS : login_set_templates
|
||||||
// PARAMS:
|
// PARAMS: none
|
||||||
// RETURN: none
|
// RETURN: none
|
||||||
// DESC : checks if there are external templates, if not uses internal fallback ones
|
// DESC : checks if there are external templates, if not uses internal fallback ones
|
||||||
private function loginSetTemplates()
|
private function loginSetTemplates()
|
||||||
{
|
{
|
||||||
$strings = array (
|
$strings = array (
|
||||||
'HTML_TITLE' => $this->l->__("LOGIN"),
|
'HTML_TITLE' => $this->l->__('LOGIN'),
|
||||||
'TITLE' => $this->l->__("LOGIN"),
|
'TITLE' => $this->l->__('LOGIN'),
|
||||||
'USERNAME' => $this->l->__("Username"),
|
'USERNAME' => $this->l->__('Username'),
|
||||||
'PASSWORD' => $this->l->__("Password"),
|
'PASSWORD' => $this->l->__('Password'),
|
||||||
'LOGIN' => $this->l->__("Login"),
|
'LOGIN' => $this->l->__('Login'),
|
||||||
'ERROR_MSG' => '',
|
'ERROR_MSG' => '',
|
||||||
'LOGOUT_TARGET' => '',
|
'LOGOUT_TARGET' => '',
|
||||||
'PASSWORD_CHANGE_BUTTON_VALUE' => $this->l->__('Change Password')
|
'PASSWORD_CHANGE_BUTTON_VALUE' => $this->l->__('Change Password')
|
||||||
);
|
);
|
||||||
|
|
||||||
$error_msgs = array (
|
$error_msgs = array (
|
||||||
"100" => $this->l->__("Fatal Error: <b>[EUID] came in as GET/POST!</b>"), // actually obsolete
|
'100' => $this->l->__('Fatal Error: <b>[EUID] came in as GET/POST!</b>'), // actually obsolete
|
||||||
"1010" => $this->l->__("Fatal Error: <b>Login Failed - Wrong Username or Password</b>"), // user not found
|
'1010' => $this->l->__('Fatal Error: <b>Login Failed - Wrong Username or Password</b>'), // user not found
|
||||||
"1011" => $this->l->__("Fatal Error: <b>Login Failed - Wrong Username or Password</b>"), // blowfish password wrong
|
'1011' => $this->l->__('Fatal Error: <b>Login Failed - Wrong Username or Password</b>'), // blowfish password wrong
|
||||||
"1012" => $this->l->__("Fatal Error: <b>Login Failed - Wrong Username or Password</b>"), // fallback md5 password wrong
|
'1012' => $this->l->__('Fatal Error: <b>Login Failed - Wrong Username or Password</b>'), // fallback md5 password wrong
|
||||||
"1013" => $this->l->__("Fatal Error: <b>Login Failed - Wrong Username or Password</b>"), // new password_hash wrong
|
'1013' => $this->l->__('Fatal Error: <b>Login Failed - Wrong Username or Password</b>'), // new password_hash wrong
|
||||||
"102" => $this->l->__("Fatal Error: <b>Login Failed - Please enter username and password</b>"),
|
'102' => $this->l->__('Fatal Error: <b>Login Failed - Please enter username and password</b>'),
|
||||||
"103" => $this->l->__("Fatal Error: <b>You do not have the rights to access this Page</b>"),
|
'103' => $this->l->__('Fatal Error: <b>You do not have the rights to access this Page</b>'),
|
||||||
"104" => $this->l->__("Fatal Error: <b>Login Failed - User not enabled</b>"),
|
'104' => $this->l->__('Fatal Error: <b>Login Failed - User not enabled</b>'),
|
||||||
"105" => $this->l->__("Fatal Error: <b>Login Failed - User is locked</b>"),
|
'105' => $this->l->__('Fatal Error: <b>Login Failed - User is locked</b>'),
|
||||||
"220" => $this->l->__("Fatal Error: <b>Password change - The user could not be found</b>"), // actually this is an illegal user, but I mask it
|
'220' => $this->l->__('Fatal Error: <b>Password change - The user could not be found</b>'), // actually this is an illegal user, but I mask it
|
||||||
'200' => $this->l->__("Fatal Error: <b>Password change - Please enter username and old password</b>"),
|
'200' => $this->l->__('Fatal Error: <b>Password change - Please enter username and old password</b>'),
|
||||||
"201" => $this->l->__("Fatal Error: <b>Password change - The user could not be found</b>"),
|
'201' => $this->l->__('Fatal Error: <b>Password change - The user could not be found</b>'),
|
||||||
"202" => $this->l->__("Fatal Error: <b>Password change - The old password is not correct</b>"),
|
'202' => $this->l->__('Fatal Error: <b>Password change - The old password is not correct</b>'),
|
||||||
"203" => $this->l->__("Fatal Error: <b>Password change - Please fill out both new password fields</b>"),
|
'203' => $this->l->__('Fatal Error: <b>Password change - Please fill out both new password fields</b>'),
|
||||||
"204" => $this->l->__("Fatal Error: <b>Password change - The new passwords do not match</b>"),
|
'204' => $this->l->__('Fatal Error: <b>Password change - The new passwords do not match</b>'),
|
||||||
"205" => $this->l->__("Fatal Error: <b>Password change - The new password is not in a valid format</b>"), // we should also not here WHAT is valid
|
'205' => $this->l->__('Fatal Error: <b>Password change - The new password is not in a valid format</b>'), // we should also not here WHAT is valid
|
||||||
"300" => $this->l->__("Success: <b>Password change successful</b>"), // for OK password change
|
'300' => $this->l->__('Success: <b>Password change successful</b>'), // for OK password change
|
||||||
"9999" => $this->l->__("Fatal Error: <b>necessary crypt engine could not be found</b>. Login is impossible") // this is bad bad error
|
'9999' => $this->l->__('Fatal Error: <b>necessary crypt engine could not be found</b>. Login is impossible') // this is bad bad error
|
||||||
);
|
);
|
||||||
|
|
||||||
// if password change is okay
|
// if password change is okay
|
||||||
if ($this->password_change) {
|
if ($this->password_change) {
|
||||||
$strings = array_merge($strings, array (
|
$strings = array_merge($strings, array (
|
||||||
'TITLE_PASSWORD_CHANGE' => 'Change Password for User',
|
'TITLE_PASSWORD_CHANGE' => 'Change Password for User',
|
||||||
'OLD_PASSWORD' => $this->l->__("Old Password"),
|
'OLD_PASSWORD' => $this->l->__('Old Password'),
|
||||||
'NEW_PASSWORD' => $this->l->__("New Password"),
|
'NEW_PASSWORD' => $this->l->__('New Password'),
|
||||||
'NEW_PASSWORD_CONFIRM' => $this->l->__("New Password confirm"),
|
'NEW_PASSWORD_CONFIRM' => $this->l->__('New Password confirm'),
|
||||||
'CLOSE' => $this->l->__('Close'),
|
'CLOSE' => $this->l->__('Close'),
|
||||||
'JS_SHOW_HIDE' => "function ShowHideDiv(id) { element = document.getElementById(id); if (element.className == 'visible' || !element.className) element.className = 'hidden'; else element.className = 'visible'; }",
|
'JS_SHOW_HIDE' => "function ShowHideDiv(id) { element = document.getElementById(id); if (element.className == 'visible' || !element.className) element.className = 'hidden'; else element.className = 'visible'; }",
|
||||||
'PASSWORD_CHANGE_BUTTON' => '<input type="button" name="pw_change" value="'.$strings['PASSWORD_CHANGE_BUTTON_VALUE'].'" OnClick="ShowHideDiv(\'pw_change_div\');">'
|
'PASSWORD_CHANGE_BUTTON' => '<input type="button" name="pw_change" value="'.$strings['PASSWORD_CHANGE_BUTTON_VALUE'].'" OnClick="ShowHideDiv(\'pw_change_div\');">'
|
||||||
@@ -960,7 +1007,10 @@ class Login extends \CoreLibs\DB\IO
|
|||||||
</div>
|
</div>
|
||||||
{PASSWORD_CHANGE_SHOW}
|
{PASSWORD_CHANGE_SHOW}
|
||||||
EOM;
|
EOM;
|
||||||
} else {
|
}
|
||||||
|
if ($this->password_forgot) {
|
||||||
|
}
|
||||||
|
if (!$this->password_change && !$this->password_forgot) {
|
||||||
$strings = array_merge($strings, array (
|
$strings = array_merge($strings, array (
|
||||||
'JS_SHOW_HIDE' => '',
|
'JS_SHOW_HIDE' => '',
|
||||||
'PASSWORD_CHANGE_BUTTON' => '',
|
'PASSWORD_CHANGE_BUTTON' => '',
|
||||||
|
|||||||
@@ -1341,7 +1341,7 @@ class Basic
|
|||||||
// METHOD: compareDate
|
// METHOD: compareDate
|
||||||
// WAS : CompareDate
|
// WAS : CompareDate
|
||||||
// PARAMS: start_date, end_date (both: YYYY-MM-DD)
|
// PARAMS: start_date, end_date (both: YYYY-MM-DD)
|
||||||
// RETURN: -1 if the first date is smaller the last, 0 if both are equal, 1 if the end date is bigger than the last
|
// RETURN: -1 if the first date is smaller the last, 0 if both are equal, 1 if the first date is bigger than the last
|
||||||
// DESC : splits & checks date, wrap around for check_date function
|
// DESC : splits & checks date, wrap around for check_date function
|
||||||
public static function compareDate($start_date, $end_date)
|
public static function compareDate($start_date, $end_date)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -466,7 +466,7 @@ class IO extends \CoreLibs\Basic
|
|||||||
private function __checkQueryForSelect($query)
|
private function __checkQueryForSelect($query)
|
||||||
{
|
{
|
||||||
// perhaps allow spaces before select ?!?
|
// perhaps allow spaces before select ?!?
|
||||||
if (!preg_match("/^(select|show) /i", $query)) {
|
if (!preg_match("/^(select|show|with) /i", $query)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -1621,6 +1621,12 @@ class IO extends \CoreLibs\Basic
|
|||||||
if ($string == 'f' || $string == 'false') {
|
if ($string == 'f' || $string == 'false') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
// fallback in case top is not t/f, default on set unset
|
||||||
|
if ($string) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if ($string) {
|
if ($string) {
|
||||||
return 't';
|
return 't';
|
||||||
@@ -1656,7 +1662,7 @@ class IO extends \CoreLibs\Basic
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$not_write_update_array = array ();
|
$not_write_update_array = array ();
|
||||||
return $this->dbWriteData_ext($write_array, $primary_key, $table, $not_write_array, $not_write_update_array, $data);
|
return $this->dbWriteDataExt($write_array, $primary_key, $table, $not_write_array, $not_write_update_array, $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// METHOD: dbWriteDataExt
|
// METHOD: dbWriteDataExt
|
||||||
|
|||||||
@@ -516,8 +516,8 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
}
|
}
|
||||||
} elseif (is_array($this->element_list[$element_list[$i]]["read_data"]) && $this->element_list[$element_list[$i]]["delete"]) {
|
} elseif (is_array($this->element_list[$element_list[$i]]["read_data"]) && $this->element_list[$element_list[$i]]["delete"]) {
|
||||||
// $this->debug('form_clean', "ID [$id] [$prfx.$pk_name]");
|
// $this->debug('form_clean', "ID [$id] [$prfx.$pk_name]");
|
||||||
// $this->debug('form_clean', "ID arr: ".$this->print_ar($_POST[$id]));
|
// $this->debug('form_clean', "ID arr: ".$this->printAr($_POST[$id]));
|
||||||
// $this->debug('form_clean', "PK arr: ".$this->print_ar($_POST[$prfx.$pk_name]));
|
// $this->debug('form_clean', "PK arr: ".$this->printAr($_POST[$prfx.$pk_name]));
|
||||||
for ($j = 0, $j_max = count($_POST[$prfx.$pk_name]); $j < $j_max; $j ++) {
|
for ($j = 0, $j_max = count($_POST[$prfx.$pk_name]); $j < $j_max; $j ++) {
|
||||||
if (!$_POST[$remove_name[$i]][$j] && $_POST[$prfx.$pk_name][$j]) {
|
if (!$_POST[$remove_name[$i]][$j] && $_POST[$prfx.$pk_name][$j]) {
|
||||||
$q = "DELETE FROM ".$element_list[$i]." WHERE ".$pk_name." = ".$_POST[$prfx.$pk_name][$j];
|
$q = "DELETE FROM ".$element_list[$i]." WHERE ".$pk_name." = ".$_POST[$prfx.$pk_name][$j];
|
||||||
@@ -975,7 +975,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
// $this->debug('edit_error_chk', "KEY: $prfx$key | count: ".count($_POST[$prfx.$key])." | M: $max");
|
// $this->debug('edit_error_chk', "KEY: $prfx$key | count: ".count($_POST[$prfx.$key])." | M: $max");
|
||||||
// $this->debug('edit_error_chk', "K: ".$_POST[$prfx.$key]." | ".$_POST[$prfx.$key][0]);
|
// $this->debug('edit_error_chk', "K: ".$_POST[$prfx.$key]." | ".$_POST[$prfx.$key][0]);
|
||||||
}
|
}
|
||||||
$this->debug('post_array', $this->print_ar($_POST));
|
$this->debug('post_array', $this->printAr($_POST));
|
||||||
# check each row
|
# check each row
|
||||||
for ($i = 0; $i < $max; $i ++) {
|
for ($i = 0; $i < $max; $i ++) {
|
||||||
// either one of the post pks is set, or the mandatory
|
// either one of the post pks is set, or the mandatory
|
||||||
@@ -1305,7 +1305,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
foreach ($reference_array["elements"] as $el_name => $data_array) {
|
foreach ($reference_array["elements"] as $el_name => $data_array) {
|
||||||
// this is only for reference_data part, at least one of the text fields need to be set for writing
|
// this is only for reference_data part, at least one of the text fields need to be set for writing
|
||||||
$blow_write = array ();
|
$blow_write = array ();
|
||||||
// $this->debug('edit_error_query', "QUERY: ".$this->print_ar($_POST));
|
// $this->debug('edit_error_query', "QUERY: ".$this->printAr($_POST));
|
||||||
// go through all submitted data
|
// go through all submitted data
|
||||||
// for ($i = 0; $i < count($_POST[$el_name]); $i ++)
|
// for ($i = 0; $i < count($_POST[$el_name]); $i ++)
|
||||||
for ($i = 0; $i < $max; $i ++) {
|
for ($i = 0; $i < $max; $i ++) {
|
||||||
@@ -1542,7 +1542,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
// generic data read in (counts for all rows)
|
// generic data read in (counts for all rows)
|
||||||
// visible list data output
|
// visible list data output
|
||||||
foreach ($this->element_list[$table_name]["elements"] as $el_name => $data_array) {
|
foreach ($this->element_list[$table_name]["elements"] as $el_name => $data_array) {
|
||||||
$this->debug('CFG', 'El: '.$el_name.' -> '.$this->print_ar($data_array));
|
$this->debug('CFG', 'El: '.$el_name.' -> '.$this->printAr($data_array));
|
||||||
// if the element name matches the read array, then set the table as a name prefix
|
// if the element name matches the read array, then set the table as a name prefix
|
||||||
$q_select[] = $el_name; // this is for reading the data
|
$q_select[] = $el_name; // this is for reading the data
|
||||||
// prefix the name for any further data parts
|
// prefix the name for any further data parts
|
||||||
@@ -1587,9 +1587,9 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
}
|
}
|
||||||
// $proto[$el_name] = $this->error ? $_POST[$el_name][(count($_POST[$el_name]) - 1)] : '';
|
// $proto[$el_name] = $this->error ? $_POST[$el_name][(count($_POST[$el_name]) - 1)] : '';
|
||||||
}
|
}
|
||||||
// $this->debug('CFG DATA', 'Data: '.$this->print_ar($data));
|
// $this->debug('CFG DATA', 'Data: '.$this->printAr($data));
|
||||||
// $this->debug('CFG PROTO', 'Proto: '.$this->print_ar($proto));
|
// $this->debug('CFG PROTO', 'Proto: '.$this->printAr($proto));
|
||||||
// $this->debug('CFG SELECT', 'Proto: '.$this->print_ar($q_select));
|
// $this->debug('CFG SELECT', 'Proto: '.$this->printAr($q_select));
|
||||||
// query for reading in the data
|
// query for reading in the data
|
||||||
$this->debug('edit_error', "ERR: ".$this->error);
|
$this->debug('edit_error', "ERR: ".$this->error);
|
||||||
// if we got a read data, build the read select for the read, and read out the "selected" data
|
// if we got a read data, build the read select for the read, and read out the "selected" data
|
||||||
|
|||||||
Reference in New Issue
Block a user