- :param session: contains "username", if user is "admin" and the working "project_id"
- :param write: if operation is for reading (False) or writing (True)
- :param show_all: if True it will show public or
- :return:
- """
- if write:
- k = "_admin.projects_write.cont"
- else:
- k = "_admin.projects_read.cont"
- if not show_all:
- return {k: session["project_id"]}
- elif session["admin"]: # and show_all: # allows all
- return {}
- else:
- return {k: ["ANY", session["project_id"], None]}
-
- def check_conflict_on_new(self, session, indata, force=False):
+ :param session: contains:
+ project_id: project list this session has rights to access. Can be empty, one or several
+ set_project: items created will contain this project list
+ force: True or False
+ public: True, False or None
+ method: "list", "show", "write", "delete"
+ admin: True or False
+ :return: dictionary with project filter
+ """
+ p_filter = {}
+ project_filter_n = []
+ project_filter = list(session["project_id"])
+
+ if session["method"] not in ("list", "delete"):
+ if project_filter:
+ project_filter.append("ANY")
+ elif session["public"] is not None:
+ if session["public"]:
+ project_filter.append("ANY")
+ else:
+ project_filter_n.append("ANY")
+
+ if session.get("PROJECT.ne"):
+ project_filter_n.append(session["PROJECT.ne"])
+
+ if project_filter:
+ if session["method"] in ("list", "show", "delete") or session.get("set_project"):
+ p_filter["_admin.projects_read.cont"] = project_filter
+ else:
+ p_filter["_admin.projects_write.cont"] = project_filter
+ if project_filter_n:
+ if session["method"] in ("list", "show", "delete") or session.get("set_project"):
+ p_filter["_admin.projects_read.ncont"] = project_filter_n
+ else:
+ p_filter["_admin.projects_write.ncont"] = project_filter_n
+
+ return p_filter
+
+ def check_conflict_on_new(self, session, indata):