Установив yii-user и rights выдает jQuery is not defined

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
mstdmstd
Сообщения: 72
Зарегистрирован: 2014.03.07, 13:54

Установив yii-user и rights выдает jQuery is not defined

Сообщение mstdmstd »

Всем привет,
Установил yii-user и rights как раписано тут http://www.prostosem.in.ua/article/prim ... r-i-rights
и получил страницу с Permissions :
http://s018.radikal.ru/i501/1406/d1/8c5e97deb604.png

Я так понимаю что кликнув на Assign на пересечении скажем колонок "Editor" и "Cmsitem.Edit" мы даем доступ Editor-у к этому актиону и в
таблице AuthItem должны отобразиться эти измененния ?

Но кликнув на Assign в JS-консолек я вижу ошибку :
ReferenceError: jQuery is not defined
которая ведет на 2ю строку заголовка исходника страницы

Код: Выделить всё

<link rel="stylesheet" type="text/css" href="/local-yii-test.com/WebRoot/tyb/assets/8dc4f26/css/core.css" />
<link rel="stylesheet" type="text/css" href="/local-yii-test.com/WebRoot/tyb/assets/8dc4f26/css/default.css" />
<link rel="stylesheet" type="text/css" href="/local-yii-test.com/WebRoot/tyb/assets/d9a76a23/gridview/styles.css" />
<script type="text/javascript" src="/local-yii-test.com/WebRoot/tyb/assets/dcf74ba8/jui/js/jquery-ui.min.js"></script>
<script type="text/javascript" src="/local-yii-test.com/WebRoot/tyb/assets/dcf74ba8/jquery.ba-bbq.js"></script>
<script type="text/javascript" src="/local-yii-test.com/WebRoot/tyb/assets/8dc4f26/js/rights.js"></script>

<div id="rights" class="container">
Обращает внимание что default.css подключен до jquery-ui.min.js Возможно в этом причина ошибки ?

я полез в код и нашел в WebRoot/tyb/protected/modules/rights/RightsModule.php метод

Код: Выделить всё

public function registerScripts()
    {
    // Get the url to the module assets
    $assetsUrl = $this->getAssetsUrl();

    // Register the necessary scripts
    $cs = Yii::app()->getClientScript();
    $cs->registerCoreScript('jquery');
    $cs->registerCoreScript('jquery.ui');
    $cs->registerScriptFile($assetsUrl.'/js/rights.js');
    $cs->registerCssFile($assetsUrl.'/css/core.css');

    // Make sure we want to register a style sheet.
    if( $this->cssFile!==false )
    {
    // Default style sheet is used unless one is provided.
    if( $this->cssFile===null )
      $this->cssFile = $assetsUrl.'/css/default.css';
    else
      $this->cssFile = Yii::app()->request->baseUrl.$this->cssFile;

    // Register the style sheet
    $cs->registerCssFile($this->cssFile);
    }
}
 
...
Не подскажите как побороть эту ошибку ?

mstdmstd
Сообщения: 72
Зарегистрирован: 2014.03.07, 13:54

Re: Установив yii-user и rights выдает jQuery is not defined

Сообщение mstdmstd »

Я пересоздал приложение заново и установил right в чистом приложении
Заработало но не все
1) я вставлял такие строк для первоначальной инициализации

Код: Выделить всё

INSERT INTO `AuthItem` (`name`, `type`, `description`, `bizrule`, `data`) VALUES
('Admin', 2, 'Аdmin - have access to all in backend and frontend', NULL, 'N;'),
('Authenticated', 2, 'Authenticated - has access to User\'s data on profile in frontend', NULL, 'N;'),
('Editor', 2, 'Editor - has access to User\'s data on profile in frontend and CMS editor in backend', NULL, 'N;'),
('Guest', 2, 'Guest - has access only to public pages in frontend', NULL, 'N;');

INSERT INTO `AuthAssignment` (`itemname`, `userid`, `bizrule`, `data`) VALUES
('Admin', '1', NULL, 'N;'), -- цифру 1 нужно заменить на ID администратора (в нашем примере это первый пользователь)
('Authenticated', '2', NULL, 'N;'),
('Editor', '5', NULL, 'N;');
И страница pemissions в колонках не отобразила
http://s019.radikal.ru/i637/1406/37/81244052f2b3.png
колонку Admin - это потому что она суперадминовская(по таблице users id=1, superuser=1) ? Админ имеет доступ ко всему и поэтому на этой странице не отображается?

в моем контроле

Код: Выделить всё

class CategoryController extends RController {
public function filters()
{
    return array(
        'rights',
    );
}

public function allowedActions()
{
    return 'index, edit, delete, find_category';
}
Так к контролу получают доступ все, а если закоментировать метод allowedActions - то доступа нет ни админу ни едитору независимо от того какие элементы
помечены на странице pemissions. Видимо я что-то не так понял?

mstdmstd
Сообщения: 72
Зарегистрирован: 2014.03.07, 13:54

Re: Установив yii-user и rights выдает jQuery is not defined

Сообщение mstdmstd »

Полез в код смотреть почему не работает и обнаружил что в
/protected/modules/rights/components/RightsFilter.php строка примерно 19 в методе у пользователя guestName = Guest видимо поэтому и н работает
Я что-то упустил при установке ?

Код: Выделить всё

protected function preFilter($filterChain)
{
  // By default we assume that the user is allowed access
  $allow = true;

  $user = Yii::app()->getUser(); 
этот юзер дампиться :
$user::MyWebUser Object
(
[_model:MyWebUser:private] =>
[allowAutoLogin] => 1
[guestName] => Guest
[loginUrl] => Array
(
[0] => /user/login
)
...

louisvuitton
Сообщения: 196
Зарегистрирован: 2014.02.16, 03:09

Re: Установив yii-user и rights выдает jQuery is not defined

Сообщение louisvuitton »

Неделю назад первый раз ставил user+rights по этой же статье, и вроде все работает.
Вручную ничего в базу (для первоначальной инициализации) не добавлял, а делал как написано - в конфиге Install => true, логин под суперпользователем, переход на http://localhost/testapp/index.php?r=rights/install

mstdmstd
Сообщения: 72
Зарегистрирован: 2014.03.07, 13:54

Re: Установив yii-user и rights выдает jQuery is not defined

Сообщение mstdmstd »

А при запуске r=rights/install Вы не получали ошибку
There must be at least one superuser!
?
Если ошибка была как ее побороли ?

И перед запуском у Вас были в системе таблицы`AuthItem`, `AuthAssignment`? пустые или с какими-то данными ?

louisvuitton
Сообщения: 196
Зарегистрирован: 2014.02.16, 03:09

Re: Установив yii-user и rights выдает jQuery is not defined

Сообщение louisvuitton »

Нет, такой ошибки не было.
Делал так - из соответствующего файла импортировал в базу таблицы для модуля user (в которых уже есть superuser). Пофиксил пару файлов, как написано в статье, перешел на /user/login и залогинился под админом. После этого перешел на r=rights/install и получил поздравление с успешной установкой. В базе появились таблицы модуля rights.

Ответить