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>