GureWork > espacios de Coworking topalekuak :)
Template:@himikel > SetUserGroup

SetUserGroup
SetUserGroupEdit

    Tabla de contenidos
    No hay encabezados

    This template is executed when a Page is loaded and check if the current User is member of gived Group,

    if not then is set or asked to set

    Parameters: Group (Str) Msg (Num) (opt def:1)

    var mPars = {
      sGroup: __request.args.group ?? args.group ?? "",
      nMsg: __request.args.msg ?? args.msg ?? 1,
      sATok: __request.args.atok ?? args.atok ?? user.authtoken
    

    };
    //Web.Pre(Json.Format(mPars));

    dekiapi();

    var xGroupUsers=Wiki.Api(Uri.Build(site.api, ["groups", "="..mPars.sGroup, "users"] ));
    //Web.Pre(Json.Format(xGroupUsers));

    var slGroupUsers=[ Xml.Text(xUser, 'username') foreach var xUser in Xml.Select(xGroupUsers, '/users/user') ];
    //var slGroupUsers=Xml.Select(xGroupUsers, '/users/user');
    //Web.Pre(Json.Format(slGroupUsers));

    var bUserInGroup=(user.name in slGroupUsers);
    "User '"..user.name.."' in Group '"..mPars.sGroup.."' ? "..bUserInGroup;

    <script type="text/jem">"
    var ingroup="..bUserInGroup..";
    var siteapi='"..site.api.."';
    var userid='"..user.id.."';
    var user='"..user.name.."';
    var group='"..mPars.sGroup.."';
    var msgmode="..mPars.nMsg..";
    var atok='"..mPars.sATok.."';
    var pageuri='"..page.uri.."';

    Deki.$(document).ready(function(){
    //alert('ready!');
    if (!ingroup)
    SetUserGroup(siteapi, userid, user, group, atok, msgmode);
    });//fn doc-ready

    function SetUserGroup(siteapi, userid, user, group, atok, msgmode) {
    var msg='user: '+user+' group: '+group;
    //alert(msg);
    //POST:groups/{groupid}/users
    var postdata='<users><user id=\"'+userid+'\"/></users>';
    //alert('postdata: '+postdata);
    MindTouch.Web.Post(siteapi+'/groups/='+group+'/users'+'?authtoken='+atok, postdata, 'text/xml; charset=utf-8', null, function(res) {
    if (MindTouch.Web.IsSuccessful(res)) {
    if (msgmode==1)
    {
    alert('SetUserGroup() > Ok\\n'+msg);
    window.location=pageuri;
    }
    } else {
    if (msgmode==1) alert('SetUserGroup() > Res:'+res.status+'!\\n'+msg);
    };
    });
    };

    "</script>
     

    Powered by MindTouch Core (Expired)