diff --git a/app/store/database/migrate/postgres/0094_alter_table_usergroups_add_scope.down.sql b/app/store/database/migrate/postgres/0094_alter_table_usergroups_add_scope.down.sql new file mode 100644 index 000000000..360905c7d --- /dev/null +++ b/app/store/database/migrate/postgres/0094_alter_table_usergroups_add_scope.down.sql @@ -0,0 +1,2 @@ +ALTER TABLE usergroups +DROP COLUMN usergroup_scope; \ No newline at end of file diff --git a/app/store/database/migrate/postgres/0094_alter_table_usergroups_add_scope.up.sql b/app/store/database/migrate/postgres/0094_alter_table_usergroups_add_scope.up.sql new file mode 100644 index 000000000..9b4d96f18 --- /dev/null +++ b/app/store/database/migrate/postgres/0094_alter_table_usergroups_add_scope.up.sql @@ -0,0 +1,2 @@ +ALTER TABLE usergroups +ADD COLUMN usergroup_scope INTEGER DEFAULT 0; \ No newline at end of file diff --git a/app/store/database/migrate/sqlite/0094_alter_table_usergroups_add_scope.down.sql b/app/store/database/migrate/sqlite/0094_alter_table_usergroups_add_scope.down.sql new file mode 100644 index 000000000..360905c7d --- /dev/null +++ b/app/store/database/migrate/sqlite/0094_alter_table_usergroups_add_scope.down.sql @@ -0,0 +1,2 @@ +ALTER TABLE usergroups +DROP COLUMN usergroup_scope; \ No newline at end of file diff --git a/app/store/database/migrate/sqlite/0094_alter_table_usergroups_add_scope.up.sql b/app/store/database/migrate/sqlite/0094_alter_table_usergroups_add_scope.up.sql new file mode 100644 index 000000000..9b4d96f18 --- /dev/null +++ b/app/store/database/migrate/sqlite/0094_alter_table_usergroups_add_scope.up.sql @@ -0,0 +1,2 @@ +ALTER TABLE usergroups +ADD COLUMN usergroup_scope INTEGER DEFAULT 0; \ No newline at end of file diff --git a/app/store/database/usergroup.go b/app/store/database/usergroup.go index a6c5b31d5..2b1ef0ea2 100644 --- a/app/store/database/usergroup.go +++ b/app/store/database/usergroup.go @@ -47,6 +47,7 @@ type UserGroup struct { Description string `db:"usergroup_description"` Created int64 `db:"usergroup_created"` Updated int64 `db:"usergroup_updated"` + Scope int64 `db:"usergroup_scope"` } const ( @@ -57,23 +58,12 @@ const ( ,usergroup_description ,usergroup_space_id ,usergroup_created - ,usergroup_updated` + ,usergroup_updated + ,usergroup_scope` userGroupSelectBase = `SELECT ` + userGroupColumns + ` FROM usergroups` ) -func mapUserGroup(ug *UserGroup) *types.UserGroup { - return &types.UserGroup{ - ID: ug.ID, - Identifier: ug.Identifier, - Name: ug.Name, - Description: ug.Description, - SpaceID: ug.SpaceID, - Created: ug.Created, - Updated: ug.Updated, - } -} - // FindByIdentifier returns a usergroup by its identifier. func (s *UserGroupStore) FindByIdentifier( ctx context.Context, @@ -135,7 +125,7 @@ func (s *UserGroupStore) FindManyByIDs(ctx context.Context, ids []int64) ([]*typ var result = make([]*types.UserGroup, len(dst)) for i, u := range dst { - result[i] = u.toUserGroupType() + result[i] = mapUserGroup(u) } return result, nil @@ -178,17 +168,19 @@ func (s *UserGroupStore) Create( INSERT INTO usergroups ( usergroup_identifier ,usergroup_name - ,usergroup_description - ,usergroup_space_id + ,usergroup_description + ,usergroup_space_id ,usergroup_created ,usergroup_updated - ) values ( + ,usergroup_scope + ) values ( :usergroup_identifier ,:usergroup_name ,:usergroup_description - ,:usergroup_space_id + ,:usergroup_space_id ,:usergroup_created ,:usergroup_updated + ,:usergroup_scope ) RETURNING usergroup_id` db := dbtx.GetAccessor(ctx, s.db) @@ -214,17 +206,19 @@ func (s *UserGroupStore) CreateOrUpdate( INSERT INTO usergroups ( usergroup_identifier ,usergroup_name - ,usergroup_description - ,usergroup_space_id + ,usergroup_description + ,usergroup_space_id ,usergroup_created ,usergroup_updated - ) values ( + ,usergroup_scope + ) values ( :usergroup_identifier ,:usergroup_name ,:usergroup_description - ,:usergroup_space_id + ,:usergroup_space_id ,:usergroup_created ,:usergroup_updated + ,:usergroup_scope ) ON CONFLICT (usergroup_space_id, LOWER(usergroup_identifier)) DO UPDATE SET usergroup_name = EXCLUDED.usergroup_name, usergroup_description = EXCLUDED.usergroup_description, @@ -245,25 +239,28 @@ func (s *UserGroupStore) CreateOrUpdate( return nil } -func mapInternalUserGroup(u *types.UserGroup, spaceID int64) *UserGroup { - return &UserGroup{ - ID: u.ID, - SpaceID: spaceID, - Identifier: u.Identifier, - Name: u.Name, - Description: u.Description, - Created: u.Created, - Updated: u.Updated, +func mapUserGroup(ug *UserGroup) *types.UserGroup { + return &types.UserGroup{ + ID: ug.ID, + Identifier: ug.Identifier, + Name: ug.Name, + Description: ug.Description, + SpaceID: ug.SpaceID, + Created: ug.Created, + Updated: ug.Updated, + Scope: ug.Scope, } } -func (u *UserGroup) toUserGroupType() *types.UserGroup { - return &types.UserGroup{ +func mapInternalUserGroup(u *types.UserGroup, spaceID int64) *UserGroup { + return &UserGroup{ ID: u.ID, Identifier: u.Identifier, Name: u.Name, Description: u.Description, + SpaceID: spaceID, Created: u.Created, Updated: u.Updated, + Scope: u.Scope, } } diff --git a/types/usergroup.go b/types/usergroup.go index 2fb42ee50..7ae9681b9 100644 --- a/types/usergroup.go +++ b/types/usergroup.go @@ -24,6 +24,7 @@ type UserGroup struct { Created int64 `json:"created"` Updated int64 `json:"updated"` Users []string // Users are used by the code owners code + Scope int64 `json:"scope"` } type UserGroupInfo struct { @@ -31,6 +32,7 @@ type UserGroupInfo struct { Identifier string `json:"identifier"` Name string `json:"name"` Description string `json:"description"` + Scope int64 `json:"scope"` } func (u *UserGroup) ToUserGroupInfo() *UserGroupInfo { @@ -39,5 +41,6 @@ func (u *UserGroup) ToUserGroupInfo() *UserGroupInfo { Identifier: u.Identifier, Name: u.Name, Description: u.Description, + Scope: u.Scope, } }