##// END OF EJS Templates
implements #193 journal stores information about deleting of repos...
implements #193 journal stores information about deleting of repos - only admin journal does that now - added new info about creation of repo as fork

File last commit:

r1734:48d4fcf0 beta
r1747:88047154 beta
Show More
users_group.py
75 lines | 2.4 KiB | text/x-python | PythonLexer
Nicolas VINOT
Add API for repositories and groups (creation, permission)
r1586 # -*- coding: utf-8 -*-
"""
rhodecode.model.users_group
~~~~~~~~~~~~~~~~~~~~~~~~~~~
users group model for RhodeCode
:created_on: Oct 1, 2011
:author: nvinot
:copyright: (C) 2011-2011 Nicolas Vinot <aeris@imirhil.fr>
:license: GPLv3, see COPYING for more details.
"""
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import logging
import traceback
fixed typo
r1692 from rhodecode.model import BaseModel
Nicolas VINOT
Add API for repositories and groups (creation, permission)
r1586 from rhodecode.model.db import UsersGroupMember, UsersGroup
Nicolas VINOT
Correct code style
r1593 log = logging.getLogger(__name__)
Nicolas VINOT
Add API for repositories and groups (creation, permission)
r1586
notification to commit author + gardening
r1716
Nicolas VINOT
Correct code style
r1593 class UsersGroupModel(BaseModel):
Nicolas VINOT
Add API for repositories and groups (creation, permission)
r1586
Tests updates, Session refactoring
r1713 def __get_users_group(self, users_group):
notification to commit author + gardening
r1716 return self._get_instance(UsersGroup, users_group)
Tests updates, Session refactoring
r1713
notification to commit author + gardening
r1716 def get(self, users_group_id, cache=False):
Tests updates, Session refactoring
r1713 return UsersGroup.get(users_group_id)
Nicolas VINOT
Add API for repositories and groups (creation, permission)
r1586
notification to commit author + gardening
r1716 def get_by_name(self, name, cache=False, case_insensitive=False):
Tests updates, Session refactoring
r1713 return UsersGroup.get_by_group_name(name, cache, case_insensitive)
Nicolas VINOT
Add API for repositories and groups (creation, permission)
r1586
another major refactoring with session management
r1734 def create(self, name, active=True):
Tests updates, Session refactoring
r1713 new = UsersGroup()
new.users_group_name = name
new.users_group_active = active
self.sa.add(new)
return new
def delete(self, users_group):
obj = self.__get_users_group(users_group)
self.sa.delete(obj)
Nicolas VINOT
Correct code style
r1593 def add_user_to_group(self, users_group, user):
Nicolas VINOT
[API] Create groups needed when creating repo
r1589 for m in users_group.members:
u = m.user
if u.user_id == user.user_id:
return m
Nicolas VINOT
Add API for repositories and groups (creation, permission)
r1586 try:
users_group_member = UsersGroupMember()
users_group_member.user = user
users_group_member.users_group = users_group
Nicolas VINOT
Correct code style
r1593 users_group.members.append(users_group_member)
user.group_member.append(users_group_member)
Nicolas VINOT
Implement all CRUD API operation for repo
r1587
Nicolas VINOT
Correct code style
r1593 self.sa.add(users_group_member)
Nicolas VINOT
Add API for repositories and groups (creation, permission)
r1586 return users_group_member
except:
Nicolas VINOT
Correct code style
r1593 log.error(traceback.format_exc())
Nicolas VINOT
Implement all CRUD API operation for repo
r1587 raise