cartodb.CDB_Group_CreateGroup cartodb.CDB_Group_DropGroup
This commit is contained in:
@@ -0,0 +1,31 @@
|
|||||||
|
CREATE OR REPLACE
|
||||||
|
FUNCTION cartodb.CDB_Group_GroupRole(group_name text)
|
||||||
|
RETURNS TEXT AS $$
|
||||||
|
BEGIN
|
||||||
|
RETURN cartoDB.CDB_Organization_Member_Group_Role_Member_Name() || '_g_' || group_name;
|
||||||
|
END
|
||||||
|
$$ LANGUAGE PLPGSQL;
|
||||||
|
|
||||||
|
CREATE OR REPLACE
|
||||||
|
FUNCTION cartodb.CDB_Group_CreateGroup(group_name text)
|
||||||
|
RETURNS TEXT AS $$
|
||||||
|
DECLARE
|
||||||
|
cdb_group_role TEXT;
|
||||||
|
BEGIN
|
||||||
|
-- TODO: escape group_name
|
||||||
|
cdb_group_role := cartodb.CDB_Group_GroupRole(group_name);
|
||||||
|
IF NOT EXISTS ( SELECT 1 FROM pg_roles WHERE rolname = cdb_group_role )
|
||||||
|
THEN
|
||||||
|
EXECUTE 'CREATE ROLE "' || cdb_group_role || '" NOLOGIN;';
|
||||||
|
END IF;
|
||||||
|
RETURN cdb_group_role;
|
||||||
|
END
|
||||||
|
$$ LANGUAGE PLPGSQL;
|
||||||
|
|
||||||
|
CREATE OR REPLACE
|
||||||
|
FUNCTION cartodb.CDB_Group_DropGroup(group_name text)
|
||||||
|
RETURNS VOID AS $$
|
||||||
|
BEGIN
|
||||||
|
EXECUTE 'DROP ROLE IF EXISTS "' || cartodb.CDB_Group_GroupRole(group_name) || '"';
|
||||||
|
END
|
||||||
|
$$ LANGUAGE PLPGSQL;
|
||||||
@@ -11,6 +11,8 @@ DATABASE=test_organizations
|
|||||||
CMD='echo psql'
|
CMD='echo psql'
|
||||||
CMD=psql
|
CMD=psql
|
||||||
|
|
||||||
|
GROUP_A="group_a"
|
||||||
|
|
||||||
OK=0
|
OK=0
|
||||||
PARTIALOK=0
|
PARTIALOK=0
|
||||||
|
|
||||||
@@ -137,7 +139,7 @@ function setup() {
|
|||||||
|
|
||||||
log_info "########################### BOOTSTRAP ###########################"
|
log_info "########################### BOOTSTRAP ###########################"
|
||||||
${CMD} -d ${DATABASE} -f scripts-available/CDB_Organizations.sql
|
${CMD} -d ${DATABASE} -f scripts-available/CDB_Organizations.sql
|
||||||
|
${CMD} -d ${DATABASE} -f scripts-available/CDB_Groups.sql
|
||||||
|
|
||||||
log_info "############################# SETUP #############################"
|
log_info "############################# SETUP #############################"
|
||||||
create_role_and_schema cdb_testmember_1
|
create_role_and_schema cdb_testmember_1
|
||||||
@@ -152,8 +154,11 @@ function setup() {
|
|||||||
create_table cdb_testmember_2 bar
|
create_table cdb_testmember_2 bar
|
||||||
sql cdb_testmember_2 'INSERT INTO bar VALUES (1), (2), (3), (4), (5);'
|
sql cdb_testmember_2 'INSERT INTO bar VALUES (1), (2), (3), (4), (5);'
|
||||||
sql cdb_testmember_2 'SELECT * FROM cdb_testmember_2.bar;'
|
sql cdb_testmember_2 'SELECT * FROM cdb_testmember_2.bar;'
|
||||||
|
|
||||||
|
sql "SELECT cartodb.CDB_Group_CreateGroup('${GROUP_A}')"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function tear_down() {
|
function tear_down() {
|
||||||
log_info "########################### USER TEAR DOWN ###########################"
|
log_info "########################### USER TEAR DOWN ###########################"
|
||||||
sql cdb_testmember_1 "SELECT * FROM cartodb.CDB_Organization_Remove_Access_Permission('cdb_testmember_1', 'foo', 'cdb_testmember_2');"
|
sql cdb_testmember_1 "SELECT * FROM cartodb.CDB_Organization_Remove_Access_Permission('cdb_testmember_1', 'foo', 'cdb_testmember_2');"
|
||||||
@@ -162,6 +167,8 @@ function tear_down() {
|
|||||||
sql cdb_testmember_1 'DROP TABLE cdb_testmember_1.foo;'
|
sql cdb_testmember_1 'DROP TABLE cdb_testmember_1.foo;'
|
||||||
sql cdb_testmember_2 'DROP TABLE cdb_testmember_2.bar;'
|
sql cdb_testmember_2 'DROP TABLE cdb_testmember_2.bar;'
|
||||||
|
|
||||||
|
sql "select cartodb.CDB_Group_DropGroup('${GROUP_A}')"
|
||||||
|
|
||||||
sql "DROP SCHEMA cartodb CASCADE"
|
sql "DROP SCHEMA cartodb CASCADE"
|
||||||
|
|
||||||
log_info "########################### TEAR DOWN ###########################"
|
log_info "########################### TEAR DOWN ###########################"
|
||||||
@@ -393,7 +400,6 @@ function test_cdb_usertables_should_work_with_orgusers() {
|
|||||||
sql cdb_testmember_1 "DROP TABLE test_perms_priv"
|
sql cdb_testmember_1 "DROP TABLE test_perms_priv"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#################################################### TESTS END HERE ####################################################
|
#################################################### TESTS END HERE ####################################################
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user