久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔
站長(zhǎng)百科 | 數(shù)字化技能提升教程 數(shù)字化時(shí)代生存寶典
首頁
數(shù)字化百科
電子書
建站程序
開發(fā)
服務(wù)器
辦公軟件
開發(fā)教程
服務(wù)器教程
軟件使用教程
運(yùn)營(yíng)教程
熱門電子書
WordPress教程
寶塔面板教程
CSS教程
Shopify教程
導(dǎo)航
程序頻道
推廣頻道
網(wǎng)賺頻道
人物頻道
網(wǎng)站程序
網(wǎng)頁制作
云計(jì)算
服務(wù)器
CMS
論壇
網(wǎng)店
虛擬主機(jī)
cPanel
網(wǎng)址導(dǎo)航
WIKI使用導(dǎo)航
WIKI首頁
最新資訊
網(wǎng)站程序
站長(zhǎng)人物
頁面分類
使用幫助
編輯測(cè)試
創(chuàng)建條目
網(wǎng)站地圖
站長(zhǎng)百科導(dǎo)航
站長(zhǎng)百科
主機(jī)偵探
IDCtalk云說
跨境電商導(dǎo)航
WordPress啦
站長(zhǎng)專題
網(wǎng)站推廣
網(wǎng)站程序
網(wǎng)站賺錢
虛擬主機(jī)
cPanel
網(wǎng)址導(dǎo)航專題
云計(jì)算
微博營(yíng)銷
虛擬主機(jī)管理系統(tǒng)
開放平臺(tái)
WIKI程序與應(yīng)用
美國(guó)十大主機(jī)
編輯“
用戶:Dv
”
人物百科
|
營(yíng)銷百科
|
網(wǎng)賺百科
|
站長(zhǎng)工具
|
網(wǎng)站程序
|
域名主機(jī)
|
互聯(lián)網(wǎng)公司
|
分類索引
跳轉(zhuǎn)至:
導(dǎo)航
、?
搜索
用戶賬號(hào)“Dv”沒有注冊(cè)。請(qǐng)?jiān)趧?chuàng)建或編輯本頁前檢查。
警告:
您沒有登錄。如果您做出任意編輯,您的IP地址將會(huì)公開可見。如果您
登錄
或
創(chuàng)建
一個(gè)賬戶,您的編輯將歸屬于您的用戶名,且將享受其他好處。
反垃圾檢查。
不要
加入這個(gè)!
=Integration Manager= The idea of this project is to create a module to help automate one of the most common of integration tasks: userbase synchronization. Each integration (e.g. G2 in Drupal) has to synchronize its Drupal users with the G2 users. This is about minimizing the amount of code that has to be written per new integration. This module will be a common point for synchronization logic. ==Stories and Use Cases== You can find all the user stories and use cases here. ===Overall User Story=== Bob downloads Gallery 2 to integrate into his current supported emApp. He installs an existing G2 integration module into his emApp. He then configures it so that it may find G2. He then configures it so that it may find G2. The integration will then automatically check if the version of the G2 installation is compatible, check if the Integration Manager Module is active and if not, try to install and activate it. It will proceed to register its implementation of the user synchronization class with G2 which also includes default values for the synchronization options. At this point, the integration synchronizes special users first (admin and anonymous/guest.) Once the synchronization process is initiated, Bob sees a progress bar, and waits for syncing to complete. Once this is done, he is taken back to the status view. There a list of conflicts/errors is presented. If there had been no errors, it would have transparently gone from a "dry run" to actual commitment of synchronization. If there are conflicts/errors, an option to manually correct any error in the user mapping is available. Once this is done, he proceeds with a real synchronization run. ===Status View User Story=== Bob goes to the status view from G2 admin. The status view is currently indicating that Bob has not done a user synchronization before. It also indicates there are currently no known conflicts. Furthermore, it currently states no users listed in G2 aren't listed in emApp. He selects the synchronization view. He changes the defaults to select the option to make G2 the master for user synchronization, which will override user data in emApp if there are any conflicts. He clicks the "Synchronize" button, which does a dry run to better prepare for any errors or conflicts that may occur. ===Use Cases=== Anthony Administrator Wants To Synchronize # Selects the synchronization view from the embed module's main admin view. # Clicks the "Synchronize" button to commence a dry run of synchronizing. # This dry run completes and shows any conflicts/errors on the module's main admin view, known as the status view. # If no conflicts had occured, would have begun second round for commitment automatically. Anthony Wants to Solve Conflicts # If any, the list of conflicts is presented to him in the status view. # There are mass resolution options to ignore certain user properties such as fullName, email, password, language, etc. # Once conflicts list is empty, Anthony proceeds to the synchronization view and the Synchronization button allows him to a do a dry run -- which should now produce no conflicts -- and then automatically perform a commit run at this point. # If conflicts aren't empty and Anthony still wants to commit, he goes to the synchronization view and checks the "Ignore remaining conflicts" option. He proceeds to hit the Synchronize button and the commit run is executed immediately. '''(To be revised.)''' Isaac Integrator Wants To Make His Code Embed-module Compatible # registerFactoryImplementation() on UserSynchronizationInterface_1_0. Integrators will find interface in: ''modules/embed/classes/UserSynchronizationInterface_1_0.class'' # Implements necessary functions in UserSynchronizationInterface_1_0. Once the synchronizeUsers() method is called, will instantiate the registered implementation via newFactoryInstance(). ==Class Definitions== This module is divided up into two parts. A GalleryEmbedSynchronization class that contains all the necessary logic for this project, and one interface for integrations to use to communicate with this module. Below you will find the specifications for these classes. ===GalleryEmbedSynchronization=== This class must be instantiated. The first call must be to init() to set up the class. If the integration coder wishes to override any options the user may have selected via a view, they can call the setOptions() method. ====Variables==== array _g2Users List of all users in G2 as GalleryUser objects. array _emAppUsers Array of users in emApp in the format of GalleryUser::getMemberData(). array _options * Synchronize options will be carried in this variable. * * @var array('ignorePasswordMismatches' => bool, 'ignoreLanguageMismatches' => bool, * 'allowExternalIdMapAdditions' => bool) array _conflicts * Conflict array. Contains one or more of the following types of arrays. * * @var array('type' => CONFLICT_USERDATA, 'g2User' => $g2UserData, 'emAppUser' => * $emAppUserData) * OR * array('type' => CONFLICT_ORPHAN, 'entityId' => $entityId, 'message' => $message) ====Functions==== init() * Init function. Sets up class-related options. * * @return object GalleryStatus addConflict($conflictData) * Add a conflict to the conflicts array. * * This function performs basic validation checks before passing on the data to the conflict * array. If 'type' == CONFLICT_ORPHAN, will show first param as an id of some sort and second * param as an error message in which first param is involved. If 'type' == CONFLICT_USERDATA, * will compare them by key/value pairs, because they're two conflicting user arrays. * * @param array('type' => CONFLICT_USERDATA, 'g2User' => $g2UserData, 'emAppUser' => * $emAppUserData) * OR * array('type' => CONFLICT_ORPHAN, 'entityId' => $entityId, 'message' => $message) * @return object GalleryStatus getConflictsArray() * A function to retrieve all conflicts in $this->_conflicts * * @return array(object GalleryStatus, array $this->_conflicts) compareUsers($g2User, $emAppUser, $params) * Compare a G2 user with an integration app user by user properties. * * Set any or all of the array params to true to compare by those properties. * If 'case' is true, then compare will be case-sensitive. 'case' is determined within this * function by calling UserSynchronizationInterface_1_0::isCompareCaseSensitive(). * * @param object GalleryUser * @param array ('userName' => string the user name, 'fullName' => string full name, * 'email' => string user's e-mail, 'language' => string user's language, * 'hashedPassword' => string user's hashed password) * @param array('byUserName' => bool, 'byEmail' => bool, 'byLanguage' => bool, * 'byFullName' => bool, 'byHashedPassword' => bool, 'case' => bool) * @return array('userName' => 1, 'email' => 1, etc.) Any conflicts are entered here. setOptions($params) * Set options via this method. Can be used by integration coders to override any user-selected * options. * * @param array(any options from $this->_options => appropriate value) synchronizeUsers($isDryRun=true) * Synchronize $this->_emAppUsers and $this->_g2Users * * @param bool isDryRun determines if we are doing a dry run to check for errors * @return array object GalleryStatus a status code * array results array (..., 'g2Users' => $this->_g2Users) This function instantiates the following class: list($ret, $this->_emApp) = GalleryCoreApi::newFactoryInstance('UserSynchronizationInterface_1_0'); ===UserSynchronizationInterface_1_0=== This is the interface which the integrator will use to implement integration app-related (emApp-related) tasks such as creating, deleting, and updating users in the emApp. ====Functions==== createUser($g2Data) * Create a user in the emApp with the supplied user data and return the id of the new user. * @param array new user data ('userName' => string, 'fullName' => string, 'email' => string, * 'language' => string, 'hashedPassword' => string) * @return array (object GalleryStatus status code, mixed (string, integer) externalId of new user updateUser($externalId, $userData) * Update a user in the emApp. * @param mixed, external user Id * @param array new user data ('userName' => string, 'fullName' => string, 'email' => string, * 'language' => string, 'hashedPassword' => string) * @return array object GalleryStatus a status code deleteUser($externalId) * Delete a user from the emApp. * @param mixed external user Id * @return object GalleryStatus a status code <strike>getUser($externalId)</strike> '''Currently in limbo''' getGuestUser() * Get user properties for emApp's 'guest' user. * * @return array object GalleryStatus status code * mixed (string, integer) externalId of user getSiteAdmin() * Get user properties for emApp's admin user. * * @return array object GalleryStatus status code * mixed (string, integer) externalId of user getUsers() * Get list of users from emApp. * * @return array (object GalleryStatus a status code, * array (mixed id => array('userName' => string, 'email' => string, * 'language' => string, 'hashedPassword' => string, * 'fullName' => string, 'id' => mixed))) getRequiredUserProperties() * Return which user properties are required when creating/comparing users. * * @return array ('userName' => bool, 'email' => bool, 'language' => bool, * 'hashedPassword' => bool, 'fullName' => bool) isCompareCaseSensitive() * Will we compare users in a case-sensitive fashion? * * @return array (object GalleryStatus status code, * bool isCaseSensitive)
摘要:
請(qǐng)注意,您對(duì)站長(zhǎng)百科的所有貢獻(xiàn)都可能被其他貢獻(xiàn)者編輯,修改或刪除。如果您不希望您的文字被任意修改和再散布,請(qǐng)不要提交。
您同時(shí)也要向我們保證您所提交的內(nèi)容是您自己所作,或得自一個(gè)不受版權(quán)保護(hù)或相似自由的來源(參閱
Wordpress-mediawiki:版權(quán)
的細(xì)節(jié))。
未經(jīng)許可,請(qǐng)勿提交受版權(quán)保護(hù)的作品!
取消
編輯幫助
(在新窗口中打開)
取自“
http://kktzf.com.cn/wiki/用戶:Dv
”