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

Tiny edits
author Paul Issott <paul@slitaz.org>
date Sat Feb 11 10:18:48 2017 +0000 (2017-02-11)
parents c5499579959a
children 4418f0315c8e
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 }
pankso@76 10
pankso@76 11 # Display authenticated user profile. TODO: change password
pankso@76 12 auth_people() {
pankso@76 13 cat << EOT
pankso@76 14 Email : $MAIL
pankso@76 15 </pre>
pankso@76 16 EOT
pankso@76 17 # Each user can have personal profile page
pankso@76 18 if [ -f "$PEOPLE/$USER/profile.txt" ]; then
pankso@76 19 cat << EOT
pankso@76 20 <div id="tools">
pankso@77 21 <a href="$script?modprofile">$(gettext "Modify profile")</a>
pankso@76 22 <a href="$script?dashboard">Dashboard</a>
pankso@76 23 </div>
pankso@76 24 EOT
pankso@76 25 else
pankso@76 26 cat << EOT
pankso@76 27 <div id="tools">
pankso@77 28 <a href="$script?modprofile">$(gettext "Create a profile page")</a>
pankso@76 29 <a href="$script?dashboard">Dashboard</a>
pankso@76 30 </div>
pankso@76 31 EOT
pankso@76 32 fi
pankso@76 33 }
pankso@76 34
pankso@75 35 case " $(GET) " in
pankso@75 36 *\ users\ *)
pankso@75 37 d="Users"
pankso@75 38 header
pankso@75 39 html_header
pankso@75 40 user_box
pankso@75 41 if check_auth && ! admin_user; then
pankso@75 42 gettext "You must be admin to manage users"
pankso@75 43 exit 0
pankso@75 44 fi
pankso@75 45 users=$(ls -1 $PEOPLE | wc -l)
pankso@75 46 cat << EOT
pankso@75 47 <h2>Users: $users</h2>
pankso@75 48 <div id="tools">
pankso@75 49 <a href="$script?dashboard">Dashboard</a>
pankso@75 50 <a href='?logged'>Logged users</a>
pankso@75 51 </div>
pankso@75 52 <pre>
pankso@75 53 EOT
pankso@75 54 for u in $(ls $PEOPLE)
pankso@75 55 do
pankso@75 56 # Skip corrupted accounts
pankso@75 57 if ! [ -f "${PEOPLE}/${u}/account.conf" ]; then
pankso@75 58 echo "${u} : Missing account.conf"
pankso@75 59 continue
pankso@75 60 fi
pankso@75 61 . "${PEOPLE}/${u}/account.conf"
pankso@75 62 cat << EOT
pankso@75 63 $(get_gravatar $MAIL 24) <a href="?user=$USER">$USER</a> | $NAME | $MAIL
pankso@75 64 EOT
pankso@75 65 # deluser link
pankso@75 66 #: <a href="?users&amp;deluser=$USER">$(gettext "delete")</a>
pankso@75 67 unset NAME USER
pankso@75 68 done
pankso@75 69 echo "</pre>"
pankso@75 70 html_footer && exit 0 ;;
pankso@75 71
pankso@75 72 *\ logged\ *)
pankso@75 73 # Show online users based on sessions files.
pankso@75 74 d="Logged users"
pankso@75 75 header
pankso@75 76 html_header
pankso@75 77 user_box
pankso@75 78 if ! check_auth; then
pankso@75 79 gettext "You must be logged in to view online users"
pankso@75 80 exit 0
pankso@75 81 fi
pankso@75 82 cat << EOT
pankso@75 83 <h2>Logged users</h2>
pankso@75 84 <div id="tools">
pankso@75 85 <a href="$script?dashboard">Dashboard</a>
pankso@75 86 </div>
pankso@75 87 <pre>
pankso@75 88 EOT
pankso@75 89 for u in $(ls $sessions)
pankso@75 90 do
pankso@75 91 . "${PEOPLE}/${u}/account.conf"
pankso@75 92 cat << EOT
pankso@75 93 $(get_gravatar $MAIL 24) <a href="?user=$USER">$USER</a> | $NAME
pankso@75 94 EOT
pankso@75 95 done
pankso@75 96 echo "</pre>"
pankso@75 97 html_footer && exit 0 ;;
pankso@76 98
pankso@76 99 *\ user\ *)
pankso@76 100 # User profile page
pankso@76 101 d="$(GET user)"
pankso@76 102 last="$(cat $PEOPLE/"$(GET user)"/last)"
pankso@76 103 header
pankso@76 104 html_header
pankso@76 105 user_box
pankso@76 106 . $PEOPLE/"$(GET user)"/account.conf
pankso@76 107 cat << EOT
pankso@76 108 <h2>$(get_gravatar $MAIL) $NAME</h2>
pankso@76 109
pankso@76 110 <pre>
pankso@76 111 $(gettext "User name :") $USER
pankso@76 112 $(gettext "Last login :") $last
pankso@76 113 EOT
pankso@76 114 if check_auth && [ "$(GET user)" == "$user" ]; then
pankso@76 115 auth_people
pankso@76 116 else
pankso@76 117 # check_auth will set VARS to current logged user: re-source
pankso@76 118 . $PEOPLE/"$(GET user)"/account.conf
pankso@76 119 public_people
pankso@76 120 fi
pankso@79 121 # Display personal user profile
pankso@79 122 if [ -f "$PEOPLE/$USER/profile.txt" ]; then
pankso@79 123 echo "<h2>$(gettext "About me")</h2>"
pankso@79 124 cat $PEOPLE/$USER/profile.txt | wiki_parser
pankso@79 125 fi
pankso@76 126 html_footer && exit 0 ;;
pankso@76 127
pankso@77 128 *\ modprofile\ *)
paul@80 129 # Let user edit their 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@78 144 <input type="hidden" name="saveprofile" />
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@78 158 *\ saveprofile\ *)
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