반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 받은 트랙백

글 보관함

Kurogo Tutorial 24 - People Module -

2012. 10. 10. 05:23 | Posted by 솔웅


People Module



people 모듈은 directory 로 어떤 mobile access 기능을 제공하는 겁니다. 간단한 configuration으로 모바일 device 에서 유저에 대한 searching 과 detail 한 정보 보기 등을 가능하도록 할 수 있습니다. LDAP base directory와 database backed directories 모두 지원합니다.


Configuring the Server Connection



이 모듈의 configuration은 Administration Module 이나 SITE_DIR/config/people/feeds.ini file을 edit 하셔야 합니다. 여러분의 directory 시스템에 connect 하기 위해서는 여러 방법들이 사용될 수 있습니다.


  • RETRIEVER_CLASS allows you to determine the mechanism for retrieving the data. Current options include:
    • LDAPPeopleRetriever - uses a standard LDAP server. You can configure the various fields if your values differ from defaults
    • ADPeopleRetriever - a subclass of the LDAP retriever that has preconfigured mappings for Active Directory
    • DatabasePeopleRetriever - connects to an external database server. This controller assumes that people are mapped to a single row and that the various fields are stored in single (definable) columns
  • PERSON_CLASS allows you to set a different class name for the returned user objects when searching. This class must be a subclass of the Person class. This allows you to write custom behavior to handle the data in your directory service.


Options for LDAPPeopleRetriever and ADPeopleRetriever


  • HOST - should match the address of your server. Keep in mind that this server must be accessible from the web server the framework is hosted on. Managing network and firewall settings is the responsibility of your network administrator.
  • SEARCH_BASE - should manage the LDAP search base of your directory. You can get this value from the administrator of your LDAP directory. Examples would include “dc=example,dc=com”
  • PORT - Optional (Default 389) The port to connect. Use 636 for SSL connections (recommended if available)
  • ADMIN_DN - Some servers do not permit anonymous queries. If necessary you will need to provide a full distinguished name for an account that has access to the directory. For security this account should only have read access and be limited to the search bases to which it needs to access.
  • ADMIN_PASSWORD - The password for the ADMIN_DN account.





다음 값들은 controller에게 searching 할 때 어떤 attributes들을 사용할 것인지를 알려 줍니다. 이 값들은 디폴트값고 다를 경우 사용할 필요가 있을 겁니다.


  • LDAP_USERID_FIELD (uid, samaccountname for AD)- Stores the unique user name for this user. Do not choose an attribute that is sensitive as they are easily viewed by users
  • LDAP_EMAIL_FIELD (mail) - The attribute of the user’s email address
  • LDAP_FIRSTNAME_FIELD (givenname) - The attribute of the user’s first name
  • LDAP_LASTNAME_FIELD (sn) - The attribute of the user’s last name
  • LDAP_FULLNAME_FIELD (blank) - If you wish to use a single field for name (like cn), include this here.
  • LDAP_PHONE_FIELD (telephonenumber) - The attribute of the user’s phone number

Options for DatabasePeopleRetriever


DatabasePeopleRetriever 에는 사용할 수 있는 여러 configuration value들이 있습니다. 모두 optional 이죠. 데이터베이스 connection에 대한 configuration에 대해 자세히 알고 싶으시면 Database Access를 보세요.

만약 이중에 어떤 value 라도 생략되면은 디폴트를 세팅할 겁니다. (Configuring Database Connections)

아래 value는 데이터가 있는 테이블의 위치를 controller에게 알려 줍니다.


  • DB_USER_TABLE - (users) The name of the table that stores the user records. This table should at least have fields for userID, name and email. Each row should contain a single user entry.


아래 값들은 controller 에게 주요 field 에 대한 정보를 줍니다. 이 값들은 디폴트값과 그 값이 다를 경우에 적용되게 됩니다.


  • DB_USERID_FIELD (userID)- stores the userID in the user table. You can use any unique column for the userID field. Do not use sensitive values as they are easily viewed by users.
  • DB_EMAIL_FIELD (email) - stores the email in the user table
  • DB_FIRSTNAME_FIELD (firstname) - stores the first name of user.
  • DB_LASTNAME_FIELD (firstname) - stores the last name of user.
  • DB_PHONE_FIELD (no default) - stores the user’s phone number. If empty then the search will not use the phone number


다른 필드들은 아래 configuring the detail fields 에서 설명됩니다.


Configuring the Detail Fields


서버 세팅이 끝났으면 여러분 서버와 detail view 와의 field mapping을 해야 합니다. 디폴트로는 LDAP으로 세팅 돼 있습니다. 만약에 nonstandard directory를 사용하신다면 혹은 자체 필드들을 가지고 있는 데이터베이스와 연결하신다면 이것들이 어떻게 display 될지에 대해 customize 하셔야 합니다.

