1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# Clean up Authorisation
Look at Chris' authorisation code:
=> https://github.com/chfi/gn-proxy
Atm genenetwork2's handling of
authorisation is a bit clunky; Since @Bonface is working on the data
data up-loader, and it requires authorisation, this is a good time to
clean up authorisation.
# Notes
mRNA datasets ("ProbeSetFreeze" in the DB) contain traits, so when you
assign privileges to an mRNA dataset, it will apply to all traits
within.
But the phenotype resources (for example the dataset name
"BXDPublish"; the stuff in the PublishXRef, etc tables) are just the
traits themselves. The rows of "PublishFreeze" in the DB don't
correspond to individual resources like the rows of ProbeSetFreeze
(neither do databased genotypes - GenoFreeze - for that matter). There
isn't really any "containing" classification for them beyond the
group. BXD phenotype traits can each come from different studies and
thus have different privileges for different users, etc, but there's
nothing in the database really representing that.
This means that if you want to change privileges for phenotype data,
you have to do it trait by trait (or at least to a selection of traits
you manually choose). But for mRNA ("ProbeSet") traits you can just
refer to the entire dataset (and as far as I'm aware this will always
be the case; there's never a need to assign privileges trait-by-trait
for the mRNA traits.
Another way of representing this is that for mRNA datasets you have
the following levels:
Species -> Group -> Dataset (this is a resource) -> Traits
But for phenotypes/genotypes:
Species -> Group -> Traits (each is a resource)
On the UI(quote from Zach):
> One interface issue I ran into is how to add/remove groups (since
> currently the proxy only cares about groups for retrieving the
> privilege masks). I think I set it up so that you can search for
> groups by a user's name, e-mail, or parts of the Group Name itself,
> though I was uncertain about that because it means that anyone doing
> this could see every group/user. For adding users to a group, I
> have people direct input e-mails (instead of giving the ability to
> search).
#### Mon 18 Oct 2021
- Marked the function `check_owner_or_admin` as deprecated. It's only
used in: `wqflask/show_trait/show_trait.py`.
- Heavy use of the walrus operator to remove alot of boiler plate.
#### Tue 19 Oct 2021
- Every resource needs to have the 3 fields set for the group-mask:
"data", "metadata", "admin". Otherwise, a hash-ref error will be
thrown:
```
03 ~~> hash-ref: no value found for key
key: 'admins
```
|