tinycm annotate plugins/users/users.cgi @ rev 77

Small change to user plugins
author Christophe Lincoln <pankso@slitaz.org>
date Fri Feb 10 23:17:21 2017 +0100 (2017-02-10)
parents e3cba575c564
children 4b58d8ca918a
rev   line source
pankso@75 1 #!/bin/sh
pankso@75 2 #
pankso@75 3 # TinyCM/TazBug Plugin - Users profile and admin
pankso@75 4 #
pankso@75 5
pankso@76 6 # Display user public profile.
pankso@76 7 public_people() {
pankso@76 8 echo "</pre>"
pankso@76 9 # Display personal user profile
pankso@76 10 if [ -f "$PEOPLE/$USER/profile.txt" ]; then
pankso@76 11 cat $PEOPLE/$USER/profile.txt | wiki_parser
pankso@76 12 fi
pankso@76 13 }
pankso@76 14
pankso@76 15 # Display authenticated user profile. TODO: change password
pankso@76 16 auth_people() {
pankso@76 17 cat << EOT
pankso@76 18 Email : $MAIL
pankso@76 19 </pre>
pankso@76 20 EOT
pankso@76 21 # Each user can have personal profile page
pankso@76 22 if [ -f "$PEOPLE/$USER/profile.txt" ]; then
pankso@76 23 cat $PEOPLE/$USER/profile.txt | wiki_parser
pankso@76 24 cat << EOT
pankso@76 25 <div id="tools">
pankso@77 26 <a href="$script?modprofile">$(gettext "Modify profile")</a>
pankso@76 27 <a href="$script?dashboard">Dashboard</a>
pankso@76 28 </div>
pankso@76 29 EOT
pankso@76 30 else
pankso@76 31 cat << EOT
pankso@76 32 <div id="tools">
pankso@77 33 <a href="$script?modprofile">$(gettext "Create a profile page")</a>
pankso@76 34 <a href="$script?dashboard">Dashboard</a>
pankso@76 35 </div>
pankso@76 36 EOT
pankso@76 37 fi
pankso@76 38 }
pankso@76 39
pankso@75 40 case " $(GET) " in
pankso@75 41 *\ users\ *)
pankso@75 42 d="Users"
pankso@75 43 header
pankso@75 44 html_header
pankso@75 45 user_box
pankso@75 46 if check_auth && ! admin_user; then
pankso@75 47 gettext "You must be admin to manage users"
pankso@75 48 exit 0
pankso@75 49 fi
pankso@75 50 users=$(ls -1 $PEOPLE | wc -l)
pankso@75 51 cat << EOT
pankso@75 52 <h2>Users: $users</h2>
pankso@75 53 <div id="tools">
pankso@75 54 <a href="$script?dashboard">Dashboard</a>
pankso@75 55 <a href='?logged'>Logged users</a>
pankso@75 56 </div>
pankso@75 57 <pre>
pankso@75 58 EOT
pankso@75 59 for u in $(ls $PEOPLE)
pankso@75 60 do
pankso@75 61 # Skip corrupted accounts
pankso@75 62 if ! [ -f "${PEOPLE}/${u}/account.conf" ]; then
pankso@75 63 echo "${u} : Missing account.conf"
pankso@75 64 continue
pankso@75 65 fi
pankso@75 66 . "${PEOPLE}/${u}/account.conf"
pankso@75 67 cat << EOT
pankso@75 68 $(get_gravatar $MAIL 24) <a href="?user=$USER">$USER</a> | $NAME | $MAIL
pankso@75 69 EOT
pankso@75 70 # deluser link
pankso@75 71 #: <a href="?users&amp;deluser=$USER">$(gettext "delete")</a>
pankso@75 72 unset NAME USER
pankso@75 73 done
pankso@75 74 echo "</pre>"
pankso@75 75 html_footer && exit 0 ;;
pankso@75 76
pankso@75 77 *\ logged\ *)
pankso@75 78 # Show online users based on sessions files.
pankso@75 79 d="Logged users"
pankso@75 80 header
pankso@75 81 html_header
pankso@75 82 user_box
pankso@75 83 if ! check_auth; then
pankso@75 84 gettext "You must be logged in to view online users"
pankso@75 85 exit 0
pankso@75 86 fi
pankso@75 87 cat << EOT
pankso@75 88 <h2>Logged users</h2>
pankso@75 89 <div id="tools">
pankso@75 90 <a href="$script?dashboard">Dashboard</a>
pankso@75 91 </div>
pankso@75 92 <pre>
pankso@75 93 EOT
pankso@75 94 for u in $(ls $sessions)
pankso@75 95 do
pankso@75 96 . "${PEOPLE}/${u}/account.conf"
pankso@75 97 cat << EOT
pankso@75 98 $(get_gravatar $MAIL 24) <a href="?user=$USER">$USER</a> | $NAME
pankso@75 99 EOT
pankso@75 100 done
pankso@75 101 echo "</pre>"
pankso@75 102 html_footer && exit 0 ;;
pankso@76 103
pankso@76 104 *\ user\ *)
pankso@76 105 # User profile page
pankso@76 106 d="$(GET user)"
pankso@76 107 last="$(cat $PEOPLE/"$(GET user)"/last)"
pankso@76 108 header
pankso@76 109 html_header
pankso@76 110 user_box
pankso@76 111 . $PEOPLE/"$(GET user)"/account.conf
pankso@76 112 cat << EOT
pankso@76 113 <h2>$(get_gravatar $MAIL) $NAME</h2>
pankso@76 114
pankso@76 115 <pre>
pankso@76 116 $(gettext "User name :") $USER
pankso@76 117 $(gettext "Last login :") $last
pankso@76 118 EOT
pankso@76 119 if check_auth && [ "$(GET user)" == "$user" ]; then
pankso@76 120 auth_people
pankso@76 121 else
pankso@76 122 # check_auth will set VARS to current logged user: re-source
pankso@76 123 . $PEOPLE/"$(GET user)"/account.conf
pankso@76 124 public_people
pankso@76 125 fi
pankso@76 126 html_footer && exit 0 ;;
pankso@76 127
pankso@77 128 *\ modprofile\ *)
pankso@76 129 # Let user edit there profile
pankso@76 130 if ! check_auth; then
pankso@76 131 echo "ERROR" && exit 0
pankso@76 132 fi
pankso@76 133 d="$user profile"
pankso@76 134 path=${PEOPLE}/${user}
pankso@76 135 header
pankso@76 136 html_header
pankso@76 137 user_box
pankso@76 138 cat << EOT
pankso@77 139 <h2>$(gettext "User:") $user</h2>
pankso@77 140 <p>$(gettext "Modify your profile settings")
pankso@76 141 <div id="edit">
pankso@76 142
pankso@76 143 <form method="get" action="$script" name="editor">
pankso@76 144 <input type="hidden" name="save-profile" />
pankso@76 145 <h3>Name</h3>
pankso@76 146 <input type="text" name="name" value="$NAME" />
pankso@76 147 <h3>Email</h3>
pankso@76 148 <input type="text" name="mail" value="$MAIL" />
pankso@76 149 <h3>About you</h3>
pankso@76 150 <textarea name="profile">$(cat "$path/profile.txt")</textarea>
pankso@76 151 <input type="submit" value="$(gettext "Save profile")" />
pankso@76 152 </form>
pankso@76 153
pankso@76 154 </div>
pankso@76 155 EOT
pankso@76 156 html_footer && exit 0 ;;
pankso@76 157
pankso@76 158 *\ save-profile\ *)
pankso@76 159 # Save a user profile
pankso@76 160 if check_auth; then
pankso@76 161 path="$PEOPLE/$user"
pankso@76 162 sed -i s"/^NAME=.*/NAME=\"$(GET name)\"/" ${path}/account.conf
pankso@76 163 sed -i s"/^MAIL=.*/MAIL=\"$(GET mail)\"/" ${path}/account.conf
pankso@76 164 cp -f ${path}/profile.txt ${path}/profile.bak
pankso@76 165 sed "s/$(echo -en '\r') /\n/g" > ${path}/profile.txt << EOT
pankso@76 166 $(GET profile)
pankso@76 167 EOT
pankso@76 168 header "Location: $script?user=$user"
pankso@76 169 fi && exit 0 ;;
pankso@76 170
pankso@75 171 esac