Benutzer-Werkzeuge

Webseiten-Werkzeuge


cloud4education

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
cloud4education [2012/11/04 12:58] – [Version 4.0.1] admincloud4education [2012/11/04 18:07] (aktuell) admin
Zeile 3: Zeile 3:
 ===== Version 4.5.1 ===== ===== Version 4.5.1 =====
  
 +  wget http://apps.owncloud.com/CONTENT/content-files/151948-rescan_fs.zip => apps/
 +
 +<code php apps/rescan_fs/appinfo/app.php>
 +OCP\App::addNavigationEntry( array( "id" => "rescan_fs", "order" => 100, "href" => OCP\Util::linkTo( "rescan_fs", "index.php" ), "icon" => OCP\Util::imagePath( "rescan_fs", "loader.gif" ), "name" => "Ordner neu einlesen" ));
 +</code>
 +
 +<code php apps/rescan_fs/templates/index.php>
 +<!--[if IE 8]><style>input[type="checkbox"]{padding:0;}table td{position:static !important;}</style><![endif]-->
 +<div id="scanning-message">
 +        <h3>
 +                <?php echo $l->t('Ordner werden durchsucht, bitte warten.');?> <span id='scan-count'></span>
 +        </h3>
 +        <p>
 +                <?php echo $l->t('Durchsuche Ordner...');?> <span id='scan-current'></span>
 +        </p>
 +</div>
 +<div id="scanning-message-end">
 +        <h3>
 +                <?php echo $l->t('Scan abgeschlossen');?> <span id='scan-complete'></span>
 +        </h3>
 +</div>
 +</code>
 +
 +<code php lib/user.php>
 +        public static function login( $uid, $password ) {
 +                $run = true;
 +                OC_Hook::emit( "OC_User", "pre_login", array( "run" => &$run, "uid" => $uid ));
 +
 +                if( $run ) {
 +                        $uid = self::checkPassword( $uid, $password );
 +                        $enabled = self::isEnabled($uid);
 +                        if($uid && $enabled) {
 +                                session_regenerate_id(true);
 +                                self::setUserId($uid);
 +                                OC_Hook::emit( "OC_User", "post_login", array( "uid" => $uid, 'password'=>$password ));
 +                                $_SESSION['user_password']= $password;
 +                                return true;
 +                        }
 +                }
 +                return false;
 +        }
 +</code>
 +
 +<code php lib/util.php>
 +/*** server4education ***/
 +
 +        /**
 +        * Check if home folder is mounted, mount if not
 +        */
 +        public static function checkHomeMounted(){
 +                // Check if home folder is mounted
 +                if (!OC_Filesystem::is_dir('/Home')) {
 +                        OC_Filesystem::mkdir('/Home');
 +                        exec("sudo /usr/local/bin/mounthome ".OC_User::getUser()." ".$_SESSION['user_password']);
 +                }
 +
 +                foreach(self::getS4eShares() as $share) {
 +                        if (!OC_Filesystem::is_dir('/'.$share)) {
 +                                OC_Filesystem::mkdir('/'.$share);
 +                                exec("sudo /usr/local/bin/mountshare ".OC_User::getUser()." ".$_SESSION['user_password']." ".$share);
 +                        }
 +                }
 +                exec("logger \"".OC_User::getUser()." - cloud4education ".`date +%s`."\"");
 +                $_SESSION['user_password'] = "";
 +        }
 +
 +/*** server4education ***/
 +
 +</code>
 +
 +<code php apps/files/index.php>
 +// Check if we are a user
 +OCP\User::checkLoggedIn();
 +OC_Util::checkHomeMounted();
 +</code>
 +
 +  *Branding
 +    * core/img/logo.svg
 +    * core/img/logo.png
 +    * core/img/favicon.svg
 +    * core/img/favicon.png
 +    * core/img/favicon-touch.svg
 +    * core/img/favicon-touch.png
 +
 +<code php core/templates/layout.guest.php>
 +<title>cloud4education</title>
 +...
 +<img src="<?php echo image_path('', 'logo.png'); ?>" alt="cloud4education" style="width: 22em" />
 +...
 +<footer><p class="info"><a href="http://www.cloud4education.at/">cloud4education</a> &ndash; <?php echo $l->t( 'eine freie Cloud-L&ouml;sung f&uuml;r Schulen' ); ?></p></footer>
 +</code>
 +
 +<code php core/templates/layout.user.php>
 +<title><?php echo isset($_['application']) && !empty($_['application'])?$_['application'].' | ':'' ?>cloud4education <?php echo OC_User::getUser()?' ('.OC_User::getUser().') ':'' ?></title>
 +</code>
 ===== Version 4.0.1 ===== ===== Version 4.0.1 =====
 +
 +<code php files/index.php>
 +// Check if we are a user
 +OC_Util::checkLoggedIn();
 +OC_Util::checkHomeMounted();
 +</code>
 +
 +<code php lib/user.php>
 +        // server4education shares
 +        private static function getS4eShares() {
 +                $shares = array();
 +                $fp = @fopen("/srv/www/htdocs/".OC::$WEBROOT."/config/s4eshares.config", "r");
 +                while($line = fgets($fp, 1024)) {
 +                        $line = trim($line);
 +                        if($line != "")
 +                                $shares[] = $line;
 +                }
 +                fclose($fp);
 +                return $shares;
 +        }
 +
 +
 +
 +        /**
 +         * @brief Kick the user
 +         * @returns true
 +         *
 +         * Logout, destroys session
 +         */
 +        public static function logout(){
 +                OC_Hook::emit( "OC_User", "logout", array());
 +                exec("sudo umount /srv/www/htdocs/".OC::$WEBROOT."/data/".OC_User::getUser()."/files/Home");
 +                foreach(self::getS4eShares() as $share) {
 +                        exec("sudo umount /srv/www/htdocs/".OC::$WEBROOT."/data/".OC_User::getUser()."/files/".$share);
 +                }
 +// BÖSE?                OC_Helper::rmdirr("/srv/www/htdocs/".OC::$WEBROOT."/data/".OC_User::getUser());
 +                OC_Helper::rmdirr("/srv/www/htdocs/".OC::$WEBROOT."/data/".OC_User::getUser());
 +                $_SESSION['user_id'] = false;
 +                OC_User::unsetMagicInCookie();
 +                return true;
 +        }
 +</code>
  
 <code php lib/util.php> <code php lib/util.php>
 +        // server4education shares
 +        private static function getS4eShares() {
 +                $shares = array();
 +                $fp = @fopen("/srv/www/htdocs/".OC::$WEBROOT."/config/s4eshares.config", "r");
 +                while($line = fgets($fp, 1024)) {
 +                        $line = trim($line);
 +                        if($line != "")
 +                                $shares[] = $line;
 +                }
 +                fclose($fp);
 +                return $shares;
 +        }
 +
 +
 +
  
         /**         /**
Zeile 41: Zeile 193:
  
 /*** server4education ***/ /*** server4education ***/
 +
 +</code>
 +
 +<code ini config/s4eshares.config>
 +gemeinsam
 +material
 +abgabe
 +</code>
 +
 +<code bash /usr/local/bin/cloud4education>
 +#!/bin/bash
 +
 +for username in $(mount | grep owncloud | grep Home | cut -d"/" -f4 | cut -d" " -f1); do
 + START=$(grep "logger: $username" /var/log/messages | tail -1 | awk '{print $9}')
 + DUR=$(echo "( ( $(date +%s) - $START ) / 60 )" | bc)
 + if [ $DUR -gt 15 ]; then
 +  umount /srv/www/htdocs/owncloud/data/$username/files/Home
 +  for SHARE in `cat /srv/www/htdocs/owncloud/config/s4eshares.config`; do
 +    umount /srv/www/htdocs/owncloud/data/$username/files/$SHARE
 +  done
 +  rm /srv/www/htdocs/owncloud/data/$username
 + fi
 +done
  
 </code> </code>
