Project

General

Profile

Feature #4652

Zombie users management: allow to disable old users

Added by Laurent Opprecht almost 9 years ago. Updated over 8 years ago.

Status:
Bug resolved
Priority:
Low
Assignee:
Laurent Opprecht
Category:
-
Target version:
Start date:
25/04/2012
Due date:
% Done:

100%

Estimated time:
Complexity:
Normal
SCRUM pts - complexity:
?

Description

Improve management of Zombie users - that is those that left but are still in the system.

Provide a report that list users that didn't log in since x months/years. Allow to disable them.


Related issues

Related to Chamilo LMS - Feature #2912: Delete inactive users (students only) for 2 yearsNew20/02/2011

Actions

History

#1

Updated by Yannick Warnier almost 9 years ago

  • Priority changed from Normal to Low
  • Target version set to 1.9 RC1
  • % Done changed from 0 to 20

Laurent Opprecht wrote:

Improve management of Zombie users - that is those that left but are still in the system.

These can be disabled (or removed, but that's less useful in general). They cease to have access to the portal but their account remains with all the tracking information.

Provide a report that list users that didn't log in since x months/years. Allow to disable them.

There is already a similar report in the global statistics: http://localhost/chamilo/main/admin/statistics/index.php?action=no_login_users, which shows the number of users who have not connected since a certain period of time. I would recommend any kind of more extended report to be linked from there (as well as any other useful place). The query can probably be re-used anyway...

I'm tempted to put that up for 1.9, but with the possibility to forget about it if we run out of time (in any case, if added, it should be added before RC1).

#2

Updated by Laurent Opprecht almost 9 years ago

Fine with that. Our main concern being to have 1.9 stable.

#3

Updated by Laurent Opprecht almost 9 years ago

  • Assignee set to Laurent Opprecht
#4

Updated by Julio Montoya almost 9 years ago

I don't know if this could help but I added a script that Andre Boivin sent to chamilo, currently the script is not enabled see #2912

#5

Updated by Laurent Opprecht almost 9 years ago

  • % Done changed from 20 to 70
#6

Updated by Laurent Opprecht almost 9 years ago

  • Status changed from New to Needs more info
  • Assignee changed from Laurent Opprecht to Julio Montoya
  • % Done changed from 70 to 90

I added a bunch of translations in admin.inc.php

$ActiveOnly = "Active only";
$AuthenticationSource = "Authentication";
$RegisteredDate = "Registered";
$Zombies = "Zombies";

I tried to load them in translation.chamilo.org but failed to see where I can add new translations.

#7

Updated by Laurent Opprecht almost 9 years ago

I added the ability to actually delete old users - based on Julio comments about issue #2912. I wasn't able to used much of the code but certainly borrowed ideas from it.

#8

Updated by Julio Montoya almost 9 years ago

  • Assignee changed from Julio Montoya to Laurent Opprecht

You have to log in to http://translate.chamilo.org

Then "Administration" -> [=Admin=[=Admin=Cda=]=] -> [=Admin=ManageLanguagePacks=] -> trad4all (select a package) -> Click in the "Add variable"

I don't know if you need special rights? ...

#9

Updated by Julio Montoya almost 9 years ago

Some comments:

New classes should be added in the main/inc/lib directory not in a main/inc/lib/zombie

filenames should be called:

zombie_manager.class -> zombie.lib.php
zombie_report.class -> zombie_report.lib.php

#10

Updated by Laurent Opprecht almost 9 years ago

The autoloading process needs to differentiate purely class based files from function libraries. The naming conventions reflects that:

- zombie_manager.class === purely class files
- zombie_manager.lib == function libraries

I should have posted a line on that somewhere. Now I don't mind using this naming convention or another but we should distinguish between the two and discourage mixing in both classes and function libraries.

As for moving them under the library root I don't mind much but we have already quite a bit of files and this doesn't scale. Soon or late we will need to get organized and split files under directories. Now agreed we can leave that for later on.

#11

Updated by Julio Montoya almost 9 years ago

Hello Laurent,

If you want to change the current chamilo "structure" you need to propose first those changes in a new task in a clear way, something like:

"Proposal: New class library organization main/inc/lib/xxx/xxx.lib.php instead of main/inc/lib/xxx.lib.php"

I agree with the changes about the "class" and "lib" prefix (task #4635) but why adding a new directory for a group of classes?

I agree that the current convention is kind of messy due the legacy code we have, but we should keep it that way until we take a decision or at least discuss for a new library organization something like moving all third-party libs in a "vendor" folder, etc, etc. Hope you understand that position. Normally we add a folder when there's a third party library like "pear" or "pchart", not for a funcionality. I thought Zombie was a new third party library that does something "cool" like an easter egg in chamilo with zombies, or it turns Chamilo in a halloween theme... :)

#12

Updated by Yannick Warnier almost 9 years ago

I think what Laurent means is that we should leave the libraries in the folders of the corresponding tool (instead of a subfolder of main/inc/lib/ ). I'm not a fan of that either, but I think this is because Laurent does not know that our logic is that, if a library is only used in one specific tool, it is kept there, but if its functions are used by other tools or globally, then we move them to main/inc/lib/, which is a global directory.

I agree too to the .class, .lib naming convention (should be added to the coding conventions on the wiki and a new announcement should be sent regarding the change), but I think it should be enforced only after 1.9.

I've seen a new report line in the general statistics screen. Is that the only place I should look for it before approving the closure of this task?

When sending code patches, please ensure your commits contain " - refs #4652" (or the number of the task) so it can be linked easily to the task afterwards.
Finally, when waiting for the closure of the task, please try to always leave one (or several) link to the page where the new or fixed feature can be tested, using http://chamilodev.beeznest.com/ as a base (it is updated every 15 minutes, so your new feature will appear there unless it requires a re-installation of the database - login admin/admin).

#13

Updated by Laurent Opprecht almost 9 years ago

Well I was not too sure about the structure so I put things together - I was intending to have a few more componenents as well for stats and/or old courses.
Now I certainly agree that we could move external libraries to a specific folder - vendor, whatever - and keep the interal library apart. And yes we should do it for 1.9.x.

Yes the only place to look for is the new line in stats - I made it so we could add it somewhere else if we need to - using the same code.
Usually I add the revision number but I may have missed it.

#14

Updated by Laurent Opprecht almost 9 years ago

As for translations I am afraid I don't have access to the admin part of the application. I can't therefore add the new variables.

#15

Updated by Laurent Opprecht almost 9 years ago

Good thing we have an online version. I will make sure I add the links next time.

#16

Updated by Yannick Warnier almost 9 years ago

Laurent Opprecht wrote:

As for translations I am afraid I don't have access to the admin part of the application. I can't therefore add the new variables.

You have laurentopprecht and laurent.opprecht. Which one do you use? I guess the one in one word as it has a higher user ID? I'm making it admin right now.

Adding variables is done through:
Admin -> [=Admin=[=Admin=Cda=]=] -> [=Admin=[=Admin=ManageLanguagePacks=]=] -> Choosing the language pack (I guess you can come out with your own decision about where to put a term, but I would recommend putting them in trad4all.inc.php if you don't know) -> Add variable

Please note that adding the variable and adding the English translation are both required/mandatory when you add a new term in the Chamilo code, but the English wording has to be done totally separately (as a normal user from the main page)

#17

Updated by Laurent Opprecht almost 9 years ago

Thanks but I am afraid I can't connect anymore with laurentopprecht. I tried to reset my password but it fails miserably. I think this is the reason why I created the second account.

#18

Updated by Alberto Torreblanca almost 9 years ago

  • Assignee changed from Laurent Opprecht to Yannick Warnier
#19

Updated by Yannick Warnier over 8 years ago

  • Assignee changed from Yannick Warnier to Laurent Opprecht

OK Laurent, I enabled the other account as admin now.

#20

Updated by Laurent Opprecht over 8 years ago

  • Status changed from Needs more info to Bug resolved
  • % Done changed from 90 to 100

Translations added in French and in English

Also available in: Atom PDF