diff --git a/modpol/orgs/orgs.lua b/modpol/orgs/orgs.lua index 507210b..e22cbc1 100644 --- a/modpol/orgs/orgs.lua +++ b/modpol/orgs/orgs.lua @@ -225,6 +225,12 @@ end -- =========================================== -- adds a user to an org function modpol.orgs:add_member(user) + for id, name in ipairs(self.members) do + if user == name then + modpol.ocutil.log('Error in' .. self.name .. ':add_member -> user already in org') + return false + end + end -- trys to fill in empty spots first local empty_index = self:get_member_index('') if empty_index then diff --git a/modpol/tests/org_basic_test.lua b/modpol/tests/org_basic_test.lua index 96e112d..f6762c2 100644 --- a/modpol/tests/org_basic_test.lua +++ b/modpol/tests/org_basic_test.lua @@ -7,4 +7,17 @@ print('\nCreating an org called "test_org"') test_org = modpol.instance:add_org('test_org') print('\nTrying to create an org with the same name') -duplicate = modpol.instance:add_org('test_org') \ No newline at end of file +duplicate = modpol.instance:add_org('test_org') + +print('\nAdding user "luke" to test_org') +test_org:add_member('luke') + +print('\nTrying to add duplicate user to test_org') +test_org:add_member('luke') + +print('\nRemoving user "luke" from test_org') +test_org:remove_member('luke') + +print('\nTrying to remove user "luke" from empty member list') +test_org:remove_member('luke') +