이 필드들은 SITE_DIR/config/people/page-detail.ini file 에 configured 됩니다. 각 필드는 섹션별로 configured 됩니다. (섹션 이름은 unique 해야 합니다.) 섹션의 순서는 detail view의 순서와 같습니다. 각 섹션안에는 어떻게 display 될지에 대해 설정할 수 있는 여러 value들을 넣을 수 있습니다.


  • label - (required) A text label for the field. Can include HTML tags.
  • attributes - (required) Array of fields to put in the contents (should map the the field names in your backend system)
  • format - (optional) A string for vsprintf to format the attributes. Only needed if more than one attribute is provided.
  • type - (optional) One of “email” or “phone”. Used to format and generate links.
  • module - (optional) Creates a link to a another module and uses that module’s linkForValue method to format the result. See the section on Module Interaction for more details.
  • section - (optional) If this field belongs to a section, the name of that section
  • parse - (optional) A function which will be run on the value before display. Generated with create_function. Gets the argument “$value” and returns the formatted output.


Configuring Display Options


아래 있는 옵션들은 people 모듈을 appearence 하는데 관련된 것들입니다.

  • BOOKMARKS_ENABLED - (optional) If set to true, a link to bookmarked entries will appear. Note that if you have not bookmarked any entries, this link will not appear until an entry is bookmarked. Defaults to true.
  • CONTACTS_SUBTITLE_NEWLINE - (optional) Set to true to display contacts subtitles on a new line. Defaults to false.
  • SEARCH_TIP - (optional) A string to be shown near the search bar providing a tip about searching. By default this string is empty, and not shown.


Configuring the Fixed Entries


이 모듈은 모듈 인덱스 페이지에서 directory entry들의 리스트를 보이게 할 수 있습니다. 그리고 SITE_DIR/config/people/contacts.ini를 수정함으로서 이 리스트의 content를 update 하실 수 있습니다. 각 entry는 섹션의 0-indexed 형식으로 숫자화 되서 다뤄집니다. 각 섹션은 4개의 value들이 있습니다. 이것들은 listItem template 과 매핑돼 있죠. 이것들은 URL 리스트를 표시하기 때문에 phone number 를 가지지 못합니다. 다만 어떤 URL 이라도 올 수 있습니다.


  • title - The Name of the entry as it’s shown to the user
  • subtitle - The subtitle, typically the phone number for phone entries.
  • url - The link it should point to, use tel:XXXXXXXX links for phone numbers
  • class - The CSS class of the item, such as phone, map, email


Creating groups of contacts

  • NOTE - Creation of contact groups is not supported in the admin console at this time.


만약에 여러 contacts 를 카테고리로 묶어야 한다면 여러분들은 그것을 group으로 묶어야 합니다. contact group들을 만드시려면 아래와 같이 하시면 됩니다.


  1. If it does not exist, create a file named SITE_DIR/config/people/contacts-groups.ini
  2. Add a section to contacts-groups.ini with a short name of your group. This should be a lowercase alpha numeric value without spaces or special characters
  3. This section should contain a “title” option that represents the title of the group. Optionally you can include a description value that will show at the top of the contacts list for the group
  4. Create a file named SITE_DIR/config/people/contacts-groupname.ini where groupname is the short name of the group you created in contacts-groups.ini. This file should be formatted like contacts.ini with each entry being a numerically indexed section
  5. To use this group, assign it to a entry in contacts.ini. Do not include a url, but rather add a value group with a value of the short name of the group. You can optionally add a title that will be used instead of the group title indicated in contacts-groups.ini


아래는 SITE_DIR/config/people/contacts-groups.ini의 예제입니다. 각 그룹은 섹션으로 표현되는데 그 안에는 title 이 있고 옵션으로 description 이 있습니다. 여러분이 원하는 만큼의 그룹을 만드실 수 있습니다.


[admissions]
title = "Admissions"


SITE_DIR/config/people/contacts-admissions.ini. 아래는 admissions group의 예제입니다. contacts.ini file과 같은 형식입니다.


[0]
title    = "Admissions Main Number"
subtitle = "(617-555-0001)"
url      = "tel:6175550001"
class    = "phone"

[1]
title    = "Admissions Hotline"
subtitle = "(617-555-0002)"
url      = "tel:6175550002"
class    = "phone"


SITE_DIR/config/people/contacts.ini. 그룹을 보이기 위해 group value가 있습니다. url value는 없습니다.


[0]
title    = "Static Entry 1"
subtitle = "(617-555-0001)"
url      = "tel:6175550001"
class    = "phone"

[1]
title    = "Admissions"
group    = "admissions"


반응형

Comment