def create_group (self, group) : patterns.validate_group_name (group) if group in self.groups : raise Exception () self.groups.add (group) self.group_user_members[group] = set () self.group_group_members[group] = set () self.group_data[group] = None
def include_user_in_group (self, user, group) : patterns.validate_user_name (user) patterns.validate_group_name (group) if user not in self.users : raise Exception () if group not in self.groups : raise Exception () members = self.group_user_members[group] if user in members : raise Exception () members.add (user)
def include_path_permission_for_group (self, path, group, mode) : path = self.parse_path (path) patterns.validate_group_name (group) patterns.validate_permission_mode (mode) if group not in self.groups : raise Exception () if path not in self.paths : raise Exception () permissions = self.path_group_permissions[path] if group in permissions : raise Exception () permissions[group] = mode