1

Изменение прав, метод updateItemAccess

Topic: Изменение прав, метод updateItemAccess

Здравствуйте,
Столкнулся с трудностями при изменении прав на ресурс для пользователя.
Ниже код, которым вывожу перечень пользователей и ресурсов. Затем, после выбора ресурса, пользователя изменяю права с помощью   метода updateItemAccess. В ответ консоль сообщает: Uncaught TypeError: F.getId is not a function.

Направьте меня пожалуйста на путь истинный, или поделитесь примером изменения прав..

Заранее спасибо!
Алексей.


function init()
{
    var res_flags =  wialon.item.Item.dataFlag.base | wialon.item.Item.accessFlag.setItemsAccess | wialon.item.Item.accessFlag.setAcl;
    var user_flags = wialon.item.Item.dataFlag.base | wialon.item.User.dataFlag.flags | wialon.item.Item.dataFlag.CustomProps;   
    var sess = wialon.core.Session.getInstance(); // get instance of current Session
    sess.updateDataFlags( // load items to current session
                            [
                                { type: "type", 
                                  data: "avl_resource",
                                  flags:res_flags ,
                                  mode: 0
                                }, // 'avl_resource's specification

                                { type: "type", 
                                  data: "user",
                                  flags:user_flags ,
                                  mode: 0
                                } // 'avl_resource's specification
                            ],
                            function (code) 
                            { // updateDataFlags callback
                                if (code) 
                                { 
                                    msg(wialon.core.Errors.getErrorText(code));
                                    return; 
                                } // exit if error code
                                
                                var res = sess.getItems("avl_resource"); // get loaded 'avl_resource's items
                                if (!res || !res.length)
                                    { 
                                        msg("Resources not found"); 
                                        return; 
                                    } // check if resources found

                                for (var i = 0; i< res.length; i++) // construct Select object using found resources
                                $("#res").append("<option value='" + res[i] + "'>" + res[i].getName() + "</option>");   

                                var usr = sess.getItems("user"); // get loaded 'user's items
                                if (!usr || !usr.length)
                                    {
                                        msg("User not found"); 
                                        return; 
                                    } // check if resources found

                                for (var i = 0; i< usr.length; i++) // construct Select object using found resources
                                $("#usr").append("<option value='" + usr[i].getId() + "'>" + usr[i].getName() + "</option>");
                           
                                $("#res").change( set_access )|$("#usr").change( set_access ); //must be selected
                            }
                        );
}

function set_access()
{
    var sess = wialon.core.Session.getInstance();
    var flag_a=550594678661; // Access flag
    
    var res=$("#res").val(); //check for select resource
    if(!res)
    { 
        msg("Выберите ресурс"); 
        return; // exit if no resource select
    } 
        
    var id_usr=$("#usr").val(); //check for select user
    if(!id_usr)
    {
        msg("Выберите Пользователя"); 
        return; // exit if no user select
    }  
    var userr = sess.getItem( id_usr );    
    userr.updateItemAccess(res, flag_a, function(code) // set accsess to item
    {
        if (code != 0)
        {
            alert(wialon.core.Errors.getErrorText(code));
            return;
        }
        msg("Done");
    });
}
2

Изменение прав, метод updateItemAccess

Re: Изменение прав, метод updateItemAccess

Добрый день

В первый параметр userr.updateItemAccess - ресурс, а вы передаёте строку

Попробуйте так

userr.updateItemAccess(sess.getItem( res ), flag_a, function(code) // set accsess to item
3

Изменение прав, метод updateItemAccess

Re: Изменение прав, метод updateItemAccess

shmi wrote:

Добрый день

В первый параметр userr.updateItemAccess - ресурс, а вы передаёте строку

Попробуйте так

userr.updateItemAccess(sess.getItem( res ), flag_a, function(code) // set accsess to item

Вы правы, снимаю шляпу!
Спасибо!