Zeile 62: Zeile 237:
 fi fi
 </code> </code>
 +
 +<code bash crontab>
 +# Umount lost cloud4education connections
 +*/15 * * * *  /usr/local/bin/cloud4education > /dev/null 2>&1
 +</code>
 +
 +  *Branding:
 +    * core/img/owncloud-logo-medium-white.png
 +    * core/img/logo.svg
 +    * core/img/logo.png
 +    * core/img/logo-wide.svg
 +    * core/img/logo-wide.png
 +
 +<code php core/templates/layout.user.php>
 +<title>cloud4education</title>
 +</code>
 +
 +<code php core/templates/layout.guest.php>
 +<title>cloud4education</title>
 +...
 +<footer><p class="info"><a href="http://www.cloud4education.at/">cloud4education</a> &ndash; <?php echo $l->t( 'eine freie Cloud-L&ouml;sung f&uuml;r Schulen' ); ?></p></footer>
 +</code>
 +
 +<code css core/templates/css/styles.css>
 +#body-login p.info { width:26em; text-align: center; margin:2em auto; color:#777; text-shadow:#fff 0 1px 0; }
 +</code>
 +
 +<code ini /etc/sudoers>
 +wwwrun ALL = NOPASSWD: /usr/local/bin/mounthome
 +wwwrun ALL = NOPASSWD: /usr/local/bin/mountshare
 +wwwrun ALL = NOPASSWD: /bin/umount
 +wwwrun ALL = NOPASSWD: /bin/mount
 +wwwrun ALL = NOPASSWD: /sbin/mount.cifs
 +</code>
 +
 +  *Passwort und EMail Dialog abschalten:
 +    *settings/templates/personal.php
cloud4education.1352030333.txt.gz · Zuletzt geändert: von admin