(t *testing.T)
| 163 | } |
| 164 | |
| 165 | func TestDomainRole(t *testing.T) { |
| 166 | rm := NewRoleManager(3) |
| 167 | _ = rm.AddLink("u1", "g1", "domain1") |
| 168 | _ = rm.AddLink("u2", "g1", "domain1") |
| 169 | _ = rm.AddLink("u3", "admin", "domain2") |
| 170 | _ = rm.AddLink("u4", "admin", "domain2") |
| 171 | _ = rm.AddLink("u4", "admin", "domain1") |
| 172 | _ = rm.AddLink("g1", "admin", "domain1") |
| 173 | |
| 174 | // Current role inheritance tree: |
| 175 | // domain1:admin domain2:admin |
| 176 | // / \ / \ |
| 177 | // domain1:g1 u4 u3 |
| 178 | // / \ |
| 179 | // u1 u2 |
| 180 | |
| 181 | testDomainRole(t, rm, "u1", "g1", "domain1", true) |
| 182 | testDomainRole(t, rm, "u1", "g1", "domain2", false) |
| 183 | testDomainRole(t, rm, "u1", "admin", "domain1", true) |
| 184 | testDomainRole(t, rm, "u1", "admin", "domain2", false) |
| 185 | |
| 186 | testDomainRole(t, rm, "u2", "g1", "domain1", true) |
| 187 | testDomainRole(t, rm, "u2", "g1", "domain2", false) |
| 188 | testDomainRole(t, rm, "u2", "admin", "domain1", true) |
| 189 | testDomainRole(t, rm, "u2", "admin", "domain2", false) |
| 190 | |
| 191 | testDomainRole(t, rm, "u3", "g1", "domain1", false) |
| 192 | testDomainRole(t, rm, "u3", "g1", "domain2", false) |
| 193 | testDomainRole(t, rm, "u3", "admin", "domain1", false) |
| 194 | testDomainRole(t, rm, "u3", "admin", "domain2", true) |
| 195 | |
| 196 | testDomainRole(t, rm, "u4", "g1", "domain1", false) |
| 197 | testDomainRole(t, rm, "u4", "g1", "domain2", false) |
| 198 | testDomainRole(t, rm, "u4", "admin", "domain1", true) |
| 199 | testDomainRole(t, rm, "u4", "admin", "domain2", true) |
| 200 | |
| 201 | _ = rm.DeleteLink("g1", "admin", "domain1") |
| 202 | _ = rm.DeleteLink("u4", "admin", "domain2") |
| 203 | |
| 204 | // Current role inheritance tree after deleting the links: |
| 205 | // domain1:admin domain2:admin |
| 206 | // \ \ |
| 207 | // domain1:g1 u4 u3 |
| 208 | // / \ |
| 209 | // u1 u2 |
| 210 | |
| 211 | testDomainRole(t, rm, "u1", "g1", "domain1", true) |
| 212 | testDomainRole(t, rm, "u1", "g1", "domain2", false) |
| 213 | testDomainRole(t, rm, "u1", "admin", "domain1", false) |
| 214 | testDomainRole(t, rm, "u1", "admin", "domain2", false) |
| 215 | |
| 216 | testDomainRole(t, rm, "u2", "g1", "domain1", true) |
| 217 | testDomainRole(t, rm, "u2", "g1", "domain2", false) |
| 218 | testDomainRole(t, rm, "u2", "admin", "domain1", false) |
| 219 | testDomainRole(t, rm, "u2", "admin", "domain2", false) |
| 220 | |
| 221 | testDomainRole(t, rm, "u3", "g1", "domain1", false) |
| 222 | testDomainRole(t, rm, "u3", "g1", "domain2", false) |
nothing calls this directly
no test coverage detected
searching dependent graphs…