Example #1
0
    def SetPassword(self):
        if not self._check_session():
            return json.dumps(self.AuthErr);

        try:

            rid = request.params.get("rid",self.rid)
            username = request.params.get("account","")
            password = request.params.get("password",samba.generate_random_password(7,15))


            #response.write(password);
            if(self.model.isAuthenticate()):
                if(not self.model.SetPassword(username,password)):
                    raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)

            UnlockUserAccount = request.params.get("UnlockUserAccount",False)
            if(UnlockUserAccount != False):
                if(not self.model.EnableAccount(rid,username,True)):
                    raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)

            ForcePasswordChange = request.params.get("ForcePasswordChange","off").strip();
            if(ForcePasswordChange == "on"):
                if(not self.model.ForcePasswordChangeAtNextLogin(rid,username)):
                    raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)
            else:
                if(not self.model.ForcePasswordChangeAtNextLogin(rid,username,False)):
                    raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)

        except Exception,e:
            if(len(e.args)>1):
                return json.dumps({'success': False, 'msg': e.args[1],'num':e.args[0]})
            else:
                return json.dumps({'success': False, 'msg': e.args,'num':-1})
Example #2
0
    def EnableAccount(self):
        if not self._check_session():
            return json.dumps(self.AuthErr);
        try:
            rid = request.params.get("rid",self.rid)
            username = request.params.get("username","")
            enable = request.params.get("enable","yes").strip();


            if(self.model.isAuthenticate()):
                if(enable == "yes"):
                    enable=True
                else:
                    enable=False

                if(not self.model.EnableAccount(rid,username,enable)):
                    raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)

            else:
                raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)
        except Exception,e:
            if(len(e.args)>1):
                return json.dumps({'success': False, 'msg': e.args[1],'num':e.args[0]})
            else:
                return json.dumps({'success': False, 'msg': e.args,'num':-1})
Example #3
0
    def UpdateShare(self):
        if not self._check_session():
            return json.dumps(self.AuthErr);
        try:

            name = request.params.get("name","");
            comment = request.params.get("comment","");
            #FIXME check path
            path = request.params.get("path","");
            share = self.model.GetShare(name);

            if(share==False):
                raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)
            share.name=name;
            share.comment=comment;
            share.path=path;

            if(self.model.UpdateShare(share)==False):
                raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)

        except Exception,e:
            if(len(e.args)>1):
                return json.dumps({'success': False, 'msg': e.args[1],'num':e.args[0]})
            else:
                return json.dumps({'success': False, 'msg': e.args,'num':-1})
Example #4
0
 def AddShare(self):
     if not self._check_session():
         return json.dumps(self.AuthErr)
     try:
         name = request.params.get("sharename", "")
         comment = request.params.get("sharecomment", "")
         path = request.params.get("sharepath", "")
         ret = self.model.AddShare(name, path, comment)
         if ret == False:
             raise Exception(self.model.LastErrorNumber, self.model.LastErrorStr)
     except Exception, e:
         return json.dumps({'success': False, 'msg': unicode(e)})
Example #5
0
	def DeleteGroup(self):
		try:
			if not self._check_session():
				return json.dumps(self.AuthErr);
			
			rid = request.params.get("rid",-1)
			if(not self.model.DeleteGroup(rid)):
				raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)
			
		except Exception,e:
			if(len(e.args)>1):
				return json.dumps({'success': False, 'msg': e.args[1],'num':e.args[0]})
			else:
				return json.dumps({'success': False, 'msg': e.args,'num':-1})
