Progress on refactor
parent: tbd commit: c9f076f
1 | use Secret; |
2 | use ; |
3 | |
4 | use crate:: |
5 | , |
6 | |
7 | , | UserAuthenticationToken
8 | , | Instance
9 | , |
10 | , |
11 | , |
12 | ; |
13 | |
14 | use ; |
15 | |
16 | /// An account registration request. |
17 | /// |
18 | /// # Authentication |
19 | /// - Instance Authentication |
20 | /// - **ONLY ACCEPTED WHEN SAME-INSTANCE** |
21 | |
22 | |
23 | pub username: String, |
24 | pub email: , |
25 | pub password: , |
26 | |
27 | |
28 | |
29 | type Success = UserAuthenticationToken; |
30 | type Failure = InstanceError; |
31 | |
32 | |
33 | |
34 | |
35 | pub token: String, |
36 | |
37 | |
38 | /// An authentication token request. |
39 | /// |
40 | /// AKA Login Request |
41 | /// |
42 | /// # Authentication |
43 | /// - Instance Authentication |
44 | /// - Identifies the Instance to issue the token for |
45 | /// # Authorization |
46 | /// - Credentials ([`crate::backend::AuthBackend`]-based) |
47 | /// - Identifies the User account to issue a token for |
48 | /// - Decrypts user private key to issue to |
49 | |
50 | |
51 | pub instance: Instance, |
52 | pub username: String, |
53 | pub password: , |
54 | |
55 | |
56 | |
57 | type Success = UserAuthenticationToken; |
58 | type Failure = InstanceError; |
59 | |
60 | |
61 | /// An authentication token extension request. |
62 | /// |
63 | /// # Authentication |
64 | /// - Instance Authentication |
65 | /// - Identifies the Instance to issue the token for |
66 | /// - User Authentication |
67 | /// - Authenticates the validity of the token |
68 | /// # Authorization |
69 | /// - Token-based |
70 | /// - Validates authorization using token's authenticity |
71 | |
72 | |
73 | pub token: UserAuthenticationToken, |
74 | |
75 | |
76 | |
77 | type Success = ; |
78 | type Failure = InstanceError; |
79 | |
80 | |
81 | /// A request to create a repository. |
82 | /// |
83 | /// # Authentication |
84 | /// - Instance Authentication |
85 | /// - Used to validate User token `issued_for` |
86 | /// - User Authentication |
87 | /// - Used to source owning user |
88 | /// - Used to authorize user token against user's instance |
89 | /// # Authorization |
90 | /// - Instance Authorization |
91 | /// - Used to authorize action using User token requiring a correct `issued_for` and valid issuance from user's instance |
92 | /// - User Authorization |
93 | /// - Potential User permissions checks |
94 | |
95 | |
96 | pub instance: , |
97 | pub name: String, |
98 | pub description: , |
99 | pub visibility: RepositoryVisibility, |
100 | pub default_branch: String, |
101 | pub owner: User, |
102 | |
103 | |
104 | |
105 | type Success = Repository; |
106 | type Failure = InstanceError; |
107 | |
108 | |
109 | |
110 | pub async |
111 | &mut self, |
112 | email: , |
113 | username: &str, |
114 | password: & , |
115 | |
116 | self. |
117 | username: username.to_string, |
118 | email: email.map, |
119 | password: password.clone, |
120 | |
121 | .await |
122 | |
123 | |
124 | pub async |
125 | &mut self, |
126 | username: &str, |
127 | password: & , |
128 | |
129 | self. |
130 | instance: self.inner.clone, |
131 | username: username.to_string, |
132 | password: password.clone, |
133 | |
134 | .await |
135 | |
136 | |
137 | pub async |
138 | &mut self, |
139 | instance: &Instance, |
140 | username: &str, |
141 | password: & , |
142 | |
143 | self. |
144 | instance: instance.clone, |
145 | username: username.to_string, |
146 | password: password.clone, |
147 | |
148 | .await |
149 | |
150 | |
151 | pub async |
152 | &mut self, |
153 | token: &UserAuthenticationToken, |
154 | |
155 | self. |
156 | token: token.clone, |
157 | |
158 | .await |
159 | |
160 | |
161 | pub async |
162 | &mut self, |
163 | instance: &Instance, |
164 | name: &str, |
165 | visibility: RepositoryVisibility, |
166 | default_branch: &str, |
167 | owner: &User, |
168 | |
169 | self. |
170 | instance: Some, |
171 | name: name.to_string, |
172 | description: None, |
173 | visibility, |
174 | default_branch: default_branch.to_string, |
175 | owner: owner.clone, |
176 | |
177 | .await |
178 | |
179 | |
180 |