1: <?php
2:
3: namespace PHPixie\Auth;
4:
5: class Domains
6: {
7: protected $builder;
8: protected $configData;
9:
10: protected $domains = null;
11:
12: public function __construct($builder, $configData)
13: {
14: $this->builder = $builder;
15: $this->configData = $configData;
16: }
17:
18: public function asArray()
19: {
20: $this->requireDomains();
21: return $this->domains;
22: }
23:
24: public function get($name)
25: {
26: $this->requireDomains();
27: if(array_key_exists($name, $this->domains)) {
28: return $this->domains[$name];
29: }
30:
31: throw new \PHPixie\Auth\Exception("Domain '$name' does not exist");
32: }
33:
34: public function checkUser()
35: {
36: $this->requireDomains();
37: foreach($this->domains as $domain) {
38: $domain->checkUser();
39: }
40: }
41:
42: protected function requireDomains()
43: {
44: if($this->domains !== null) {
45: return;
46: }
47:
48: $domains = array();
49: foreach($this->configData->keys() as $name) {
50: $domainConfig = $this->configData->slice($name);
51: $domains[$name] = $this->builder->buildDomain($name, $domainConfig);
52: }
53:
54: $this->domains = $domains;
55: }
56: }