Example #6
0
	def index(self):
		if not self._check_session():
			return json.dumps(self.AuthErr);
			
		groups = self.model.GetGroupList();

		start = int(request.params.get("start",0));
		limit = int(request.params.get("limit",18));

		query = request.params.get("query","");
		query = query.lower();
		fields = request.params.get("fields","");

		if query.strip() != '':
			if fields.count(',')>0:
				fields='username';
			
			if fields.strip() == '':
				fields='username';
				
			#if fields.strip() != '':
			#	fields='username';
			newgrouplist = [];
			for group in groups:
				if(fields=='rid'):
					if query.isdigit():
						query = int(query);
					
					if(group.rid!=query):
						continue;
				elif(fields=='name'):
					if(not group.name.lower().count(query)):
						continue;
				elif(fields=='description'):
					if(not group.description.lower().count(query)):
						continue;
				else:
					continue;
				
				newgrouplist.append(group);

			del groups
			groups=newgrouplist;
		
		total=len(groups);		
		Page = webhelpers.paginate.Page(groups, page=start, items_per_page=limit)

		for group in Page:
			self.ChildNodes.append({
				'name':group.name
				,'description':group.description
				,'rid':group.rid
				,'memberlist':group.memberlist
				,'icon':'group-icon'
				,'type':'group'
			});
		return jsonpickle.encode({"Nodos":self.ChildNodes,'total':total},unpicklable=False);
Example #7
0
	def DeleteGroupList(self):
		try:
			if not self._check_session():
				return json.dumps(self.AuthErr);
			
			GroupList = request.params.get("GroupList","")
			if(GroupList.count(',')>0):
				GroupList = GroupList.split(',');
				for rid in GroupList:
					if(not self.model.DeleteGroup(rid)):
						raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)
			else:
				if(not self.model.DeleteGroup(GroupList)):
					raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)

		except Exception,e:
			if(len(e.args)>1):
				return json.dumps({'success': False, 'msg': e.args[1],'num':e.args[0]})
			else:
				return json.dumps({'success': False, 'msg': e.args,'num':-1})
Example #8
0
	def ListAll(self):
		if not self._check_session():
			return json.dumps(self.AuthErr);

		groups = self.model.GetGroupList();
		for group in groups:
			self.ChildNodes.append({
				'name':group.name
				,'rid':group.rid
				,'type':2
			});
		return jsonpickle.encode({"Nodos":self.ChildNodes},unpicklable=False);
Example #9
0
    def DeleteUserList(self):
        try:
            if not self._check_session():
                return json.dumps(self.AuthErr);

            #rid = request.params.get("rid",-1)
            UserList = request.params.get("UserList","")
            if(UserList.count(',')>0):
                UserList = UserList.split(',');
                for username in UserList:
                    if(not self.model.DeleteUser(username)):
                        raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)
            else:
                if(not self.model.DeleteUser(UserList)):
                    raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)

        except Exception,e:
            if(len(e.args)>1):
                return json.dumps({'success': False, 'msg': e.args[1],'num':e.args[0]})
            else:
                return json.dumps({'success': False, 'msg': e.args,'num':-1})
Example #10
0
	def UpdateGroup(self):
		if not self._check_session():
			return json.dumps(self.AuthErr);
		try:
			
			rid = int(request.params.get("rid",-1));
			name = request.params.get("name","");
			description = request.params.get("description","");
			group = self.model.GetGroup(rid);
			if(group==False):
				raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)
			
			group = Group(name,description,rid);
			if(self.model.UpdateGroup(group)==False):
				raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)

			self._UpdateMenbers(rid);
			
		except Exception,e:
			if(len(e.args)>1):
				return json.dumps({'success': False, 'msg': e.args[1],'num':e.args[0]})
			else:
				return json.dumps({'success': False, 'msg': e.args,'num':-1})
Example #11
0
 def test(self):
     #List = ['nada'];
     #List = self.model.GetUserGroups(500);
     #return json.dumps({"Nodos":List});
     #response.write(str(dir(self.model)));
     #user = User("test001","","",-1);
     try:
         for i in range(1,20):
             if not self.model.AddUser("test%s"%i):
                 raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)
     except Exception,e:
             if self.model.LastErrorNumber !=0:
                 num=self.model.LastErrorNumber
             return json.dumps({'success': False, 'msg': e.message,'num':num})
