/
ColumnSet.php
60 lines (52 loc) · 1.57 KB
/
ColumnSet.php
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
<?php
namespace Concrete\Core\User\Search\ColumnSet;
use Concrete\Core\Search\Column\UserAttributeKeyColumn;
use Concrete\Core\Support\Facade\Facade;
use Concrete\Core\User\Search\SearchProvider;
use PermissionKey;
use Concrete\Core\User\User;
use Concrete\Core\Search\Column\Set;
use Concrete\Core\Search\Column\AttributeKeyColumn;
class ColumnSet extends Set
{
protected $attributeClass = 'UserAttributeKey';
public function getAttributeKeyColumn($akHandle)
{
$ak = call_user_func(array($this->attributeClass, 'getByHandle'), $akHandle);
if ($ak === null) {
return null;
}
$col = new UserAttributeKeyColumn($ak);
return $col;
}
public function getColumns()
{
$columns = array();
$pk = PermissionKey::getByHandle('view_user_attributes');
foreach ($this->columns as $col) {
if ($col instanceof AttributeKeyColumn) {
$uk = $col->getAttributeKey();
if ($pk->validate($uk)) {
$columns[] = $col;
}
} else {
$columns[] = $col;
}
}
return $columns;
}
public static function getCurrent()
{
$app = Facade::getFacadeApplication();
/**
* @var $provider SearchProvider
*/
$provider = $app->make(SearchProvider::class);
$query = $provider->getSessionCurrentQuery();
if ($query) {
$columns = $query->getColumns();
return $columns;
}
return new DefaultSet();
}
}