PermissionModel::getPermissionsByRole PHP Method

getPermissionsByRole() public method

Get the permissions for one or more roles.
public getPermissionsByRole ( integer $roleID ) : array
$roleID integer The role to get the permissions for.
return array Returns a permission array suitable for use in a session.
    public function getPermissionsByRole($roleID)
    {
        $inc = Gdn::userModel()->getPermissionsIncrement();
        $key = "perms:{$inc}:role:{$roleID}";
        $permissions = Gdn::cache()->get($key);
        if ($permissions === Gdn_Cache::CACHEOP_FAILURE) {
            $sql = clone $this->SQL;
            $sql->reset();
            // Select all of the permission columns.
            $permissionColumns = $this->permissionColumns();
            foreach ($permissionColumns as $columnName => $value) {
                $sql->select('p.`' . $columnName . '`', 'MAX');
            }
            $sql->from('Permission p')->where('p.RoleID', $roleID)->select(array('p.JunctionTable', 'p.JunctionColumn', 'p.JunctionID'))->groupBy(array('p.JunctionTable', 'p.JunctionColumn', 'p.JunctionID'));
            $permissions = $sql->get()->resultArray();
            $permissions = UserModel::compilePermissions($permissions);
            Gdn::cache()->store($key, $permissions);
        }
        return $permissions;
    }