Example #12
0
    def index(self):
        if not self._check_session():
            return json.dumps(self.AuthErr);

        Shares = self.model.GetShareList();
        for Share in Shares:
            #response.write(Share.Sharename+"<br>");
            Share.type='share';
            Share.icon='HD-icon';

            #self.ChildNodes.append({
            #    'name':Share.name
            #    ,'path':Share.path
            #    ,'comment':Share.comment
            #    ,'icon':'HD-icon'
            #    ,'type':'share'
            #});

        return jsonpickle.encode({"Nodos":Shares},unpicklable=False);
Example #13
0
	def _UpdateMenbers(self,rid):
		if not self._check_session():
			return json.dumps(self.AuthErr);
			

		oldmemberlist = request.params.get("oldmemberlist","")
		memberlist = request.params.get("memberlist","")

		if(oldmemberlist.count(',')==0):
			if(oldmemberlist.isdigit()):
				number = int(oldmemberlist);
				oldmemberlist=list();
				oldmemberlist.append(number);
			else:
				oldmemberlist=list()
		else:
			oldmemberlist = oldmemberlist.split(',')
			
		if(memberlist.count(',')==0):
			if(memberlist.isdigit()):
				number = int(memberlist);
				memberlist=list();
				memberlist.append(number);
			else:
				memberlist=list()
		else:
			memberlist = memberlist.split(',')
			
		memberdiff = set(oldmemberlist).difference(memberlist);
				

				
		for member_rid in memberdiff:
			self.model.DeleteGroupMember(rid,member_rid);
			
		memberdiff = set(memberlist).difference(oldmemberlist);

				
		for member_rid in memberdiff:
			self.model.AddGroupMember(rid,member_rid);
Example #14
0
	def List(self):
		if not self._check_session():
			return json.dumps(self.AuthErr);
			
		from swat.model.UserModel import UserModel;
		self.UserModel = UserModel(session['username'],session['password']);
		
		groups = self.model.GetGroupList();
		for group in groups:
			self.ChildNodes.append({
				'name':group.name
				,'rid':group.rid
				,'type':2
			});
			
		users = self.UserModel.GetUserList();
		for user in users:
			self.ChildNodes.append({
				'name':user.username
				,'rid':user.rid
				,'type':1
			});
			
		return jsonpickle.encode({"Nodos":self.ChildNodes},unpicklable=False);
Example #15
0
    def test(self):
        #return jsonpickle.encode(self.model.GetShareList());
        if(self.model.AddShare("test")==False):
            return json.dumps({'success': False, 'msg':self.model.LastErrorStr,'num':self.model.LastErrorNumber})

        return jsonpickle.encode(self.successOK);
