mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-10-25 10:24:38 +08:00
Remove hybrid property from model
This commit is contained in:
@@ -84,11 +84,7 @@ class RoleManager(base.ModelManager[model.Role]):
|
||||
user_ids = role_definition_model.user_ids or []
|
||||
group_ids = role_definition_model.group_ids or []
|
||||
|
||||
stmt = (
|
||||
select(Role)
|
||||
.where(Role.name == name) # type:ignore[arg-type,comparison-overlap] # Role.name is a SA hybrid property
|
||||
.limit(1)
|
||||
)
|
||||
stmt = select(Role).where(Role.name == name).limit(1)
|
||||
if trans.sa_session.scalars(stmt).first():
|
||||
raise Conflict(f"A role with that name already exists [{name}]")
|
||||
|
||||
|
||||
@@ -112,7 +112,6 @@ from sqlalchemy.ext.associationproxy import (
|
||||
association_proxy,
|
||||
AssociationProxy,
|
||||
)
|
||||
from sqlalchemy.ext.hybrid import hybrid_property
|
||||
from sqlalchemy.ext.orderinglist import ordering_list
|
||||
from sqlalchemy.orm import (
|
||||
aliased,
|
||||
@@ -3836,7 +3835,7 @@ class Role(Base, Dictifiable, RepresentById):
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
create_time: Mapped[datetime] = mapped_column(default=now, nullable=True)
|
||||
update_time: Mapped[datetime] = mapped_column(default=now, onupdate=now, nullable=True)
|
||||
_name: Mapped[str] = mapped_column("name", String(255), index=True)
|
||||
name: Mapped[str] = mapped_column(String(255), index=True)
|
||||
description: Mapped[Optional[str]] = mapped_column(TEXT)
|
||||
type: Mapped[Optional[str]] = mapped_column(String(40), index=True)
|
||||
deleted: Mapped[Optional[bool]] = mapped_column(index=True, default=False)
|
||||
@@ -3859,19 +3858,6 @@ class Role(Base, Dictifiable, RepresentById):
|
||||
def default_name(role_type):
|
||||
return f"{role_type.value} role"
|
||||
|
||||
@hybrid_property
|
||||
def name(self):
|
||||
if self.type == Role.types.PRIVATE:
|
||||
user_assocs = self.users
|
||||
assert len(user_assocs) == 1, f"Did not find exactly one user for private role {self}"
|
||||
return user_assocs[0].user.email
|
||||
else:
|
||||
return self._name
|
||||
|
||||
@name.setter # type:ignore[no-redef] # property setter
|
||||
def name(self, name):
|
||||
self._name = name
|
||||
|
||||
def __init__(self, name=None, description=None, type=types.SYSTEM, deleted=False):
|
||||
self.name = name or Role.default_name(type)
|
||||
self.description = description
|
||||
|
||||
Reference in New Issue
Block a user