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&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 |