Example #16
0
    def UpdateUser(self):
            if not self._check_session():
                return json.dumps(self.AuthErr);

            try:

                username = request.params.get("username","");
                fullname = request.params.get("fullname","");
                description = request.params.get("description","");
                rid = request.params.get("rid",self.rid);

                changepassword = request.params.get("changepassword","false");
                if(changepassword!="false"):
                    changepassword = True
                else:
                    changepassword = False

                cannotchangepassword = request.params.get("cannotchangepassword","false");
                if(cannotchangepassword!="false"):
                    cannotchangepassword = True
                else:
                    cannotchangepassword = False

                passwordexpires = request.params.get("passwordexpires","false");
                if(passwordexpires!="false"):
                    passwordexpires = True
                else:
                    passwordexpires = False

                disable = request.params.get("disable","false");
                if(disable!="false"):
                    disable = True
                else:
                    disable = False

                locked = request.params.get("locked","false");
                if(locked!="false"):
                    locked = True
                else:
                    locked = False

                profile = request.params.get("profile","");
                logonscript = request.params.get("logonscript","");
                homedir = request.params.get("homedir","");
                maphomedirdrive = request.params.get("maphomedirdrive","");

                user = User(username,fullname,description,rid);


                user.must_change_password = changepassword;
                user.cannot_change_password = cannotchangepassword;
                user.password_never_expires = passwordexpires;
                user.account_disabled = disable;
                #locked = True;
                user.account_locked_out = locked;
                user.profile_path = profile;
                user.logon_script = logonscript;
                user.homedir_path = homedir;
                user.map_homedir_drive = maphomedirdrive;

                #user.password = ""
                #,'grouplist':user.group_list
                #user.group_list = []
                #user.account_disabled = True;
                if not self.model.UpdateUser(user):
                    raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)

                oldgrouplist = request.params.get("oldgrouplist","")
                grouplist = request.params.get("grouplist","")

                if(oldgrouplist.count(',')==0):
                    if(oldgrouplist.isdigit()):
                        number = int(oldgrouplist);
                        oldgrouplist=list();
                        oldgrouplist.append(number);
                    else:
                        oldgrouplist=list()
                        oldgrouplist.append(513);
                else:
                    oldgrouplist = oldgrouplist.split(',')

                if(grouplist.count(',')==0):
                    if(grouplist.isdigit()):
                        number = int(grouplist);
                        grouplist=list();
                        grouplist.append(number);
                    else:
                        grouplist=list()
                        grouplist.append(513);
                else:
                    grouplist = grouplist.split(',')

                groupdiff = set(oldgrouplist).difference(grouplist);

                for group_rid in groupdiff:
                    self.GroupModel.DeleteGroupMember(group_rid,rid);

                groupdiff = set(grouplist).difference(oldgrouplist);
                for group_rid in groupdiff:
                    self.GroupModel.AddGroupMember(group_rid,rid);

            except Exception,e:
                if(self.iscopy):
                    raise;
                if(len(e.args)>1):
                    return json.dumps({'success': False, 'msg': e.args[1],'num':e.args[0]})
                else:
                    return json.dumps({'success': False, 'msg': e.args,'num':-1})
Example #17
0
				raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)
			
			group = Group(name,description,rid);
			if(self.model.UpdateGroup(group)==False):
				raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)

			self._UpdateMenbers(rid);
			
		except Exception,e:
			if(len(e.args)>1):
				return json.dumps({'success': False, 'msg': e.args[1],'num':e.args[0]})
			else:
				return json.dumps({'success': False, 'msg': e.args,'num':-1})
				
		
		return json.dumps(self.successOK);

	def _UpdateMenbers(self,rid):
		if not self._check_session():
			return json.dumps(self.AuthErr);
			

		oldmemberlist = request.params.get("oldmemberlist","")
		memberlist = request.params.get("memberlist","")

		if(oldmemberlist.count(',')==0):
			if(oldmemberlist.isdigit()):
				number = int(oldmemberlist);
				oldmemberlist=list();
				oldmemberlist.append(number);
			else:
