File: AttributeFactory.php

package info (click to toggle)
phpldapadmin 1.1.0.5-6%2Blenny2
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 5,008 kB
  • ctags: 3,949
  • sloc: php: 17,735; xml: 1,532; sh: 388; makefile: 46
file content (104 lines) | stat: -rw-r--r-- 3,079 bytes parent folder | download
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/AttributeFactory.php,v 1.2.2.1 2007/12/26 09:26:33 wurley Exp $

/**
 * @package phpLDAPadmin
 * @author Xavier Bruyet
 *
 * Allows to create new attributes
 */
class AttributeFactory {
	public function newAttribute($name,$values) {
		global $ldapserver;

		if (! strcasecmp($name,'objectClass')) {
			return $this->newObjectClassAttribute($name,$values);

		} elseif ($ldapserver->isJpegPhoto($name)) {
			return $this->newJpegAttribute($name,$values);

		} else if ($ldapserver->isAttrBinary($name)) {
			return $this->newBinaryAttribute($name,$values);

		} else if (! strcasecmp($name,'userPassword')) {
			return $this->newPasswordAttribute($name,$values);

		} else if (! strcasecmp($name,'sambaLMPassword') || ! strcasecmp($name,'sambaNTPassword')) {
			return $this->newSambaPasswordAttribute($name,$values);

		} elseif (in_array_ignore_case($name,array_keys($_SESSION[APPCONFIG]->GetValue('appearance','date_attrs')))) {
			return $this->newDateAttribute($name,$values);

		} elseif (in_array(strtolower($name),array('shadowlastchange','shadowmin',
				'shadowmax','shadowexpire','shadowwarning','shadowinactive'))) {
			return $this->newShadowAttribute($name,$values);

		} elseif ($ldapserver->isAttrBoolean($name)) {
			$attribute = $this->newSelectionAttribute($name,$values);
			$attribute->addOption('TRUE',_('true'));
			$attribute->addOption('FALSE',_('false'));
			return $attribute;

		} elseif ($ldapserver->isDNAttr($name)) {
			return $this->newDnAttribute($name,$values);

		} elseif ($ldapserver->isMultiLineAttr($name)) {
			return $this->newMultiLineAttribute($name,$values);

		} elseif (! strcasecmp($name,'gidNumber')) {
			return $this->newGidAttribute($name,$values);

		} else {
			return new Attribute($name,$values);
		}
	}

	public function newJpegAttribute($name,$values) {
		return new JpegAttribute($name,$values);
	}

	public function newBinaryAttribute($name,$values) {
		return new BinaryAttribute($name,$values);
	}

	public function newPasswordAttribute($name,$values) {
		return new PasswordAttribute($name,$values);
	}

	public function newSambaPasswordAttribute($name,$values) {
		return new SambaPasswordAttribute($name,$values);
	}

	public function newRandomPasswordAttribute($name,$values) {
		return new RandomPasswordAttribute($name,$values);
	}

	public function newShadowAttribute($name,$values) {
		return new ShadowAttribute($name,$values);
	}

	public function newSelectionAttribute($name,$values) {
		return new SelectionAttribute($name,$values);
	}

	public function newMultiLineAttribute($name,$values) {
		return new MultiLineAttribute($name,$values);
	}

	public function newDateAttribute($name,$values) {
		return new DateAttribute($name,$values);
	}

	public function newObjectClassAttribute($name,$values) {
		return new ObjectClassAttribute($name,$values);
	}

	public function newDnAttribute($name,$values) {
		return new DnAttribute($name,$values);
	}

	public function newGidAttribute($name,$values) {
		return new GidAttribute($name,$values);
	}
}
?>