Example #18
0
    def index(self):
        if not self._check_session():
            return json.dumps(self.AuthErr);

        users = self.model.GetUserList();

        start = int(request.params.get("start",session['UserPageStart']));
        limit = int(request.params.get("limit",session['UserPageLimit']));

        #session['UserPageStart']=start;
        #session['UserPageLimit']=limit;
        #session.save();

        query = request.params.get("query","");
        query = query.lower();
        fields = request.params.get("fields","");


        if query.strip() != '':
            if fields.count(',')>0:
                fields='username';

            if fields.strip() == '':
                fields='username';

            #if fields.strip() != '':
            #    fields='username';
            newuserlist = [];
            for user in users:
                #response.write(user.username+"<br>");
                #icon = 'usuario';

                if(user.account_disabled):
                    icon = 'dusuario';

                if(fields=='rid'):
                    if query.isdigit():
                        query = int(query);

                    if(user.rid!=query):
                        continue;
                elif(fields=='username'):
                    if(not user.username.lower().count(query)):
                        continue;
                elif(fields=='description'):
                    if(not user.description.lower().count(query)):
                        continue;
                else:
                    continue;

                newuserlist.append(user);

            del users
            users=newuserlist;

        total=len(users);
        Page = webhelpers.paginate.Page(users, page=start, items_per_page=limit)

        for user in Page:
            #response.write(user.username+"<br>");
            icon = 'usuario';
            if(user.account_disabled):
                icon = 'dusuario';




            self.ChildNodes.append({
                'username':user.username
                ,'fullname':user.fullname
                #,'description':user.description if user.description.strip() != '' else '-'
                ,'description':user.description
                ,'rid':user.rid
                ,'changepassword':user.must_change_password
                ,'cannotchangepassword':user.cannot_change_password
                ,'passwordexpires':user.password_never_expires
                ,'disable':user.account_disabled
                ,'locked':user.account_locked_out
                ,'grouplist':user.group_list
                ,'profile':user.profile_path
                ,'logonscript':user.logon_script
                ,'homedir':user.homedir_path
                ,'maphomedirdrive':user.map_homedir_drive
                ,'icon':icon
                ,'type':'user'
            });

        return json.dumps({"Nodos":self.ChildNodes,'total':total});
Example #19
0
    def AddUser(self):
        try:
            if not self._check_session():
                return json.dumps(self.AuthErr);


            username = request.params.get("username","")
            password = request.params.get("password",samba.generate_random_password(7,15))
            fullname = request.params.get("fullname","")
            description = request.params.get("description","")
            iscopy = request.params.get("iscopy","false")

            changepassword = request.params.get("changepassword","false");
            if(changepassword!="false"):
                changepassword = True
            else:
                changepassword = False

            cannotchangepassword = request.params.get("cannotchangepassword","false");
            if(cannotchangepassword!="false"):
                cannotchangepassword = True
            else:
                cannotchangepassword = False

            passwordexpires = request.params.get("passwordexpires","false");
            if(passwordexpires!="false"):
                passwordexpires = True
            else:
                passwordexpires = False

            disable = request.params.get("disable","false");
            if(disable!="false"):
                disable = True
            else:
                disable = False

            rid = self.model.AddUser(username);

            if rid == False:
                raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)

            if(iscopy!="false"):
                self.iscopy=True;
                self.rid=rid;
                self.UpdateUser();
            else:
                user = User(username,fullname,description,rid);

                user.must_change_password = changepassword;
                user.cannot_change_password = cannotchangepassword;
                user.password_never_expires = passwordexpires;
                user.account_disabled = disable;

                if not self.model.UpdateUser(user):
                    raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)

                if(not self.model.SetPassword(username,password)):
                    raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)


        except Exception,e:
            if(len(e.args)>1):
                return json.dumps({'success': False, 'msg': e.args[1],'num':e.args[0]})
            else:
                return json.dumps({'success': False, 'msg': e.args,'num':-1})
Example #20
0
    def DeleteUser(self):
        try:
            if not self._check_session():
                return json.dumps(self.AuthErr);

            #rid = request.params.get("rid",-1)
            username = request.params.get("username","")
            if(not self.model.DeleteUser(username)):
                raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)

        except Exception,e:
            if(len(e.args)>1):
                return json.dumps({'success': False, 'msg': e.args[1],'num':e.args[0]})
            else:
                return json.dumps({'success': False, 'msg': e.args,'num':-1})
        return json.dumps(self.successOK)

    def DeleteUserList(self):
        try:
            if not self._check_session():
                return json.dumps(self.AuthErr);

            #rid = request.params.get("rid",-1)
            UserList = request.params.get("UserList","")
            if(UserList.count(',')>0):
                UserList = UserList.split(',');
                for username in UserList:
                    if(not self.model.DeleteUser(username)):
                        raise Exception(self.model.LastErrorNumber,self.model.LastErrorStr)
            else:
                if(not self.model.DeleteUser(UserList)):